코딩 해파리

스프링에서 응답 데이터를 만드는 방법들 본문

Development/Spring

스프링에서 응답 데이터를 만드는 방법들

haepalea 2024. 2. 16. 01:35

스프링(서버)에서 응답 데이터를 만드는 방법은 3가지 정도가 있습니다.

 

1. 정적 리소스 -> 웹 브라우저에 정적인 상태의 HTML, CSS, JS를 제공하는 것입니다.

간단한 예를 들자면... 웰컴 페이지가 있겠네요!

 

스프링 부트에서는 '/static', '/public', 'resources', '/META-INF/resources' 디렉토리에 있는 정적 리소스를 제공합니다!

 

'src/main/resources'는 리소스를 보관하는 곳이고, 클래스패스의 시작 경로입니다.

그러므로, 'src/main/resources/static' 디렉토리에 리소스를 넣으면 스프링 부트는 정적 리소스로 서비스를 제공하게 되는것이죠!

 

 

2. 뷰 템플릿 -> 뷰 템플릿을 거쳐서 HTML을 생성하고, 뷰가 응답을 만들어서 웹 페이지에 전달을 하는 구조입니다.(동적임)

이것도 간단한 예를 들자면, 어떤 웹 페이지에 로그인 기능이 구현되어 있다고 합시다! 이 때, 로그인을 실행할 경우 로그인 한 회원의 닉네임이 웹 페이지에 뜨는 것도 간단하지만 뷰 템플릿의 예시입니다!

 

스프링 부트는 기본 뷰 템플릿 경로를 'src/main/resources/templates' 로 설정되어 있습니다. 그렇기에 이 디렉토리에 리소스를 넣으면 

스프링 부트는 동적인 HTML을 제공하게 됩니다!

 

 

3. HTTP API -> HTTP API를 제공하는 경우, HTML을 웹 페이지에 전달하는 것이 아닌 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON과 같은 형식으로 데이터를 감싸서 웹 페이지에 보내줍니다.

 

 

이와 같은 방식들로 전달이 가능하다. 또한, responseBodyJsonV2 메서드의 경우 에노테이션 기반으로 응답 코드를 설정했기 때문에 동적으로 변경할 수 없습니다. 따라서 동적으로 변경해야 하는 상황이라면 V1을 사용하여 적절히 처리해주는 것이 좋습니다.