본문 바로가기
반응형

분류 전체보기323

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 ECS 구성하기 AWS ECS 구성을 테스트하면서 진행했던 과정을 정리해본다. ECS(Elastic Container Service)는 AWS에서 제공하는 완전관리형 컨테이너 오케스트레이션 서비스이다. 최근에 EKS를 많이 사용하는 추세인것 같기는 하지만 컨테이너 관리의 난이도나 복잡도 측면에서 EKS는 직접 관리해줘야 하는 부분이 많아 ECS사용도 고려해볼만 하다고 생각한다. 물론, ECS를 사용하면 EKS 보다는 AWS에 종속성은 많이 생긴다. ECS 주요 구성 요소 - Cluster: 관리할 컨테이너 리소스들의 논리적인 그룹 단위 - Task Definition: 사용할 컨테이너들에 대한 작업 정의, 컨테이너 이미지/CPU/Memory/네트워킹모드/로깅구성/호스팅인프라 등 정의 - Task: Task Definit.. 2022. 6. 4.
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.
SpringBoot @RestControllerAdvice를 통한 예외 처리 SpringBoot에서 @ControllerAdvice, @RestControllerAdvice 활용해서 컨트롤러단의 예외를 전역으로 쉽게 관리할 수 있다. 먼저 @ControllerAdvice는 모든 @Controller가 선언된 클래스에 대한 예외를 전역으로 처리한다. @RestControllerAdvice는 @ControllerAdvice + @ResponseBody 어노테이션이다. 따라서 단순 예외 처리가 아닌 응답 객체를 리턴해야 하는 경우 @RestControllerAdvice가 유용하다. 참고로 @ControllerAdvice, @RestControllerAdvice 모두 basePackageClasses, basePackages 속성을 통해 클래스나 패키지 단위로 제한할 수 있다. @Res.. 2022. 5. 29.
심리학 미루는 습관을 바꾸다 - 윌리엄 너스 미루기에 대한 행동의 원인과 미루고자 하는 심리가 왜 나타나는지, 미루는 습관을 바꾸기 위해서는 어떻게 해야하는지에 대해 잘 설명이 되어 있는 책이다. 인간은 보상이 너무 멀거나, 복잡하고 모호한 일, 불확실한 일은 시작하지 않으려 든다. 이 원초적 충동이 미루는 행동이 된다. 미루기는 해야 할 활동에 대한 부정적 인식에서 비롯되며 그 활동을 덜 중요한 다른 활동으로 대체하려는 충동과 늘 결합된다. 미루기는 인지요소, 김정요소, 행동요소의 결합된 과정이다. 목표에 대해 어떻게 느끼는가? 목표 자체가 미루기를 유발하지 않는다. 그 목표에 대해 우리가 생각하고 느끼는 것이 문제이다. 목표가 너무 복잡하다고 규정하면 이미 인지적으로 안 될 이유가 마련된 것이고, 감정적으로 안될 이유를 만든다. 불확실성은 우유.. 2022. 5. 28.
IntelliJ java class serialVersionUID 자동 생성 IntelliJ에서는 STS(Elipcse)처럼 java class에 implements Serializable를 선언하고 class에 마우스를 가져다 놓으면 serialVersionUID를 자동 생성하는 메뉴가 기본적으로 뜨지 않는다. serialVersionUID 자동 생성을 위해서는 아래와 같은 설정이 필요했다. 1. 먼저 IntelliJ의 Prefereneces.. 메뉴를 클릭한다. 2. Preferences 좌측 항목에서 Editor > Inspecions 를 클릭한다. 3. 다음으로 우측에 Java > Serialization issues > Serializable class without 'serialVerionUID' 항목를 체크해 준다. 4. STS(Eclipse)에와 동일하게 마우스를 .. 2022. 5. 28.
반응형