데이터베이스 - MVC 패턴 기초

2021. 11. 16. 11:12·SE Bootcamp 내용 정리

데이터베이스 – MVC

MVC(Model-View-Controller)란 소프트웨어 설계와 관련된 디자인 패턴으로, 소프트웨어 공학에서의 "흔히 사용되는" 설계 패턴을 의미
→ Model과 Controller 사이, 그리고 Model이 데이터베이스와 어떤 방식으로 연결되는지가 중요

 

ORM: Model을 기술하는 도구
→ 데이터베이스 세계와 프로그래밍 언어 사이의 개념의 간극을 줄여 주는 역할
→ ORM을 이용하여 SQL 문을 직접 작성하지 않고 엔티티를 객체로 표현할 수 있다
→ 이를 통해 느슨하게 연결된, 테스트에 용이한 애플리케이션 개발 가능

{}    ↔ ORM ↔ 관계형 DB
객체 

 

학습 목표

* MVC 패턴
- 코드를 구분하여 작성하는 이유 이해하기(MVC 디자인 패턴)
- Model, View, Controller의 역할

* Cmarket Database(실습)
- Node.js 에서 SQL 쿼리
- 클라이언트 HTTP 요청에 따른 CRUD API 구현

* Advanced(심화 학습)
- ORM의 장점 이해
- Sequelize ORM 과 관련 CLI 툴 사용(with 공식문서)
    → Sequelize를 이용한 모델 작성
    → Sequelize를 이용한 마이그레이션
- 마이그레이션의 개념과 필요성
- Sequelize ORM을 통한 테이블 간 관계 표현(1:1, 1:N, N:N)
- MVC 디자인 패턴의 한계

 

MVC 디자인 패턴

일련의 소프트웨어가 돌아가는 방식에 대한 하나의 패턴(특정 라이브러리를 지칭x)
애플리케이션을 각 기능 별로 나누어서 짜는 것(Model, Controller, View)

 

Model

데이터에 대한 정보를 가지고 있음(자신이 가지고 있던지, 데이터베이스와 연결되어 가지고 올 수 있든지)
→ 데이터베이스와 이야기(통신?)을 하면서 가지고 있는 데이터를 Controller와 이야기함

 

정리하자면,

  • 데이터를 다룬다
  • 데이터베이스와 상호작용

View

유저가 보는 화면을 보여주게 하는 역할(ex. html, css 와 같은…)

Controller하고만 이야기 한다
→ 그 뒤로 일어나는 일에 대해서는 모른다
→ 데이터를 받으면 그 것에 대한 그림을 그리는 데만 충실한 역할
→ 어떤 액션, 이벤트에 대한 input 값을 Controller에 전달

 

Controller

  • 어떤 액션, 이벤트에 대한 input값을 전달 받은 경우(View로부터)
    → 이에 대한 가공 작업을 거친 후 Model에게 가공된 데이터를 전달
  • 필요한 데이터를 Model로부터 전달 받은 경우
    → 모델로부터 전달받은 데이터를 View가 알아볼 수 있도록 가공 작업을 거친 후 View에게 전달

 

MVC 디자인 패턴의 수도코드 예시

 

 

Controller(controllers)에서는 Model(UserModel)에서 getProfile 메서드를 통해
id 값을 요청하고, Model에서는 db에게 쿼리문을 통해 해당 id에 대한 유저의 데이터를 조회(select)해서 데이터를 받아온다

 

이를 Controller에게 전달하고 Controller는 받은 데이터터를 profile이라는 변수에 담아, View(renderView)에게 전달한다

 

View는 전달받은 가공된 데이터를 통해 사용자가 보기 좋게, 가공하여 화면에 출력해 줌

 

→ 이와 같이 MVC 패턴으로 잘 짜여져 있다면(각 역할들의 의존성, 연결 구성 등) Scaling(스케일링)이나 코드 관리, 코드 가독성에서 큰 이득이 있다

저작자표시 (새창열림)

'SE Bootcamp 내용 정리' 카테고리의 다른 글

인증/보안 - 기초 1: HTTPS, Hashing, Cookie, Session  (0) 2021.11.24
데이터베이스 - MVC 패턴 연습  (0) 2021.11.19
데이터베이스 - 관계형 데이터베이스 보충 내용  (0) 2021.11.15
자료구조/알고리즘 - 중복 순열/순열/조합, DP의 알고리즘 예시  (0) 2021.11.15
자료구조/알고리즘 - 정규표현식  (0) 2021.11.11
'SE Bootcamp 내용 정리' 카테고리의 다른 글
  • 인증/보안 - 기초 1: HTTPS, Hashing, Cookie, Session
  • 데이터베이스 - MVC 패턴 연습
  • 데이터베이스 - 관계형 데이터베이스 보충 내용
  • 자료구조/알고리즘 - 중복 순열/순열/조합, DP의 알고리즘 예시
레실이
레실이
  • 레실이
    레실이의 티스토리
    레실이
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • SE Bootcamp 내용 정리 (63)
      • 알고리즘 연습 (7)
      • Project 주저리 (4)
      • 기술 면접 source (3)
      • 개발 일상 (12)
      • 생성 AI 활용 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CORS
    인증/보안
    node.js
    DOM
    객체
    IT
    JavaScript
    ubuntu
    알고리즘
    PickAndDrink
    Ajax
    Python
    자료구조
    JS
    CSS
    mongoDB
    promise
    Linux
    문자열
    useState
    MVC
    react
    node
    fastapi
    비동기
    CSR
    ORM
    useRef
    state
    데이터베이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
레실이
데이터베이스 - MVC 패턴 기초
상단으로

티스토리툴바