Spring MVC로 개발하다 보면 HandlerMapping, HandlerAdapter, DispatcherServlet 같은 용어를 자주 마주하게 됩니다.하지만 DispatcherServlet이 컨트롤러를 호출하기까지 왜 두 단계를 거쳐야 하는지는 구조를 직접 들여다보기 전에는 쉽게 이해하기 어렵습니다. 최근 진행하고 있는 기술 스터디에서 Spring Web MVC의 요청 처리 흐름을 살펴보던 중“HandlerMapping이 이미 컨트롤러를 찾았는데, 왜 바로 호출하지 않을까?”,“그렇다면 HandlerAdapter는 어떤 역할 때문에 필요한 걸까?”라는 궁금증이 생겼습니다. 이 글을 그 질문에 대한 답을 정리하면서, Spring MVC 요청 처리 구조를 이해하는 데 도움이 되고자 작성해보았습니다...
의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 널리 사용되는 설계 기법입니다.처음 보면 이해하기 어렵게 느껴지지만, 핵심은 객체가 필요한 의존성을 직접 생성하지 않고 외부에서 전달받도록 만드는 것입니다. 이 글에서는 DI의 개념, 필요성, 그리고 실제 코드 적용 방법을 예제를 통해 차례로 설명합니다.이를 통해 DI가 제공하는 유연성, 확장성, 테스트 용이성을 자연스럽게 이해할 수 있습니다. Dependency Injection이란?Dependency Injection(DI)은 객체가 필요한 의존성을 직접 생성하지 않고외부에서 주입받는 설계 방식입니다. 이 방식에서 객체는 무엇이 필요한지만 정의하고,어떻게 생성되는지는 외부에 맡깁니다. DI를 적용하면 다음과 같은 효..
오늘은 제어의 역전(Inversion of Control, IoC)의 개념과 현대 소프트웨어 개발에서 이 개념이 중요한 이유를 알아보겠습니다.또한 전통적인 방식과 IoC 방식의 코드를 비교하여 두 접근 방식의 차이를 살펴보고, 마지막으로 IoC가 제공하는 장단점을 정리해볼게요. IoC란 무엇인가?제어의 역전(Inversion of Control, IoC)은 객체 생성과 의존성 연결 같은 제어 권한을 애플리케이션 코드가 아니라 외부(컨테이너나 프레임워크)가 담당하도록 하는 설계 원칙입니다. 기존에는 개발자가 직접 흐름을 제어했지만, IoC에서는 외부가 이 역할을 대신합니다. 즉, 제어의 주도권이 코드 내부에서 외부로 이동하는 구조가 IoC의 핵심입니다. 전통적인 방식class TraditionalServi..