반응형
제육's 휘발성 코딩
반응형
article thumbnail
[AWS] - CloudWatch에 docker-compose 로그 적용하기
🔷 Spring/AWS 2023. 11. 15. 12:48

CloudWatch 란 ? Amazon CloudWatch는 AWS에서 제공하는 모니터링 및 로깅 서비스입니다. 클라우드 환경에서 리소스의 상태와 성능에 대한 실시간 데이터를 수집, 모니터링하고, 관련 이벤트에 대한 알림을 받을 수 있습니다. CloudWatch를 사용하면 애플리케이션, 서버, 인프라의 모니터링을 한 곳에서 통합적으로 관리할 수 있습니다. CloudWatch는 다양한 AWS 리소스에 대한 모니터링을 지원합니다. 예를 들어, EC2 인스턴스, RDS 데이터베이스, Lambda 함수 등의 리소스를 모니터링할 수 있으며, CPU 사용률, 네트워크 트래픽, 디스크 사용량 등과 같은 지표를 수집할 수 있습니다. AWS EC2에서 docker를 사용하여 스프링 서버를 배포하고 있는데, docker의..

article thumbnail
[Spring] XML 요청 및 응답 처리하기 (JAXB Marshaller & Unmarshaller)
🔷 Spring/basic 2023. 3. 15. 02:38

JAXB 란? JAXB(Java Architecture for XML Binding)는 자바 객체와 XML 문서 간의 매핑을 쉽게 처리하기 위한 자바 API입니다. JAXB는 XML 스키마를 기반으로 자동으로 자바 클래스를 생성하고, 자바 클래스와 XML 문서 간의 양방향 매핑을 지원합니다. JAXB에서 제공하는 Marshaller와 UnMarshaller를 사용해서 HTTP POST 요청에 대한 XML 데이터를 자바 객체로 변환하고, 응답하는 예제를 만들어볼게요. Marshaller과 UnMarshaller Marshaller는 자바 객체를 XML 문서로 변환, Unmarshaller는 XML 문서를 자바 객체로 변환해 줍니다. 먼저 XML 예제는 다음과 같습니다. Noida Sector-88 2013..

article thumbnail
[Spring] @RestControllerAdvice + @ExceptionHandler 로 커스텀 예외처리 하기
🔷 Spring/basic 2023. 3. 8. 01:03

@RestControllerAdvice + @ExceptionHandler 란? Spring에서 예외 처리를 할 때 Global 영역에서 관리해 주는 기능으로 @ControllerAdvice, @RestControllerAdvice를 사용합니다. 먼저 각 어노테이션 별로 간단하게 짚고 넘어가겠습니다. @ControllerAdvice vs @RestControllerAdvice ControllerAdvice 어노테이션을 살펴보면, 대상을 지정하지 않은 모든 컨트롤러에 @ExceptionHandler와 @InitBinder의 기능을 적용해 준다고 합니다. // 패키지 하위 모두 적용 @ControllerAdvice("org.bot.controllers") public class Advice1{} // 특정 ..

article thumbnail
[Spring] @WebMvcTest, @SpringBootTest + @AutoConfigureMockMvc 차이 (Controller Test)
🔷 Spring/Security 2023. 3. 7. 00:41

Mocking 이란? Controller Test를 위해선 Mocking에 대해 알고 있어야 하는데요. Mock은 테스트를 위해 실제 객체를 사용하는 것처럼 테스트를 위해 만든 모형으로 가짜 객체를 의미합니다. Mock을 이용해서 테스트하는 과정을 Mocking이라고 부르며, 웹 애플리케이션 환경에선 Servlet Container와 Dispatcher Servlet이 메모리에 로딩되지만, Mocking을 하면 실제 테스트 컨테이너를 사용하기 때문에 Mocking을 통해 의존성을 단절시킨 상태로 테스트할 수 있습니다. SpringBoot 환경에서 테스트 코드를 작성할 때 @SpringBootTest + @AutoConfigureMockMvc 또는 @WebMvcTest를 사용하는데요. 차이점을 가볍게 알아..

