RestController와 view 관련하여 질문있습니다.
385
작성한 질문수 1
안녕하세요.
개인 프로젝트를 진행하다 이해가 안되는 부분이 있어서 질문드립니다.
맛집 서비스를 위한 REST API (HTTPS)를 구성하는 프로젝트로,
맛집 정보들은 DB를 사용하여 관리
REST API는 CRUD 연산을 제공
할 것입니다.
일단 프론트단을 제외하고 백만 개발한거라 @RestController를 사용해서 테스트를 끝냈는데, 이제 프론트까지 개발하려고 하니 @RestController는 json 형식으로 데이터를 받잖아요. 화면을 생성해야하는데 @RestController와 별개로 새로운 클래스를 생성하여 @Controller를 붙여 뷰단만 따로 관리하는 컨트롤러를 생성하는게 좋을까요?
@RestController는 REST API를 관리하는 컨트롤러, @Controller는 화면단만 관리하는 컨트롤러로 각각 생성하는게 좋은건지 아니면 개발했던 @RestController에 ModelAndView를 활용하는 것 중 뭐가 더 나은건지? 궁금해요. 찾아보니 RestController에 화면을 줄때 자바스크립트나 ajax를 사용하는 방법이 있긴한데 보통 뭐를 더 사용하고 뭐가 더 좋은지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
고구마님의 프로젝트에 대한 질문에 대해 답변 드리겠습니다.
REST API와 화면(View)단을 동일한 프로젝트 내에서 관리하려 할 때, 일반적으로는 @RestController와 @Controller를 목적에 따라 분리해서 사용하는 것이 좋습니다. @RestController는 주로 데이터의 CRUD 작업을 위해 JSON 형태로 데이터를 주고받는 RESTful 서비스 구현에 적합하며, @Controller는 뷰 템플릿을 이용해 HTML 페이지를 렌더링하는데 사용됩니다.
즉, @RestController를 통해 만든 API를 프론트엔드에서 AJAX 호출 등을 통해 사용하고, 화면을 서버 사이드에서 렌더링하려면 별도의 @Controller를 구현하여 뷰와 관련된 처리를 담당하는 것이 일반적인 접근 방식입니다.
ModelAndView 객체를 @RestController에 활용하는 방식보다는 주로 서비스의 API 부분과 뷰를 분리하여 생각하는 것이 관리 측면에서도, 프로젝트의 구조 명확성 측면에서도 더 바람직합니다. 프론트엔드 개발과의 연동 과정에서는 REST API 결과를 JavaScript나 AJAX를 통해 활용함으로써 프론트엔드에서 동적으로 데이터를 처리할 수 있어 유연한 개발이 가능해집니다.
따라서, @RestController와 @Controller를 목적에 맞게 분리하여 사용하는 것을 추천드립니다. 이렇게 분리함으로써 각각의 역할이 명확해지고, 유지보수 및 관리 측면에서도 이점을 가질 수 있습니다.
섹션2, 대화&세션관리 수업 자료 누락
0
9
1
영상 다운로드는 안되나요?
0
12
0
IntelliJ IDEA 체험 만료
0
12
1
부하 테스트 시 설정 관련 질문드립니다
1
30
1
HelloSpringApplication.java 클래스 실행 오류
0
12
1
build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)
0
35
2
예외처리 3강 문의
0
33
1
챌린지 시작일 문의
0
39
0
26년2회 실기기출은 언제쯤...
0
60
2
네이버 API | '검색 - 책' API 제공 중단
0
42
2
ArticleReadService 관련 질문
0
30
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
71
1
이론 공부법 요약본 버전 업데이트 문의
0
39
2
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
52
1
해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.
0
27
1
Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.
0
47
2
테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.
0
32
1
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
82
1
리뉴얼 시기
0
53
2
스크립트에 대해 질문 있습니다.
1
60
1
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
74
1
조건 검색 질문
0
40
1
JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문
0
56
3
클로드코드 명령어-대화&세션관리 수업 자료
0
43
1





