항해99 4주차 WIL

정현욱·2022년 6월 5일
0

ORM
ORM은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.

쉽게 말하면, SQL구문을 직접 사용하지 않고 개발자에게 익숙한 프로그래밍 언어로 데이터 베이스를 만들고, 사용할 수 있도록 데이터베이스와 프로그래밍 언어를 매핑 시켜주는 프로그래밍 기법을 말한다.

매핑 - 하나의 값을 다른 값에 대응시키는 과정

ORM의 장점
SQL언어를 직접 사용하는 것이 아닌 프로그래밍 언어를 사용해 작업이 가능하다.
RDBMS마다 다른 SQL 문법을 별도로 알아야할 필요없이 ORM이 프로그래밍 언어를 다양한 RDBMS에 맞는 SQL문으로 변경시켜준다.
따라서 ORM을 사용하면 RDBMS 종속적인 어플리케이션이 아닌 RDBMS를 쉽게 변경할 수 있다.

SQL
SQL이란?
SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
관계형 데이터 베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정,
데이터 베이스 객체 접근 조정 관리를 위해 고안되었다.
많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.

MVC

  • MVC 란?

    • 개발시 사용되는 디자인 패턴이다.
    • Model-View-Controller로 구성되며 client와 server의 로직을 분리하여 server 에서의 수정이 client 의 화면에 영향이 없도록 설계하는 것이 목적이다.
  • Model, View, Controller

    1. Model

    Model은 데이터 관리 및 비즈니스 로직을 처리하는 부분이다.
    단순히 요청에 의한 로직만 처리하고 이 결과를 어디에 사용하는지, 어떻게 사용하는지는 전혀 상관하지 않는다.

    • DAO, DTO, Service 등

      2. View

      View는 비즈니스 로직 처리 결과를 통해 사용자 인터페이스가 표현되는 구간이다

      이 부분 역시 Model을 통해 전달받은 데이터가 어떤 데이터인지 전혀 상관하지 않는다.

      View는 html, jsp 등 화면을 구성하기도 하고, Rest API로 서버가 구현되면 json 응답으로 구성되기도 함.

      3. Controller

      Controller는 Model과 View를 연결해주는 역할이다.
      Model과 View는 서로 연결되어있지 않기 때문에 Controller가 사이에서 통신 매체가 되어준다.

  • MVC 처리과정

    MVC 처리과정을 알기위해 다음의 3가지를 알아야한다.

    1. DispatcherServlet : 클라이언트에게 요청을 받아 응답까지의 MVC 처리과정을 통제한다.
    2. HandlerMapping : 클라이언트의 요청 URL을 어떤 Controller가 처리할지 결정한다.
    3. ViewResolver : Controller의 처리 결과(데이터)를 생성할 view를 결정한다.

    처리과정

    1. Client -> DispatcherServlet

    클라이언트의 요청.

    2. DispatcherServlet -> HandlerMapping

    DispatcherServlet이 요청을 가로채어 HandlerMapping에게 요청에 알맞는 Controller를 알려달라고 일을 시킨다.

    3. HandlerMapping -> DispatcherServlet -> ControllerAdapter -> Controller

    알맞는 Controller를 찾으면 DispatcherServlet은 해당 Controller에게 요청을 위임한다. 위 위임 과정은 ControllerAdapter가 해당되는 Controller에게 전달한다.

    4. Controller -> Service

    Controller는 맵핑되는 메서드를 실행하여 해당되는 Service는 비즈니스 로직을 수행한다.

    5. Service -> Controller

    Service는 비즈니스 로직을 처리한 후 결과를 Controller에게 다시 응답한다.

    6. Controller -> ControllerAdapter -> DispatcherServlet

    Controller는 응답받은 데이터를 어떤 view(ex jsp, html)를 통해 보여줄 것인지의 정보를 담아 DispatcherServlet에게 응답한다.

    7. DispatcherServlet -> ViewResolver

    DispatcherServlet는 Controller(ControllerAdapter)에게 받은 view에 대한 정보를 ViewResolver에게 넘긴다.

    8. ViewResolver -> DispatcherServlet

    ViewResolver는 jsp 또는 html을 찾아서 DispatcherServlet에게 응답한다.

    9. -> View

    DispatcherServlet는 응답받은 jsp 또는 html을 View에게 Render를 지시하고 결과적으로 클라이언트에게 View가 제공된다.

profile
코린이

0개의 댓글