inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

회원 웹 기능 - 조회

restful , MVC

143

강리눅스

작성한 질문수 5

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는 어디에 해당하는 것일까요..?

혼란스럽습니다 ㅠㅠ

 

java spring mvc spring-boot restful

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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 패턴을 논리적으로 확장하여 이해하는 방식입니다.

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

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

..

0

76

2

Unused property.....

0

99

2

project JDK is misconfigured

0

132

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

83

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

230

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

103

2

윈도우 build test오류 질문

1

102

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

99

2

테스트 실행 시 에러 질문

0

291

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

129

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

89

1

java static class와 kotlin class

0

79

1

스프링 DB연결

0

126

1

소요 시간

0

87

2

ddl.sql에 빨간 밑줄

1

102

2

welcome page 에러

0

183

3

잘 모르겠습니다.

0

164

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

124

1

프로젝트 gradle-groovy ?

0

369

1

테스트코드 메서드명 한글

0

202

2