[SpringBoot] ActiveMq 설정 및 실습
·
Springboot
설정의존성 추가 build.gradleimplementation 'org.springframework.boot:spring-boot-starter-activemq' Configuration Class 추가@Configuration@EnableJms@Slf4jpublic class ActiveMqConfig { @Value("${spring.activemq.broker-url}") private String activemqBrokerUrl; @Value("${spring.activemq.user}") private String activemqUsername; @Value("${spring.activemq.password}") private String activemqPass..
[Spring AOP] Spring AOP를 통한 Controller 요청 로그 작성
·
Springboot
개요REST API 서버를 운영할 때 필수적으로 고려해야 할 요소 중 하나가 요청 및 응답에 대한 로깅이다.요청과 응답을 기록하면API 호출 빈도사용자의 요청 패턴보안 관련 정보등을 분석할 수 있어, 서버 운영과 서비스 개선에 매우 중요한 역할을 한다.이러한 로깅은 **모든 요청 처리 메서드(Handler Method)**에 공통적으로 적용되어야 하며,Spring에서는 이를 간편하게 구현할 수 있도록 Filter, Interceptor, AOP 등의 기능을 제공한다.본 글에서는 이 중 Spring AOP를 활용하여 요청 및 응답 로깅 로직을 작성하는 방법에 대해 다루고자 한다. Spring AOP란 먼저 Spring AOP에 대해서 간단히 정리하려고 한다. AOP는 Aspect Oriented Progr..
[Spring] 요청 데이터 처리 원리
·
Springboot
1. 개요스프링 애플리케이션에 요청이 들어오면, 스프링에서는 자동으로 요청 정보 (RequestParam, RequestBody)를 Java Type으로 바인딩해준다. @RequestParam, @RequestBody와 같은 어노테이션으로 이 기능을 사용할 수 있는데, 이 과정이 어떻게 이루어지는지 자세히 알아볼 예정이다. 2. 요청 초기클라이언트에서 요청을 보내면 자바 애플리케이션의 경우 제일 처음 톰캣에 요청이 들어오게 된다.톰캣은 WAS이자, 서블릿 컨테이너로써 서블릿의 라이프사이클을 관리한다.즉 요청이 들어오면, Tomcat을 거쳐 서블릿의 구현체인 DispatcherServlet(Spring Application)으로 요청이 흘러간다. 3. 요청을 처리할 메서드 찾기우리는 보통 아래와 같이 스프..
[Spring Boot] 에러 로그를 이메일로 자동 전송하기 – SMTP + Logback 연동
·
Springboot
📌 상황프로젝트를 진행하면서 프론트와 백엔드 간의 API 연동이 활발해졌고,그 과정에서 백엔드에서 처리하지 못한 예외로 수정 작업이 종종 발생했다.에러가 발생한 직후 빠르게 대응할 수 있도록,에러 로그가 발생하면 개발자에게 즉시 이메일로 알림을 보내는 구조를 도입했다.🧱 환경 정보Spring Boot: 3.4.2spring-boot-starter-mail: 3.4.2메일 서버: Gmail SMTP 사용로그 시스템: Logback (Spring Boot 기본)로그 분석 스케줄러: Spring @Scheduled1. 📦 의존성 추가먼저 메일 기능을 사용하기 위해 아래와 같이 의존성을 추가했다.implementation 'org.springframework.boot:spring-boot-starter-m..
[Spring + Redis] 비밀번호 설정 및 Lettuce 연결 설정 정리
·
Springboot
상황사용자의 Refresh Token을 저장하는 Redis를 개발 중에편의상 별도의 보안 처리를 하지 않고 운영해왔다.최근 비정상적인 외부 접속 로그가 확인되었고,우선 Redis에 비밀번호 설정부터 적용하기로 했다.(이후 IP 바인딩, 접근 제한도 예정되어 있음)⚙️ Redis 설정 - Docker 기준1. Redis 클라이언트 의존성 (build.gradle)implementation 'org.springframework.boot:spring-boot-starter-data-red2. docker-compose.yml 설정Redis는 Docker 컨테이너로 실행하고 있었기 때문에비밀번호 설정을 command로 주입해주었다.redis: container_name: test-redis image: re..
[스프링부트] ObjectMapper JsonNode Object로 변환
·
Springboot
개요Json데이터를 파싱할 때 Java에서는 JsonNode를 많이 사용한다. 또한 비즈니스 로직에서 이를 편하게 사용하기 위해 사전 정의한 Dto객체로 변환할 필요가 존재한다.메인아래는 RestClient를 통해 받은 Json데이터를 처리하는 코드이다.// 인기 검색어 쿼리try { Request request = new Request("GET", "/search_history/_search"); request.setJsonEntity(queryJson); Response response = restClient.performRequest(request); String responseBody = EntityUtils.toString(response.getEntity(), Standa..