🔹 스프링 웹 개발의 세 가지 주요 방식인 정적 컨텐츠, MVC, API는 각각 어떤 결과를 주로 반환할까?
- 정적 컨텐츠: 가공되지 않은 파일
- MVC: 처리된 HTML
- API: 데이터
각 방식은 서버 응답의 형태가 다르다. 정적은 파일 그대로, MVC는 가공된 HTML, API는 데이터 형태를 주로 반환한다
🔹 정적 컨텐츠 방식으로 파일을 전달할 때 서버에서 어떤 처리를 거치게 될까?
정적 컨텐츠는 서버에서 내용을 변경하거나 처리하지 않고 요청된 파일을 그대로 브라우저에 전달하는 방식이다
🔹 MVC 패턴에서 Controller와 View를 분리하는 주된 이유는 무엇일까?
- 관심사를 분리하고 코드와 유지보수성을 높이기 위해
MVC는 역할을 분리(관심사 분리)하여 코드를 더 체계적이고 관리하기 쉽게 만드는 설계 패턴이다
🔹 웹 개발에서 API 방식(특히 객체 반환)은 주로 어떤 목적을 위해 사용될까?
- 클라이언트(웹, 앱)나 다른 서버에 구조화된 데이터만 전달하기 위해
API는 화면 구성보다는 필요한 데이터 자체를 JSON과 같은 형식으로 클라이언트에 보내주는 데 중점을 둔다
🔹 스프링에서 컨트롤러 메서드가 객체를 반환하고, @ResponseBody 어노테이션이 붙어있을 때, 객체를 클라이언트에 전달 가능한 형태로 변환하는 역할을 하는 것은 무엇일까?
@ResponseBody가 붙으면 ViewResolver 대신에 HTTP Message Converter가 동작하여 객체를 JSON 등으로 변환해 응답 본문에 담아준다