
예외 처리는 robust한 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 앞선 포스팅에서 @RestControllerAdvice를 사용해야 하는 이유에 대해서 자세히 알아보았다. 이번 포스팅에서는 @RestControllerAdvice를 이용해 에러를 처리하는 방법에 대해서 구현하면서 살펴보도록 하자. 1. ControllerAdvice와 RestControllerAdvice [ ControllerAdvice와 RestControllerAdvice ] Spring은 전역적으로 예외를 처리할 수 있는 @ControllerAdvice와 @RestControllerAdvice 어노테이션을 각각 Spring3.2, Spring4.3부터 ..

예외 처리는 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 어떠한 방법들이 있고 가장 좋은 방법(Best Practice)은 무엇인지 살펴보도록 하자. 1. 스프링의 기본적인 예외 처리 방법 Spring이 제공하는 다양한 예외 처리 방법들을 살펴보기 전에, 먼저 우리가 개발한 Controller에서 발생한 예외를 Spring은 기본적으로 어떻게 처리하고 있는지 살펴보도록 하자. 아래의 내용들은 SpringBoot를 기반으로 설명된다. [ Spring의 기본적인 예외 처리 방식(SpringBoot) ] 예를 들어 우리가 만든 다음과 같은 컨트롤러가 있다고 하자. @RestController @RequiredArgsConstructo..

이번에는 테스트를 위한 테스트 컨텍스트 프레임워크(Test Context Framework)에 대해 정리해보도록 하겠습니다. 아래의 내용은 토비의 스프링을 참고하여 정리한 내용입니다. 1. 스프링 테스트 컨텍스트(Spring Test Context) [ 테스트 컨텍스트(Test Context) ] 스프링은 테스트에 사용되는 애플리케이션 컨텍스트를 생성하고 관리하여 테스트에 적용해주는 테스트 프레임워크를 제공하는데, 이를 테스트 컨텍스트 프레임워크(Test Context Framework)라고 부른다. 테스트 컨텍스트 프레임워크는 실제 서버와 거의 동일한 구성으로 동작하는 애플리케이션 컨텍스트를 손쉽게 만들 수 있도록 도와준다. 여기서의 컨텍스트는 테스트에서 사용되는 애플리케이션 컨텍스트를 생성하고 관리해..
우리가 알고있는 스프링의 애플리케이션 컨텍스트에는 다양한 구현체들이 존재하는데, 이번에는 어떠한 구현체들이 있는지 살펴보도록 하겠습니다. 아래의 내용은 토비의 스프링을 참고하여 정리한 내용입니다. 1. 빈 설정 메타정보(BeanDefinition)와 다양한 종류의 Spring Application Context(스프링 애플리케이션 컨텍스트) [ 빈 설정 메타정보(BeanDefinition) ] Spring과 관련된 설정을 하기 위한 방법으로는 XML과 Java로 하는 2가지 방법이 있고, 두 가지 방식을 혼용하여 사용하는 것 역시 가능하다. 그러한 이유는 Spring이 설정 메타정보를 BeanDefinition 인터페이스를 통해 관리하기 때문이다. Spring Application Context(스프링 ..
개발을 하다 보면 API의 요청이나 응답을 처리할 때 또는 다른 계청으로 넘기는 파라미터가 너무 많은 시점에 별도의 DTO를 생성해야 하나 고민을 하는 시점이 생깁니다. 개인적으로는 간단한 애플리케이션이 아니고서는 엔티티와 DTO를 분리하는 것을 선호하는데, 이번에는 그 이유에 대해 알아보고자 합니다. 아래의 내용은 김영한님의 강의를 들으면서 일부 참고했습니다ㅎㅎ 1. 엔티티(Entity) 또는 도메인 객체(Domain Object)와 DTO를 분리해야 하는 이유 엔티티는 비즈니스 로직을 포함하는 도메인 엔티티와 데이터베이스 관련 처리를 위한 영속성 엔티티로 나누어질 수 있습니다. 하지만 아래의 내용에서는 설명의 편의를 위해 2개를 합하여 설명하고자 하니 참고 부탁드립니다. [ 엔티티(Entity)와 D..