CS TIL

이재하·2023년 10월 18일
0
post-thumbnail

DI와 IoC

DI와 IoC는 객체 지향 프로그래밍에서 중요한 개념이다.

IoC (Inversion of Control)

  • 프로그램의 제어 흐름을 역전시켜 객체 생성 및 관리를 외부 컨테이너나 프레임워크에 맡기는 원칙이다. 이는 모듈 간의 결합도를 낮춰 유연성을 높이는 목적을 가진다.

DI (Dependency Injection)

  • 객체가 필요한 의존성을 직접 생성하는 대신 외부에서 주입받는 디자인 패턴이다. Spring에서는 클래스가 직접 의존하는 객체를 생성하지 않고, 외부에서 필요한 의존성을 주입받는 것을 의미한다. 주입 방식에는 생성자 주입, 세터 주입, 필드 주입 등이 있다.

이 두 개념을 적용하면, 예를 들어 Spring에서 제어의 흐름이 Repository -> Service -> Controller로 역전될 수 있게 하며, 대규모 애플리케이션에서 모듈 간의 결합도를 줄이고 코드의 유연성과 재사용성을 향상시킬 수 있다.


MVC 모델

MVC (Model-View-Controller) 모델은 소프트웨어 설계에서 널리 사용되는 아키텍처 패턴이다. 이 패턴은 애플리케이션을 세 가지 주요 구성 요소로 분리하여 각각의 역할을 명확하게 하고, 서로 간의 의존성을 최소화하는 것을 목표로 한다.

  1. 모델(Model): 데이터와 비즈니스 로직을 처리하는 부분으로, 애플리케이션의 핵심적인 동작 및 상태를 담당한다. 예를 들어, 데이터베이스의 CRUD 연산을 수행하거나 복잡한 계산을 처리한다.

  2. 뷰(View): 사용자에게 보여지는 인터페이스를 담당한다. 즉, 사용자가 볼 수 있는 화면의 구성과 표현을 담당하며, 사용자와의 직접적인 상호작용을 담당하지는 않는다.

  3. 컨트롤러(Controller): 사용자의 입력을 받아 처리하며, 모델과 뷰 사이의 조정자 또는 중재자 역할을 한다. 사용자의 요청에 따라 모델을 업데이트하거나, 적절한 뷰를 사용자에게 표시한다.

이렇게 MVC 패턴을 적용하면, 각 구성 요소가 독립적으로 개발 및 테스트될 수 있으므로 유지보수와 확장이 용이하다. 또한, 모델, 뷰, 컨트롤러 간의 명확한 역할 분담으로 코드의 가독성과 재사용성이 높아진다.

0개의 댓글