1. Mvc 패턴

  1. [설명]
    1. 절대적 완성된 코드가 아님, 비즈니스 로직으로부터 분리하는 것을 말합니다
  2. [구조]
    1. Model
      1. Application을 표현하기 위한 data 관리하는 부분입니다
    2. View
      1. Client에게 정보가 표현되는 방식을 관리하는 부분입니다
    3. Controller
      1. Client의 입력을 받아 Model이 이해할 수 있는 형태로 변환 합니다

2. IoC[Inversion of Control]

  1. [설명]
    1. 제어의 역전이라는 뜻으로, 프로그램의 흐름을 개발자가 아닌 컨테이너가 제어하는 디자인 패턴 입니다
    2. IoC를 사용하면 개발자는 객체의 생성, 의존성 주입, 소멸과 같은 객체의 생명주기를 컨테이너에게 맡길 수 있습니다
    3. 개발자는 비즈니스 로직에 집중할 수 있고, 코드의 재사용성과 유지보수성이 향상 됩니다
  2. [장점]
    1. 개발자는 비즈니스 로직에 집중할 수 있습니다
    2. 코드의 재사용성이 향상됩니다
    3. 코드의 유지보수성이 향상됩니다
    4. 테스트가 용이합니다
    5. 시스템의 유연성이 향상됩니다
  3. [단점]
    1. 초기 설정이 복잡할 수 있습니다
    2. 컨테이너에 대한 이해가 필요합니다
    3. 특정 프레임워크에 종속될 수 있습니다

3. SpringMVC패턴

  1. [설명]
    1. Java 웹 애플리케이션을 개발하는 데 사용되는 애플리케이션 아키텍처 패턴 입니다
    2. 모델-뷰-컨트롤러의 약자로, 웹 애플리케이션의 기능을 모델, 뷰, 컨트롤러의 세 부분으로 분리하여 개발하는 패턴 입니다
    3. 웹 애플리케이션을 개발하는 데 사용되는 다양한 프레임워크 중 하나 입니다
    4. 웹 애플리케이션을 개발하는 데 필요한 다양한 기능을 제공 합니다
  2. [구조]
    1. Model
      1. 웹 애플리케이션의 데이터를 담당 합니다
    2. View
      1. 웹 애플리케이션의 화면을 담당 합니다
    3. Controller
      1. 웹 애플리케이션의 사용자 입력을 처리하고 모델과 뷰를 조정 합니다
  3. [기능]
    1. 웹 애플리케이션의 컨트롤러를 자동으로 생성해줍니다
    2. 웹 애플리케이션의 뷰를 생성해줍니다
    3. 웹 애플리케이션의 데이터를 캡슐화 해줍니다
    4. 웹 애플리케이션의 보안을 제공 해줍니