Spring Boot 에서는 사용자 입력 값에 대한 Validation, 즉 검증 과정을 위한 기능들을 제공한다. 그리고 사용자에게 응답 값으로 전달되는 데이터에 대해서 원하는 값만 전달하도록 Filtering 기능을 제공한다. 이번 포스트에서는 이러한 Validation와 Filtering을 하기 위한 방법에 대해서 알아보도록 한다. Validation Spring Boot를 사용해 웹 서버와 같은 애플리케이션을 개발할 때, 데이터를 검증(Validation)해야 하는 상황을 일반적으로 자주 발생하는 일이다. 사용자가 입력하는 이메일, 휴대폰 번호 등 다양한 입력값에 대해서 많은 검증이 필요하다. 검증에서 그치는 것 뿐만 아니라 사용자가 원인을 쉽게 파악하고 이해할 수 있도록 API 응답을 제공해야 한..
이번 포스팅에서는 Spring Boot에서 사용되는 핵심 기술인 AOP에 대해서 간략하게 설명하고, 이를 통해 구현하는 대표적인 예시인 Exception Handler를 구현하는 방법에 대해서 살펴본다. AOP? AOP는 Aspect Oriented Programming 의 약자로 OOP(Object Oriented Programming) 의 단점을 보완하기 위한 프로그래밍 방식이다. 간략하게 설명하면 여러 곳에서 사용되는 공통 기능을 모듈화하고, 쓰이는 곳에 필요할 때 연결함으로써 유지보수, 재사용성에 용이하도록 프로그래밍 하는 것을 AOP라고 한다. 공통 기능 before(), after() 메서드가 존재하는 것을 확인할 수 있고, 이를 AOP를 적용해 공통된 요소로 추출하는 것이다. 결국 공통된 기..
Bean에 대해서 설명하기에 앞서 Spring에서 등장하는 IoC 컨테이너에 대해서 이야기 해본다. IoC는 Inversion Of Control Container의 약자로 기존의 모든 제어를 클라이언트의 코드가 가지도록 구현하던 것을 Framwork가 제어를 나누어 가져가 의존 관계의 방향이 달라지게 되는 것을 말한다. 즉, IoC는 Spring Framwork로 객체를 관리하고 객체의 생성을 책임지고, 의존성까지 관리해주는 컨테이너 이다. 좀더 간단하게 이야기하면 Spring Framwork의 IoC가 객체의 생명주기를 관리하며 DI(Dependency Injection) 패턴을 제공하여 클라이언트는 비즈니스 로직에 집중할 수 있도록 해주는 것이다. 이러한 IoC를 담당하는 핵심 컨테이너가 BeanF..