MVC(Model View Controller) : 소프트웨어가 돌아가는 방식에 대한 하나의 패턴으로, 특징 모델-뷰-컨트롤러로 기능을 나누어 정해서 정돈되어있다. 기존에 합쳐진 컴포넌트 보가 코드 가독성, 코드 관리성이 좋아지고 코드 퀄리티 또한 좋아질 수 밖에 없는 것 같다.
데이터의 정보를 갖고있다. Model컴포넌트 안에 데이터를 직접 갖고 있던지, db와 연결되어있던지 한다. 컨트롤러와 주로 연결되어있다.
컨트롤러와 주로 연결되어있다. 액션과 이벤트를 받아서 컨트롤러에 보낸다.
뷰에서 받은 액션과 이벤트를 모델에 보내거나 클라이언트로 보내준다.
모델에서 받은 데이터를 가공해서 뷰로 보내거나 다시 모델로 보낸다.
뷰, 모델, 클라이언트 3개와 연결되어있다.
(출처: 내 손, model <- database 빠졌다ㅜ)
1. 유저가 브라우저로 신호를 보낸다.
2. 라우터에서 분기를 한다.(post, get 등등)
3. 컨트롤러 함수로 값을 전달한다.
4. 뷰, 모델 중에 한군데를 간다.
4-1. 뷰로 간다면 뷰는 받은 값에 대한 액션과 이벤트를 보내고 그 값을 받아 다시 컨트롤러로 보낸다.
4-2. 모델은 db와 정보를 교환하고 다시 그 값을 컨트롤러로 보내준다. 컨트롤러에서 값을 확인하고 뷰로 보내준다. 뷰는 ui를 통해 보여준다.
Object - orm - Relational Database 사이에서 중개자 역할을 해준다.
sql 문없이 클래스를 사용하여 데이터베이스에 접근할 수 있다.
-> Relational Database의 데이터를 javascript Object 다루듯이 다룰 수 있다. 훨씬 접근하기 편리해 진다.
transaction
쿼리의 하나하나의 조합을 하나의 트랜잭션으로 보고 중간에 문제가 생기면 롤백 성공하면 커밋한다.
마이그레이션 : 일종의 커밋 로그