본문 바로가기

개념정리

12/7[TIL]MVC Pattern

MVC

소프트웨어가 돌아가는 방식에 대한 하나의 패턴

이러한 MVC 패턴으로 만들어진 라이브러리라던지 프레임워크 들이 존재한다.

서비스가 잘 진행되기 위해 각 기능별로 나눈다.(모델 / 뷰 / 컨트롤러)

코드 가독성, 코드 관리, 코드의 질 향상

 

Ruby on Rails(ruby) / express(js) / Laravel(PHP) / Backbone(js) / Codeigniter(PHP) / Angular(js) / Django(python) / Flask(python)

 

 

Model

데이터의 정보를 가지고 있다.

DB와 연결되어 있어 데이터를 가지고 올 수 있다.

자기 자신이 가지고 있는 데이터나 DB에서 가져온 데이터들로 Controller와 상호작용한다.(데이터반환)

모델이 View 직접 대화하는 경우는 잘 없다.

 

View

유저가 보는 화면을 보여주게 하는 역할을 한다.

브라우저의 경우 html이나 css 역할이라고 보면 된다.

View는 Controller와 대화 하고 Model이나 DB와는 직접 대화 하지 않는다.

그저 데이터를 받으면 그 데이터를 바탕으로 그릴 뿐이다.

 

Controller

View에서 일어나는 액션과 이벤트에 대한 input 값을 받는다. 그럼 그 값들을 Model에 전달해주기 전에 일련의 가공과정을 거친 후 전달한다. 그럼 Model은 상황에 따라 자체 Data를 반환해 Controller에게 전달해 주든 다시 DB에서 다시 Data를 받아 다시 반환해 주게 된다. 그럼 Controller는 View가 이 data를 알아 들을 수 있게 가공과정을 거친 후 View에게 전달해 주게 된다.

ORM

관계형 데이터베이스 엔티티, 레코드 등을 접근 할 때 마치 js의 객체 혹은 Class를 취급하듯이 다룰 수 있게 해준다. DB 와 JS 간의 중개사 혹은 통역사 역할을 한다고 생각하면 된다. 객체와 모델 사이의 관계

SQL문이 전혀 없이도 DB에 접근 할 수 있다.

 

객체에서의 각 속성은 DB에서는 필드라고 생각하면 된다. N:N은 배열을 이용하여 표현한다.

 

 

 

 

Node.js 기반의 ORMSequelize

promise를 지원한다. 지원하는 DB(Postgres / MySQL / MariaDB / SQLite / Microsoft SQL Server)

JS 코드만 작성하면 DB의 다양한 종류를 사용하는데 도와준다.

 

Association SQLjoin

Transaction 은 하나하나의 쿼리의 조합을 작업 단위로 보고 중간에 문제가 생겼을 시 rollback 성공시 commit을 해주는 것

 

 

 

 

'개념정리' 카테고리의 다른 글

12/10[TIL]Authentication(2)  (0) 2020.12.10
12/9[TIL]Authentication  (0) 2020.12.09
12/2[TIL]SQL  (0) 2020.12.02
11/24[TIL]Redux  (0) 2020.11.24
11/23[TIL]Module / Bundler / 비동기 / Virtual Dom / Hooks  (0) 2020.11.23