• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

MVC 패턴에 대해서 질문이 있습니다.

20.10.05 15:35 작성 조회수 196

0

우선 좋은 강의 해주셔서 감사합니다.

현재 React 와 Flask를 연동해서 개발할 목적으로 강의를 듣고 있습니다.

다름이 아니라 강의에서 진행한 View,Controller,Model에 대한 개념이 조금 헷갈려서 질문드립니다.

1. blog_view에 있는 blog.py는 Contoller역할을 하는 것인가요?

2. db_model은 단지 연결하는 목적이고, blog_control에 있는 user_mgmt가 Model의 역할인건지?

제가 생각했던 MVC 패턴의 형식과는 달라서 조금 혼란이 왔서 질문을 드립니다..!

답변 2

·

답변을 작성해보세요.

0

이정이님의 프로필

이정이

질문자

2020.10.06

답변 감사합니다. 이해했습니다 :)

0

안녕하세요.

기본적으로는 flask 는 완전한 MVC 프레임워크는 아닙니다. 그래서 애매한 부분은 있는데, MVC 패턴을 보여드리기 위해서, 가급적 맞춰보려 한 부분이 있지만, 그렇다고 해서, 너무 억지스럽게 맞추는 것은 지양하는 것이 좋을 것 같아서, 관련 코드를 이와 같이 작성을 하였습니다.

- model 에서 데이터를 DB에서 가져오고 (DB 핸들링과 SQL 문들이 있겠죠)

- controller 에서 최종 html 코드에 넣을 데이터를 만들고, (다양한 분기문들이 있겠죠)

- view 에서 controller 에서 가져온 데이터를 붙여서 최종 html 코드를 제공하는 것이 맞을 텐데요. (여기서 최종 html 코드가 있겠죠)

코드가 워낙 간결하고, PHP 처럼 특정 코드 자체가 최종 html 코드가 아니다보니, 

- blow_view 에 있는 blog.py 에서 결과적으로는 render_template() 등으로 최종 코드를 제공하니, view 라고 보는 편이 맞고,

- blog_control 를 클래스 형태로 작성하다보니,  SQL 문을 db_model 쪽으로 또다시 함수로 빼는 것 자체는 너무 억지스럽고, 코드 유지보수나 복잡도 측면에서도 좋지 않아서요. 또 클래스 활용과 유용함에 대한 이해도도 떨어질 수 있어서요. 엄밀하게 말한다면 blog_control 이 Model + Controller 역할을 넣은셈이고, db_model 이 연결 부분의 일부 Model 기능을 가지고 있는 셈입니다.

MVC 패턴이 무엇인지 정도를 이해하고, 간결한 코드 상에서는 일부 겹칠 수도 있다 정도로 이해해주시면 좋을 것 같습니다.

감사합니다.