항해99[5기] 4주차 WIL[2/6]

김현진·2022년 2월 5일
0

항해 WIL

목록 보기
4/5

ORM(Object Relational Mapping)

  • 객체-관계 매핑
  • 객체 지향적(OOP)으로 설계된 객체를 구현한 클래스와
    관계형 데이터베이스(RDB)에서의 테이블에는 불일치 존재
    -> ORM을 통해 '객체'를 중심으로 자동으로 SQL을 생성하여 불일치 해결

장점

  • 객체지향적인 코드로 데이터베이스를 조작할 수 있다
    -> SQL문을 작성하면서 필요한 것들을 크게 신경쓰지 않고 DB를 사용할 수 있다
  • 재사용, 유지보수의 편리성이 증가한다
    -> ORM은 독립적으로 작성되어 있고, 해당 객체들을 재활용 할 수 있다
    -> 매핑 정보가 명확해 ERD를 자주 확인하지 않아도 된다
  • DB에 대한 종속성이 줄어든다
    -> 특정 DB에만 사용할 수 있는 것이 아니기 때문에, DB를 교체할 때
    모든 코드를 바꾸지 않아도 교체할 수 있다.

    단점

  • 모든 것을 ORM만을 사용하여 구현하기는 어렵다
    -> 프로젝트의 복잡성이 커지면 난이도가 크게 증가한다
    -> 잘못 구현한 경우 성능 저하와 일관성이 무너질 수 있다
    -> 항상 내가 원하는 방식대로 동작하지 않을 수 있다

SQL(Structured Query Language)

  • DBMS에서 자료를 처리 및 관리하기 위한 언어
  • 일반적인 프로그래밍 언어와 달리 대화식 언어이기 때문에 명령문이 짧고 간결

쿼리문의 분류

DDL(데이터 정의어)

  • DB 오브젝트를 생성, 삭제
  • DB 설계단계에서 주로 사용
  • CREATE, DROP, ALTER, ...

DML(데이터 조작어)

  • DB에 데이터를 조회, 삭제, 삽입, 변경
  • SELECT, INSERT, UPDATE, ...

DCL(데이터 제어어)

  • 사용자의 권한 관리
  • GRANT, DENY, REVOKE, ..

MVC(Model - View - Controller)

MVC 패턴

  • 디자인 패턴중 하나로, Model, view, controller 계층으로 나누어 개발하는 방식
  • 각 계층은 각자 맡은 역할이 철저히 분리되어 있고, 상호작용을 통해 정보를 교환한다
  1. Model
    • 어플리케이션이 무엇을 할 것인지 정의하는 부분
    • 내부 비즈니스 로직을 처리
    • DB와 직접적으로 상호작용하여 데이터를 처리, 가공하여 Controller에게 전달
  2. View
    • 사용자 인터페이스 요소, 즉, 화면을 담당
    • controller가 model로부터 받은 정보를 다시 view에 넘겨주어 이용
  3. Controller
    • 사용자의 입력처리와 흐름 제어
    • 사용자가 접근한 URL에 따라서 사용자의 요청사항 파악 후, 그 요청에 맞게
      Model에 의뢰하여 처리 결과를 View에 반환

그렇다면 Service, Repository는?

→ MVC패턴에서 model이 수행하는 역할을 분리한 것
1. Service
- 핵심 로직(비즈니스 로직)을 처리
- Controller에서 전달받은 요청을 처리하며 그 과정에서 Repository를 호출하여
정보를 받아 가공 후 Controller로 반환
2. Repository
- DB에 직접 연결되어 쿼리 호출, 결과 데이터를 반환

0개의 댓글