Spring 기본 개념

suesue lee·2022년 1월 28일
0

SPRING

목록 보기
2/4

MVC 구조

  • MODEL- VIEW - CONTROLLER 의 약자로, 디자인 패턴의 일종이다.
  • 비즈니스 처리 로직과 사용자 인터페이스를 구분시켜 서로 영향 없이 개발이 가능하다는 장점이 있다.
  • 모델은 애플리케이션이 무엇을 할지에 대해 정의한다.
    처리되는 데이터, 데이터베이스, 내부 알고리즘 등 내부 비즈니스에 관한 로직의 처리를 수행한다.
    즉, 사용자에게 보이지 않는 로직이다.
  • 는 말 그대로 사용자에게 보여지는 영역이다. JSP등 사용자 인터페이스를 담당한다.
  • 컨트롤러는 모델에게 어떻게 할 것인지를 알려주며, 모델과 뷰 사이를 연결하는 역할을 한다. 사용자의 입출력을 받아 데이터를 처리한다.

컨테이너

  • framework 안에서 intance 들의 생명 주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 부여한다.

  • 자신이 작성한 코드의 처리과정을 container 에서 수행한다.

  • spring container 는 spring framework 핵심에 위치하며, DI 를 통하여 애플리케이션을 구성하는 comfonent(요소)들을 관리한다.

  • Lifecycle Mangement, configuration, Dependency Resolution, Object pooling 등을 관리한다.


    IOC 컨테이너

  • Inversion of Control, 제어의 역전 이라는 뜻으로,
    인스턴스의 생성 및 소멸을 개발자 대신 컨테이너가 처리한다. 그 외 제어권을 프레임 워크에서 가져 간다는 말로도 사용한다.

  • 필요한 이유는 아래와 같다.

 1. 컴포넌트 / 오브젝트가 자유로운 삽입이 가능하도록 하기 위해서
 2. 서비스의 configration 이 일관성을 갖도록 하기 위해서
 3. 단일화 된 서비스의 접근방법을 제공한다.
 `1`4. 비즈니스 오브젝트에 부가적인 enterprise service 를 제공한다. 

DI

  • Dependency Injection : 의존성 주입 이라는 뜻으로, IOC 를 실제로 주입하는 방법이다.
  • 의존성이 있는 컴포넌트를 개발자가 코드로 명시하는 것이 아니라 Spring이 runtime 에서 연결처리 한다.
  • 의존적인 객체를 직접 생성하거나 제어하는 것이 아니라, 특정 객체에 필요한 객체를 외부에서 결정해서 연결해주는 것이다.

Spring MVC 의 흐름

 1. 요청된 URL 을 dispatcher-servlet으로 전달한다.
 2. 핸들러 매핑은 해당 URL에 매핑된 컨트롤러가 있는지 검사 후에 컨트롤러에게 전달한다.
 3. 해당 컨트롤러가 로직을 처리한다.
 4. ModelAndView 객체 생성 후, 로직의 결과를 담아서 dispatcher-servlet 에 전달한다.
 5. dispatcher-servelt은 전달 받은 뷰가 있는지 검사하기 위해서 ViewResolver 로 보낸다.
 6. ViewResolver 는 받은 뷰가 있는지 검사 후 View 로 보낸다.
 7. 모델과 같이 뷰를 그린 후에 dispatch-servlet으로 보낸다. 

Bean 객체

  • 자바에서 POJO(Plain Old Java Object)로, XML 설정 파일을 통한 생명주기, 종속상 드의 메타데이터를 가지고 스프링 컨테이너에서 생성된 객체이다.

  • 컨테이너에서 생성되었다는 점을 제외하면 일반 자바 객체와 같다.


    VO

  • Value Object 의 줄임말로, 값을 갖고 있는 객체이다.

  • 비즈니스 값을 가져올 때 사용되며, 보통 값을 수정할 수 없는 것으로 한다.
    즉, getter만 존재하고 setter이 없는 것이 일반적이다.


    DTO

  • Data Transfer Object 의 줄임말로 VO(Value Object)와 같이 값을 갖고 있는 객체이다.

  • VO 와의 차이점은 하나의 인스턴스로, 데이터 핸들링에 사용되는 객체이다.

  • DTO 를 통해 데이터를 전달 할 수 있다.


    DAO

  • Data Access Object 의 줄임말로, 실제 DB에 접속하는 객체이다.

  • Service 와 DB 사이에서 가져온 데이터를 Entity로 변환시켜 가져온다.


출처 : https://velog.io/@dnjscksdn98/Spring-Framework-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

profile
미래의 웹프로그래머

0개의 댓글