article thumbnail
[Spring Security] @WithMockUser, @WithAnonymousUser, @WithUserDetails
🔷 Spring/Security 2023. 3. 5. 12:47

@WithMockUser @WithMockUser 어노테이션은 Controller 테스트 시에 Spring Security에 설정한 인증 정보를 제공해 주는 역할을 합니다. 정확히는 사용자 인증 정보를 담은 Authentication을 UsernamePasswordAuthenticationToken으로 넣어주고, Principal은 User 객체에 넣어 SecurityContext에 보관해 준다. 어떻게 적용되는 것인지 살펴보자. @SpringBootTest @AutoConfigureMockMvc public class PostControllerTest { @Autowired private MockMvc mockMvc; @Autowired private ObjectMapper objectMapper; @..

article thumbnail
[Spring] Filter 순서 지정 (Order, @WebFilter, FilterRegistrationBean)
🔷 Spring/MVC 2023. 3. 4. 15:30

Filter 소개 Filter는 애플리케이션 레벨에서 로그인, 시큐리티, Jwt 등 구현을 하다 보면 Dispatcher Servlet에 도달하기 전 요청에서 토큰 검사 등 유효성 검사를 처리하기 위해 사용되며 Chaining 방식으로 여러 개의 필터를 설정할 수 있습니다. 필터는 Spring Context 내부에 도달하기 전인 WAS 인입 시점에 로직을 처리해 줍니다. Filter 인터페이스를 살펴보면 doFilter 메서드가 보이는데, 이 메서드가 다음에 체이닝 할 필터가 있으면 다음 필터로 넘겨주고, 없으면 서블릿을 호출해 줍니다. public interface Filter { public default void init(FilterConfig filterConfig) throws ServletEx..

article thumbnail
[Spring] Heroku & Github Action 배포
🔷 Spring/basic 2023. 2. 27. 23:49

Heroku 란? Heroku에 대해 간단하게 알아보자. Heroku는 클라우드 서비스 중 하나로, dynos라는 리눅스 런타임 애플리케이션 관리 컨테이너를 통해 사용자가 직접 서버를 관리하지 않아도 되는 PaaS 형 플랫폼을 제공해 준다. (Node, Java, Python, Go 등 거의 대부분의 언어 지원) 사용자가 github에 푸시를 하면 해당 애플리케이션을 빌드하고 slug 타입으로 배포해 주어 AWS 등과 비교해 봤을 때 편하게 배포할 수 있다는 장점이 있다. 단, 버전 설정과 같은 인프라 설정은 제공하지 않기 때문에 디테일한 설정이 필요한 경우엔 불편한 점이 있어 장단점이 존재한다. 작년 11월까지는 무료로 dynos 컨테이너를 제공해왔지만 현재는 유료버전으로 변경되어 구독 방식으로 월 $..

article thumbnail
스프링 프록시 정리 (2) - 프록시 팩토리, Advice, Advisor, Pointcut
🔷 Spring/Advanced 2023. 2. 19. 23:20

프록시 팩토리 프록시 팩토리란 스프링에서 동적 프록시를 통합해서 관리해주는 클래스 팩토리이다. 프록시 팩토리를 사용하면, 인터페이스가 있을 경우 JDK 동적 프록시를 사용하고, 구체 클래스만 있으면 CGLIB 동적 프록시를 사용하도록 처리해준다. client의 요청이 오면 대상 Target 클래스의 정보를 파악하여 동적 프록시를 선택하여 반환해준다. JDK 동적 프록시는 InvocationHandler, CGLIB 동적 프록시는 MethodInterceptor를 각각 구현해야 하는데, 스프링에선 Advice라는 개념을 통해 공통 구현을 할 수 있도록 지원한다. Advice 개발자가 Advice를 구현하게 되면 동적 프록시 별로 요청오는 핸들러의 정보를 받아 실제 타겟의 로직을 실행시켜 준다. 즉, Adv..

반응형
반응형