[데이터베이스] MVC

오늘도 삽질중·2021년 11월 17일
0

TIL

목록 보기
1/33
post-thumbnail

👊 MVC

소프트웨어가 돌아가는 방식에 대한 하나의 디자인 패턴(Model-View-Controller)

👉 특징 : 기능을 각각 나누면서 유지보수가 편해지는 코드 구성 방식. 정돈된 코드, 가독성 좋다.

👉 여러 프레임워크에는 MVC 컨셉을 사용하고 있다.
ex) Ruby on Rails(Ruby), express(JS), laravel(PHP), Django(pathon), Backbone(JS), Angular(JS), Flask(pathon), Codeigniter(PHP)

Model : 데이터와 관련된 부분
View : 사용자한테 보여지는 부분
Controller: Model과 View를 이어주는 부분

👊 MVC를 지키면서 코딩하는 방법

  1. Model은 Controller와 View에 의존하지 않아야 한다. (Model 내부에 Controller와 View에 관련된 코드가 있으면 안된다.)

  2. View가 Model로부터 데이터를 받을 때 반드시 Controller에서 받아야 한다.

  3. View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.(view: 사용자한테 보이는 UI와 모델로부터 받은 데이터가 합쳐져서 만들어진 화면) 공통적으로 보여지는 부분은 View 자체에서 가지고 있어야하는 부분이다.

  1. Controller에는 Model과 View에 의존해도 된다. (Controller 내부에는 Model과 View의 코드가 있을 수 있다.)

🗣 위에랑 똑같은 내용인데 좀 더 풀어서..? 나 이해하기 쉬우라고

  1. Model
    데이터를 자기가 가지고있거나 데이터베이스와 상호작용을 함.
    모델이 뷰랑 직접적으로 이야기하는 경우는 없다. 컨트롤러와 이야기를 함

  2. view
    유저가 보는 화면을 보여주게 하는 역할.
    컨트롤러와만 이야기를 한다. (모델이나 데이터베이스랑은 이야기 안함. 모델이나 데이터베이스와 이야기하려면 컨트롤러를 통해 이야기해야함)

  1. 컨트롤러
    뷰에서 일어나는 액션과 이벤트에 대한 인풋값을 받는다. 이걸 모델에게 보내주기전에 가공할거있으면 하고 모델에게 넘겨줌. 모델은 이 정보를 자기가 관리하는거면 자기가 하고 그렇지 않다면 데이터베이스와 이야기를 할 것임. 그리고나서 다시 컨트롤러에게 보내주고, 뷰에게 보내주기전에 가공할거있으면 가공해서 뷰에게 넘겨준다.

참고자료
-https://www.youtube.com/watch?v=ogaXW6KPc8I
-코드스테이츠
-Traversy Media(youtube)
-생활코딩
-Atom's Network

profile
의미없는 삽질은 없다1

0개의 댓글