본문 바로가기

Develop/[Spring]

(96)
[Spring] Memcached 적용 사례 무료로 사용할 수 있는 오픈소스이며, 분산 메모리 캐싱 시스템 DB나 API 호출 또는 렌더링 등에서 받아오는 결과 데이터를 작은 key-value 형태로 메모리에 저장하는 방식 1)장점 필요량 보다 많은 메모리를 가졌을때 시스템으로부터 메모리를 사용하고, 필요로하는 메모리가 부족한 경우 이를 쉽게 더 가져다 사용할 수 있도록 만들어준다. 위 두가지는 memcache를 사용하고, 안하고에 따라 다른 것이다. 사용하지 않는 경우, 각 웹서버가 분리된 메모리에서 할당된 크기만큼 사용할 수 있지만 memcache를 사용하는 경우는 논리적 결합으로 인해 각 웹서버는 전체 메모리캐시만큼 용량을 사용할 수 있다. 메모리 캐시를 사용하는 경우, 모든 서버는 동일한 가상 메모리 풀을 공유한다. 특정항목이 주어졌을때, ..
[Spring] 기본 화면 변경_대기화면 기능 완료 우선 구조를 살짝 바꿨다. 인터셉터는 그대로두고 한 메서드에서 로그인 하면 Admin type 에 따라서, 다른 view를 띄워주는 방식으로 모델부분이다. SuperAdmin과 NormalAdmin의 두 부분을 나눠서 make하였다. 생성자를 별도로 만들지 않은 이유, 빌더를 만들지 않은 이유는 JPA에서는 메서드명을 생각없이 지으면 나중에 운영관리하기 빡세기 때문,... 무튼 이제 두가지 화면을 구성해야한다. 1. NormalAdmin으로 사용자 정보를받아서, 디비에 넣는것 2. SuperAdmin으로 들어가면, 사용자 정보에 맞춰서 버튼 누르면 다음 사람에게 알림톡 나가는 것 1번부터 해보자 우선 등록을 완료하면, 등록이 완료한다. User에서 statCd 별로 유저를 관리하고 입장전 10. 입장 후..
[Spring] 기본 화면 구성 우선, 요새 회사출근과 기타등등 .. 너무 힘든 개인 업무가 많았어서 잠시 프로젝트를 쉬었다.. 공부도 쉬고... 다시 해보자... 우선 화면 단의 기초 개발 구성이 필요하다. 늘 반복하는거지만 기본적인 화면 구성을 해보자 우선 로그인 컨트롤러다. 위와 같이 로그인 컨트롤러를구현하여, view에서 로그인 호출 로직을 콜하자 성공하면 쿠키에 값을 넣자, 이는 인터셉터에서 체크하기 위함이다. 물론 redis에 넣거나,세션에 넣거나 세션에 넣고 redis에서 키를 관리하는게 일반적이지만 우선은 서비스를 다 만들고 차차 한모듈씩 업그레이드 하는걸로... 위와 같은 방식으로 로그인 체크를 하고, return 해주도록하자 아주 간단하게.. 우선은 구현을 해보자 성공적으로 화면이 돌아간것을 확인했고, 이제 쿠키의 값..
4. Spring Data JPA, H2 Setting 유저정보를 관리하던, 테스트를 해보던 간에 JPA 설정 및 데이터베이스 연동은 필수이다. 추후 스프링 시큐리티를 적용하던 Redis로 테스트를 하던 데이터 베이스 연동을 하지 않고는 그냥 추상적인 구현이기 떄문에 우선 부랴부랴 연동 해보자 h2와 JPA를 maven 방식으로 추가해준다. 그리고 application.yml에서 해당 jpa 설정과 h2관련 설정을 추가해준다. 이러면 기동시에 jpa 관련 설정들과 h2의 경로를 알아서 설정해서 개발이 가능하게 Entity 별 테이블관리, JPA사용등등을 하게 해준다. 정상적으로 테스트가 됬는지 엔티티 하나를 생성해서 재기동해보자 JPA 관련 전략이 create이기 때문에 재기동할때마다 테이블이 신규 생성 및 초기화 될 것 이다. 재기동할때 테이블 생성 쿼리가..
3. Spring core Setting - 1 인터셉터를 오랜만에 구현해볼겸, 로깅 및 로그인 여부 체크 용도의 인터셉터 두개를 구현해보자 단순한 LoggingInterceptor를 생성 하여 빈으로 등록하고, WebConfig를 별도로 생성 및 빈으로 등록하여, 해당 인터셉터를 등록해준다. 우선 간단하게 사용자가 요청하는 URI과 Ip 정보를 로그로 찍게 한다. 단순히 로깅용 인터셉터만 생성하는 것이 아닌, 별도로 로그인 여부를 판별하는 인터셉터도 생성해보자 우선 Redis나 스프링 시큐리티를 사용하기 전 이니까, 로그인 성공시에 쿠키에만 해당 쿠키값을 저장 해놓고 해당 쿠키값을 체크해서 로깅을 해보자 로그인 성공 시에 단순히 쿠키에 값을 넣고, 인터셉터로 쿠키 값의 이름을 체크해서, 값 이있는지 있다면, 그 값이 Y인지를 체크하는 인터셉터를 생성..
2. admin 화면 로그인 화면 단순 구현 + Spring admin 간단하고도 하고 내가 싫어하는 프론트 단 무료 공개 코드로 적용 간단하게 index html을 생성 플리마켓에서 운용하는 컴퓨터 한대가 아니라 여러대에서 접속해서 대기표를 받을 수 있게하려면? 대기표 받는 페이지를 여러 곳에서 접속한다면? 어플리케이션 기본 모니터링 설정도 하는게 조음 왜냐? 여러대의 트래픽이 몰릴 수 있기 때문에! Spring boot actuator를 적용해보자! implementation 'org.springframework.boot:spring-boot-starter-actuator' management: endpoints: web: base-path: /management exposure: include: - "*" localhost:8080/management 를 입력하면, 이..
Spring Camp 1 1. Gradle vs Maven 빌드 관리 도구? (프로젝트 생성, 테스트 빌드,배포, 외부라이브러리 다운로드) 우선 빌드 자동화 도구는, 프로젝트 내에서 작성한 Java코드와 프로젝트 내에 필요한 각종 xml, properties, jar파일들을 JVM이나 WAS가 인식할 수 있도로고 패키징 해주는 과정을 빌드 자동화 도구라고 할 수 있다. -프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라고 할 수 있다. -애플리케이션 개발을 하면서, 일반적으로 개발에 필요한 외부 라이브러리를 다운로드하고 해당 라이브러리를 사용하여 개발해야하는 상황이 많다. 이때 각 라이브러리 들을 번거롭게 모두 다운받을 필요없이, 빌드도구 설정파일에 필요한 라이브러리 종류와 버전들 종속성 정보를 명시하여, ..
[Spring] initBinder initBinder는 컨트롤러 레벨에서 들어오는 요청에 다양한 설정이 가능하다 WebDataBinder를 파라미터로 받는 메소드를 사용하고, 특정 컨트롤러 단에서 바인딩이나, 검증 설정을 변경하고 싶을때 사용한다. @InitBinder(“Event”) 요로케 쓰면 Event객체에 대해서만 가능하다 추가로, webDataBinder를 통해서, 커스텀 에디터(특정 날짜필터)등록이 가능하다 만약에 , id에 대한 바인딩을 막고싶다면, 해당 과 같이 선언하게 되면 바인딩은 Null로 잡히게된다. 만약에 특정 객체에 대해서 검증에 대한 벨리데이션을 추가하고싶다면, support에 정의하고 validate에서 사용하면된다. 그리고 이닛바인더에서, event로 한정하고 벨리데이터를 추가하면된다. 벨리데이터를 빈으로 ..