Java/SpringBoot 일골드 2022. 3. 16. 23:32
서버 세션을 관리하는 방법 3가지 1. 톰캣 세션을 사용 - 기본(default) 설정 - 톰캣(WAS)에 세션이 저장되면 2대 이상의 WAS가 구동되는 환경에서는 톰캣들 간의 세션 공유를 위한 추가 설정이 필요 2. Mysql과 같은 데이터베이스를 세션 저장소로 사용 - 여러 WAS간의 공용 세션을 사용할 수 있는 가장 쉬운 방법 - 설정 간단. But 로그인 요청마다 DB IO발생하여 성능 이슈 - 보통 로그인 요청이 적은 백오피스, 사내 시스템 용도 3. Redis, Memcached와 같은 메모리 DB를 세션 저장소로 사용 - B2C 서비스에서 가장 많이 사용하는 방식 - 실제 서비스로 사용하기 위해서는 Embedded Redis와 같은 방식이 아닌 위부 메모리 서버가 필요 - 비용 많이 듬 데이..
Java/SpringBoot 일골드 2022. 3. 16. 23:19
파라미터에 붙여서 쓰는 @어노테이션을 만드는 법 1. 어노테이션 클래스 파일 생성 [LoginUser.java] 어노테이션 LoginUser 생성하는 소스. - @Target의 인자로 파라미터나 클래스를 넘겨서 어디에 쓰는 어노테이션인지 지정. - @interface는 어노테이션 클래스로 지정한다는 뜻. 2. HandlerMethodArgumentResolver 구현 클래스 생성 [LoginUserArgumentResolver.java] 생성한 어노테이션을 사용할 수 있게 HandlerMethodArgumentResolver를 구현함. - supportsParameter 함수 구현 내용 : @LoginUser 어노테이션 여부 확인, 어노테이션의 타입이 SessionUser인지 확인 - resolveArg..
Java/SpringBoot 일골드 2022. 3. 7. 23:12
스프링부트에서 JPA를 통해 실제로 실행되는 쿼리를 보고 싶다면 ON/OFF 할 수 있는 설정이 있습니다. 위 사진처럼 src/main/resource 디렉토리 아래에 application.properties 파일내에 spring.jpa.show_sql = true 한 줄 추가해 줍시다. 그러면 로그는 나오지만 디폴트로 h2라는 메모리DB 문법이 적용되기 때문에 그 아래줄의 sping.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 한 줄 더 추가해 줍시다. 그러면 위 사진처럼 로그가 나옵니다. ※ 사실 사진은 MySQL5Dialect 이지만 설명은 MySQL5InnoDBDialect라고 하였다. 사진 속에서 3번째 줄..