본문 바로가기
반응형

SpringBoot37

SpringBoot Redis 활용 - RedisTemplate, RedisRepository SpringBoot에서 Redis에 접근하기 위한 2가지 방법을 제공하는데 RedisTemplate, RedisRepoitory 이다. 이 2가지를 설정하고 테스트를 실행해보면서 SpringBoot에서 Redis 활용방법을 알아본다. 1. SpringBoot Redis 설정 먼저 Redis를 사용하기 위해 의존성 및 빈 설정을 진행한다. build.gradle에 redis 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' application.yml에 redis 접속정보를 설정한다. spring: redis: host: 127.0.0.1 port: 6379 # password: 'xxxx' # 비밀번호 있.. 2022. 12. 16.
SpringBoot Redis 세션 사용 SpringBootd에서 간단한 설정만으로 메모리 기반의 세션관리에서 Redis 기반의 세션관리로 적용이 가능하다. 세션 Storage로 Redis를 사용하면 토큰을 사용하지 않는 환경에서도 세션 공유에 대한 부담없이 유연하게 어플리케이션의 Scale-Out이 가능하다. Redis 구성 Redis를 자체를 테스트하는 것이 아님으로 간단하게 Docker로 구성한다. 아래 명령으로 Redis 컨테이너를 실행한다. docker run --name redis -p 6379:6379 -d redis 테스트용 Redis 준비는 이걸로 끝이다. SpringBoot 설정 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-redis' imp.. 2022. 9. 6.
SpringBoot SpringDoc(OpenAPI)을 이용한 Swagger 그룹화, 전역인증&Parameter 설정 SpringDoc OpenAPI를 사용하여 Swagger에 표시되는 API들을 그룹화 시키는 방법과 JWT 인증을 전역으로 설정하는 방법을 알아본다. API 그룹화 API가 많아질수록 Swagger 표시되는 API가 많아져서 가독성이나 관리가 힘들어지는 부분이 있다. 이럴 경우 API들을 package나 url path를 기준으로 그룹화 시킬 수 있다. 먼저 그룹화하기 전에는 swagger에서는 일반적으로 아래와 같이 표현된다 그리고 그룹화를 group1, group2로 나눠서 적용하면 아래와 같이 표현된다. 우측 상단에 그룹을 선택할 수 있는 SelectBox가 뜨고 그룹에 따라 필터링해서 API를 조회가 가능해진다 아래는 그룹 적용을 위한 Bean 설정이다. 그룹화를 정의할 개수에 따라 Grouped.. 2022. 8. 3.
SpringBoot SpringDoc(OpenAPI)을 이용한 Swagger 적용 SpringBoot로 백엔드 개발 시 API 도큐먼트를 위해 swagger를 많이 사용한다. 예전에는 springfox-swagger를 사용하여 적용하였는데 최근에 많이 사용되는 springdoc을 이용해서 swagger 설정을 해본다. 참고로 springfox-swagger는 2020년부터 업데이트가 되지 않고 있다. 1. 의존성 추가 gradle에 현재 최신 버전의 springdoc-openapi-ui 라이브러리 의존성을 추가한다. implementation 'org.springdoc:springdoc-openapi-ui:1.6.9' 2. 어플리케이션 실행 추가 설정없이 의존성만 추가하고 어플리케이션을 실행한 후 http://server:port/context-path/swagger-ui.html(e.. 2022. 8. 2.
SpringBoot Log4jdbc 를 사용한 Mybatis 쿼리 로그 출력 SpringBoot에서 log4jdbc를 사용하면 SQL문 로그를 좀 더 가시적으로 출력할 수 있다. SQL문에 들어가는 파라메타도 바인딩이 되어 출력이 되고, 결과도 테이블 형태로 출력되어 보기가 편해진다. 1. log4jdbc 의존성 추가 먼저 아래와 같이 build.gradled에 log4jdbc 라이브러리 의존성을 추가한다. implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' 2. log4jdbc.log4j2.properties 파일 추가 src/main/resources 루트에 log4jdbc.log4j2.properties 파일을 추가하고 아래와 같이 입력한다. log4jdbc.spylogdelegator.name=ne.. 2022. 6. 5.
AWS ECR SpringBoot Docker Image Push AWS에서 제공하는 Image Repository에 SpringBoot로 작성된 Docker Image를 Push하는 방법을 정리해본다. 1. Dockerfile 작성 먼저 간단한 SpringBoot 어플리케이션에 Dockerfile을 작성한다. Dockerfile 내용은 아래와 같이 작성한다. FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim ARG JAR_FILE_PATH=build/libs/*.jar COPY ${JAR_FILE_PATH} app.jar ENTRYPOINT ["java", "-jar", "app.jar"] 참고로 베이스 이미지를 'FROM adoptopenjdk/openjdk11'로 설정을 했을 때와 'FROM adoptopenjdk/o.. 2022. 6. 1.
SpringBoot InMemory DB(H2) 사용 SpringBoot 사용 시 간단히 기능 테스트 용도나 프로토타입 등으로 인메모리 DB를 쉽게 사용할 수 있다. 인메모리 DB로는 H2를 사용하는데 설정도 많이 간단하다. 매번 눈으로만 이런것이 가능하구나라고 봤는데 이번 기회에 한번 해보면서 정리 해본다. 1. H2 DB 의존성 추가 runtimeOnly 'com.h2database:h2' H2 의존성을 추가하게 되면 기본적으로 SpringBoot는 H2를 기본 DB로 설정하여 어플리케이션을 실행한다. 2. application.yml 설정 추가 spring: h2: console: enabled: true path: /h2-console datasource: driverClassName: org.h2.Driver url: jdbc:h2:mem:test.. 2022. 5. 31.
SpringBoot Embedded Tomcat 세션 클러스터링 SpringBoot를 내장 톰캣으로 실행하고 만약 세션을 사용한다면 세션 클러스터링 설정이 필요하다. 토큰이나 Redis를 사용하는 경우에는 불필요하겠지만 내장 톰캣의 세션을 그대로 이용한다면 세션 클러스터링을 통해 세션 공유 설정을 해야지만 여러 대의 was로 서비스가 가능할 것이다. 테스트 환경 - SpringBoot 2.6.7, Tomcat 9.0.62, JDK 11 1. 의존성 설정 먼저 build.gradle에 tomcat-catalina-ha를 의존성으로 추가한다. implementation 'org.apache.tomcat:tomcat-catalina-ha:9.0.62' 2. Java Config 설정 @Configuration을 통해 내장 톰캣에 대한 세션 클러스터링 Java Config .. 2022. 5. 30.
반응형