5주차 - WIL

장동희·2023년 3월 19일
0

항해99

목록 보기
5/8

5주차

ORM :

Object Relational Mapping, 객체-관계 매핑
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.

  • 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
  • 객체 모델과 관계형 모델 간에 불일치가 존재한다.
  • ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.

ORM의 장단점 :

장점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다

단점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
  • 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다.

SQL :

Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어이다

SQL 문법의 종류 :

  • DDL(Data Definition Language, 데이터 정의 언어)
    각 릴레이션을 정의하기 위해 사용하는 언어입니다.
  • DML(Data Manipulation Language, 데이터 조작 언어)
    데이터를 추가/수정/삭제하기 위한, 즉 데이터 관리를 위한 언어입니다.
  • DCL(Data Control Language, 데이터 제어 언어)
    사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다.

SQL의 언어적 특성 :

  1. SQL은 대소문자를 가리지 않습니다.
  2. SQL 명령은 반드시 세미콜론(;)으로 끝나야 합니다.
  3. 고유의 값은 따옴표(")로 감싸줍니다.
  4. SQL에서 객체를 나타낼 때는 백틱으로 감싸줍니다.
  5. 주석은 일종의 도움말로, 주석 처리된 문장은 프로그램에서 동작하지 않습니다.

MVC :

MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.

Model :

  • Model은 Data와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할을 합니다.
  • 즉, 모델은 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리하는 역할을 합니다.
  • 데이터 추출, 저장, 삭제, 업데이트 등의 역할을 수행합니다.

Model 규칙 :

  • 사용자가 편집하기를 원하는 모든 데이터를 가지고 있어야 합니다.
  • View나 Controller에 대헤서 어떤 정보도 알지 말아야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.


View :

  • View는 사용자에게 보여주는 화면(UI)이 해당됩니다.
  • 사용자와 상호작용을 하며 컨트롤러로부터 받은 모델의 결과값을 사용자에게 화면으로 출력하는 일을 합니다.
  • MVC에서는 여러개의 View가 존재할 수 있습니다.
  • Model에서 받은 데이터는 별도로 저장하지 않습니다.

View 규칙 :

  • Model이 가지고 있는 정보를 따로 저장해서는 안됩니다.
  • Model이나 Controller와 같이 다른 구성요소들을 몰라야 합니다.
  • 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야만 합니다.



Controller :

  • Controller는 Model과 View 사이를 이어주는 인터페이스 역할을 합니다.
  • 즉, Model이 데이터를 어떻게 처리할지 알려주는 역할을 합니다.
  • 사용자로부터 View에 요청이 있으면 Controller는 해당 업무를 수행하는 Model을 호출하고 Model이 업무를 모두 수행하면 다시 결과를 View에 전달하는 역할을 합니다.

Controller 규칙 :

  • Model이나 View에 대해서 알고 있어야 합니다.
  • Model이나 View의 변경을 모니터링 해야 합니다.

MVC의 한계 :

Model과 View는 서로의 정보를 갖고 있지 않는 독립적인 상태라고 하지만 Model과 View사이에는 Controller를 통해 소통을 이루기에 의존성이 완전히 분리될 수 없습니다. 그래서 복잡한 대규모 프로그램의 경우 다수의 View와 Model이 Controller를 통해 연결되기 때문에 컨트롤러가 불필요하게 커지는 현상이 발생하기도 합니다. 이러한 현상을 Massive-View-Controller현상이라고 하며 이를 보완하기 위해 MVP, MVVM, Flux, Redux등의 다양한 패턴들이 생겨났습니다.

0개의 댓글