inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

RestController와 view 관련하여 질문있습니다.

380

고구마

작성한 질문수 1

0

안녕하세요.

개인 프로젝트를 진행하다 이해가 안되는 부분이 있어서 질문드립니다.

맛집 서비스를 위한 REST API (HTTPS)를 구성하는 프로젝트로,

할 것입니다.

일단 프론트단을 제외하고 백만 개발한거라 @RestController를 사용해서 테스트를 끝냈는데, 이제 프론트까지 개발하려고 하니 @RestController는 json 형식으로 데이터를 받잖아요. 화면을 생성해야하는데 @RestController와 별개로 새로운 클래스를 생성하여 @Controller를 붙여 뷰단만 따로 관리하는 컨트롤러를 생성하는게 좋을까요?

  1. @RestController는 REST API를 관리하는 컨트롤러, @Controller는 화면단만 관리하는 컨트롤러로 각각 생성하는게 좋은건지 아니면 개발했던 @RestController에 ModelAndView를 활용하는 것 중 뭐가 더 나은건지? 궁금해요. 찾아보니 RestController에 화면을 줄때 자바스크립트나 ajax를 사용하는 방법이 있긴한데 보통 뭐를 더 사용하고 뭐가 더 좋은지 궁금합니다.

springboot java restcontroller controller

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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를 목적에 맞게 분리하여 사용하는 것을 추천드립니다. 이렇게 분리함으로써 각각의 역할이 명확해지고, 유지보수 및 관리 측면에서도 이점을 가질 수 있습니다.

9강 35분경 질문있습니다

0

8

1

11강 3:20

0

10

1

10강 11:42

0

12

1

9강 26:23

0

18

1

9강 23:46

0

12

0

테스트 코드 작성 시 DTO 새로 작성하는 이유가 궁금합니다.

0

16

1

코드 중간에 . 붙은건 뭐라고 봐야할까요?

0

24

2

설명중 단어 의미 해석 문제.

0

18

1

수강 섹션마다 옆에 자료 다운로드 버튼이 있는데. 다운받으면 무슨내용이 있는건가요?

0

13

1

변경감지(더티체킹) 이후 플러시할 경우의 쿼리

0

19

1

SQL 집중학습

0

28

1

NULL과 0

0

28

2

26년 1회 기출문제 11번 질문드립니다

0

30

1

경력기술서는 어떤 방향이 좋을까요?

0

24

2

업캐스팅 문제예시5 & 업캐스팅 문제 예시 6

0

30

1

V1.2 VS V.091

0

38

2

split('T')일때는 T만 제거되는거고 공백은 제거되지 않는 건가요?

0

41

2

파이썬 언어 업데이트, 언어별 학습자료 업데이트

0

45

2

C, java, python 언어 기출문제 강의 질문

0

42

2

Spring AI 프레임워크를 사용하지 않은 이유

0

42

1

단일 테이블 시 null 값과 연관관계 필요성 질문

0

32

1

1:26 에서 반복문 i[1] 이니까 0 다음 두번째 항목들 아닌가요

0

40

2

d

0

40

2

출력값

0

38

2