소프트웨어를 개발할 때, 객체 간의 의존성은 코드를 확장하거나 수정할 때 많은 영향을 끼친다. IoC와 DI는 이런 부분을 좀 더 효율적으로 관리하고 코드의 유연성을 높여주는 설계 패턴이라고 할 수 있다.1. IoC(Inversion of Control)란?IoC란 단어 뜻 그대로 제어의 역전이라고 부른다. 객체의 생성이나 의존성 관리의 책임을 기존에는 개발자가 담당했었다면, 그걸 프레임워크나 컨테이너가 담당하도록 하는 개념을 말한다. 자바를 기준으로 하면 개발자가 아닌 Spring, 좀 더 깊게 들어가면 IoC 컨테이너에서 그 부분을 담당해서 객체의 생성과 관리를 외부에서 제어하게 된다.구체적으로 살펴보면 스프링에서 IoC 컨테이너라는 개념을 구현하기 위해, BeanFactory와 Application..
Web Programming/Spring Boot
1. Dispatcher Servlet이란?Dispatcher Servlet은 Dispatcher(보내다 / 파견하다) + Servlet(웹 요청과 응답을 처리하는 자바 객체)의 합친 단어로 그 뜻처럼 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에게 보내주는 Front Controller를 의미한다.Front Controller는 서블릿 컨테이너에서 클라이언트의 요청을 받아서 처리해주는 컨트롤러로 MVC 구조에서 함께 사용되는 디자인 패턴으로 이해하면 된다. (https://www.geeksforgeeks.org/front-controller-design-pattern/)2. Dispatcher Servlet의 동작 과정클라이언트 요청 확인: 클라이언트의 요청을 받아들인다.H..
특정 애플리케이션의 비즈니스 로직이 정상적으로 동작하기 위해서 여러가지 요건이 필요하겠지만, 그 중 하나는 올바른 입력값을 위한 유효성 검증이 필요하다. 제대로 된 입력값을 검증하지 않고 입력받게 된다면 의도치 않은 에러나 버그가 발생할 수 있고 데이터의 정확성인 일관성을 보장하기 어렵다.1. Spring Boot에서의 Validation자바에서는 javax.validation(혹은 jakarta.validation) 패키지에 정의된 Bean Validation API를 기반으로 하며 다양한 어노테이션 기반으로 필드 수준의 검증을 쉽게 수행할 수 있다. Spring Boot 에서는 이 Bean Validation의 구체적인 구현체로 Hibernate Validator를 검사 표준으로 채택해 사용하고 있다..