inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

API

ResponseBody 질문드립니다.

402

작성자 없음

작성한 질문수 0

0

안녕하세요. 

원래  스프링이 기존 경로 세팅이 controller에 매핑된

값을 찾아서 return 시 resources:template/{name}.html

로 간다고 하셨고, 없을 시 static에서 찾아본 후 이동시켜

준다고 말씀하셨습니다.

이 내용은 이해를 했는데, 그렇다면 controller에 존재하는

메소드의 return 값은 경로를 지정해주기 위한 것인가?

라는 생각이 듭니다. 경로를 지정해준 것처럼 동작했기

때문입니다. 

근데 ResponseBody를 통한 api 방식은 return 부분에

적는 것이 경로가 아닌 문자열 or 객체 등의 직접적인

값인 것 같아서 혼동됩니다. 

프로그래밍 초보라 질문내용을 정확히 전달하기가 힘든데,

다시 정리하자면 기존의 메소드는 반환형을 기재할 시

해당 함수를 처리하고 반환 값을 return 해주기 위한

용도로만 알고 있었습니다. 근데 spring의 controller에서

는 메소드가 기존 용도라기 보다는 이동할 경로를 매핑

해주는 용도로 이해했습니다. 그런데, ResponseBody를

통해 기재한다면 후자보다는 전자쪽에 가까운 것 같은

느낌이 들었습니다. 그리고 혼동되었습니다. 

어느 화면에서 띄워주는지는 기재되지 않았는데, 어느 

화면에 해당 데이터를 띄워주는 것인지, controller의 

역할이 무엇인지, 메소드에 대해 잘못 알고 있었는지

등등 말로 표현 못하지만 이 글을 적으면서도 여러

혼란이 생겼습니다. 딱 정리되진 않지만 질문드려 봅니다.

ㅠㅠ 

읽어주셔서 감사하고 좋은하루 되시길 바랍니다..!

spring-boot spring java MVC

답변 2

0

김영한

안녕하세요. 유진이님

결론부터 말씀드리면 @ResponseBody를 사용하면 경로라는 개념이 없습니다. HTTP 메시지 바디에 직접 결과가 적히게 됩니다. (보통 JSON으로)

이 부분에 대한 이해가 어려운 이유는 보통 HTTP에 대한 기본 지식이 부족하기 때문입니다.

관련해서 다음 강의를 추천드립니다.

모든 개발자를 위한 HTTP 웹 기본 지식

감사합니다.

0

유진이

넵 답변 감사합니다. 무료강의 수강이 끝나면 야생? 학습법에 따라서 전강의 수강하도록 하겠습니다 ㅎㅎ

0

김영한

네 화이팅!

0

김영한

안녕하세요. 유진이님^^

단순하게 스프링이 크게 2가지 다른 방식을 제공한다고 이해하시면 됩니다.

1. 화면 파일을 찾는 기능

2. HTTP에 바로 응답하는 기능(@ResponseBody)

감사합니다.

0

유진이

http에 바로 응답하게 되면 경로는 어디로 위치하게 되는건가요? 예를들어 ajax를

스프링에서 썼을때, 성공 후에 javscript쪽으로 데이터가 돌아오지 않던데.. 당시

구글링을 해봤을때는 @responsebody를 기재해라, modelAndView를 사용해라,

model을 사용해라 등등 방법을 다 써봤지만 ajax의 success 함수에 값이 찍히지가

않았던 경험이 있습니다. 그래서 그때 생각했던게 @ResponseBody로 돌려보내면

이걸 보낼 경로를 따로 설정해주지 못해서 ajax로 돌아가지 못한게 아닌가..?

이런 생각이였습니다.. 개발공부 경력이 얼마안되서 횡설수설.. 제가 궁금한점을

명확하게 말씀드리질 못하고 이런식으로 쓰게됐습니다 .. ㅠㅠ 

다시 한번 정리해보자면 이런것 같습니다. 개발자님이 답변해주신 1번의 기능으로 컨트롤러가

html 경로를 찾아줄때는 model(?)에 데이터를 담아놓으면 같이 전달되는 것으로 알고

있습니다.

근데 responsebody로 전달해주게되면 return 부분에 경로가 아닌 return data를 적어주기

때문에 경로가 없는데 어디로 보내주느냐가 궁금했습니다. 이때 modelandview(?)를 이용해서

보내려고 했는데도 안됐었던것 같습니다.. 

인텔리제이 오류

0

50

1

..

0

113

2

Unused property.....

0

121

2

project JDK is misconfigured

0

166

2

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

0

102

2

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

0

103

2

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

0

256

1

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

0

125

2

윈도우 build test오류 질문

1

123

2

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

0

113

2

테스트 실행 시 에러 질문

0

316

1

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

0

82

1

빌드 후 libs 없음

1

149

1

윈도우 gradlew.bat 에러

0

186

1

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

0

98

1

java static class와 kotlin class

0

89

1

스프링 DB연결

0

145

1

소요 시간

0

96

2

ddl.sql에 빨간 밑줄

1

118

2

welcome page 에러

0

201

3

잘 모르겠습니다.

0

173

2

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

0

173

2

index.html Welcome page

0

137

1

프로젝트 gradle-groovy ?

0

403

1