인프런 커뮤니티 질문&답변

강리눅스님의 프로필 이미지
강리눅스

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 조회

restful , MVC

작성

·

45

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요! MVC 패턴에 대해서 공부를 하다가 궁금한 것이 있어서 질문드립니다 !

 

제가 프로젝트를 했을 때는 주로 프론트와 백엔드 코드를 분리하여 프로젝트를 관리하였습니다.

 

이때는 지금 강의에서 하는 방식(MVC)과 다르게 RESTful 방식으로 진행을 하였습니다.

 

그렇다면 당연하게도, Model과 View는 프론트에서 관리를 하고, 들어오는 요청을 받는 Controller와 로직을 처리하는 Service, 데이터베이스와 관련된 로직을 처리하는Repository

이 3가지로 패키지가 관리되고 있었습니다.

 

그렇다면 RESTful하게 개발하는 방식에는 과연 MVC 패턴이 적용되지 않는 것인가 ? 하는 궁금증이 생겨서 조사를 해보았어요 !

 

https://okky.kr/questions/1414743

 

여기서 제가 이해한 것을 짧게 정리를 해보자면,

RESTful한 방식과 MVC는 별개의 것이 아니라는 것입니다.

지금 강의에서 하는 방식의 model과 view는 물리적으로 화면에 나오기는 방식으로 이해할 수 있고,

 

RESTful한 방식에서 VIEW는 JSON 데이터를 반환하는 것을 논리적인 개념으로 이해할 수 있다는 것으로 이해를 했습니다.

 

다시 위의 글에 적용을 해보자면

Service, Repository 부분이 model,

다시 값을 Controller부터 return(JSON 값)하는 것이 View라고 이해하면 맞을까요..?

개념적으로
service: Model

JSON반환타입: View

controller: Controller

 

이렇게 딱 맞게 정의한다면... repository는 어디에 해당하는 것일까요..?

혼란스럽습니다 ㅠㅠ

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 강리눅스님께서 제기하신 RESTful과 MVC 패턴의 관계에 대한 질문에 대해 답변드리겠습니다.

RESTful과 MVC 패턴의 관계

  1. MVC 패턴의 구성요소:

    • Model: 데이터를 다루고 비즈니스 로직을 처리하는 부분입니다. 보통 Service와 Repository를 합쳐 Model로 볼 수 있습니다.
    • View: 사용자가 실제로 보는 화면이나 데이터를 표현하는 방식입니다. 전통적인 MVC에서는 HTML을 말하지만, RESTful의 경우 JSON 응답이 View의 역할을 할 수 있습니다.
    • Controller: 사용자 요청을 받고 처리하는 부분입니다. RESTful에서는 컨트롤러가 주로 데이터(JSON)를 반환하게 됩니다.
  2. RESTful 방식에서 MVC 적용:

    • RESTful: API를 통해 데이터를 주고받는 방식으로, JSON 같은 포맷으로 데이터가 전달됩니다. 이 때 JSON이 View의 역할을 하게 됩니다.
    • Repository는 데이터 소스와 직접적인 상호작용을 하기 때문에 Model에 포함됩니다. 즉, 데이터를 취급하는 모든 로직(Service + Repository)이 Model로 볼 수 있습니다.
  3. RESTful과 MVC의 공존:

    • RESTful 방식에서도 MVC 패턴은 기본적인 구조를 유지하고 있습니다: Controller는 요청을 받고, Service와 Repository는 데이터를 처리하며, 반환되는 JSON은 View로 간주됩니다. 이러한 정의는 MVC 패턴을 논리적으로 확장하여 이해하는 방식입니다.

아래의 링크를 통해 보다 구체적인 예시와 답변을 확인해 보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강리눅스님의 프로필 이미지
강리눅스

작성한 질문수

질문하기