60
총점
3
질문 수
0
좋아요
2
조회수
세 질문 모두 개념을 단순 암기가 아닌 실무 맥락과 연결해 설명하는 능력이 돋보였습니다. @ResponseBody와 ResponseEntity의 차이, 상태 코드 분기 필요성, 파일 다운로드 헤더 필요성까지 각각의 "왜"를 자기 언어로 명확히 설명하셨습니다. 실무 시나리오를 잘 제시하시지만, 구체적인 기술 용어(예: Content-Disposition, HTTP 409 Conflict)까지 함께 언급하는 습관이 아직 부족합니다. 원리 설명에 정확한 스펙 용어를 붙이면 답변의 신뢰도가 크게 올라갑니다. HTTP 표준 응답 헤더 중 Content-Disposition(attachment vs inline), Location(201 Created 시 신규 리소스 URI 반환), Cache-Control의 역할과 ResponseEntity에서의 설정 방법을 정리한 뒤, REST API 설계 관점에서 각 헤더가 어떤 상황에 쓰이는지 Spring 공식 문서 및 RFC 6266을 통해 확인해보시길 권장합니다.
ResponseBody는 객체를 직렬화 하여 http response 바디에 json 형태 반환하는 형태, ResponseEntity Http 코드와 헤더, 본문 등을 세밀하게 컨트롤 가능한 것입니다
핵심 차이를 정확하게 짚으셨습니다. `@ResponseBody`가 반환 객체를 직렬화해 HTTP 응답 바디에 담는 역할을 하고, `ResponseEntity`가 상태 코드·헤더·바디를 통합적으로 제어할 수 있다는 점을 명확히 구분하셨습니다. 한 단계 더 나아가자면, `ResponseEntity` 자체가 내부적으로 `@ResponseBody`의 동작을 포함하고 있어 두 방식이 상호 배타적이지 않다는 점, 그리고 `@ResponseBody`만 사용할 경우 상태 코드를 변경하려면 `@ResponseStatus` 어노테이션에 의존해야 한다는 트레이드오프도 함께 언급하면 더욱 완성도 높은 답변이 됩니다. 예를 들어 "리소스 생성 API에서 201 Created와 Location 헤더를 함께 반환해야 할 때 `ResponseEntity`를 선택하는 것이 적합하다"처럼 실제 사용 맥락과 연결해 설명하면 실무 이해도를 잘 보여줄 수 있습니다.
쇼핑몰에서 상품 등록하려고 할 때, 중복된 제품이 있거나 등록이 정상적으로 되었을 때 http code를 상이하게 반환해야 하기에 ResponseEntity를 사용합니다
실무와 연결된 구체적인 예시(상품 등록 시 중복 여부에 따른 HTTP 상태 코드 분기)를 통해 ResponseEntity의 핵심 사용 이유를 정확히 짚어주셨습니다. 여기서 한 단계 더 나아가면, 중복 상품의 경우 409 Conflict, 정상 등록의 경우 201 Created처럼 의미론적으로 적절한 상태 코드를 선택하는 이유까지 설명할 수 있다면 더욱 완성도 높은 답변이 될 것입니다. 추가로 ResponseEntity에서 Location 헤더를 함께 반환하는 패턴(예: 생성된 리소스의 URI를 Location에 담아 반환)도 REST API 설계 관점에서 자주 활용되므로, 헤더 제어 측면도 함께 숙지해두시면 좋겠습니다.
관리자 페이지에서 "주문 내역 내려받기" 버튼을 누르면 파일이 저장되는 기능입니다. 여기서 헤더를 직접 세팅해야 하는 이유는 명확합니다 — 브라우저에게 "이건 화면에 렌더링하지 말고 파일로 저장하라"고 알려줄 방법이 헤더밖에 없기 때문입니다.
파일 다운로드 시나리오를 정확히 짚으셨고, "브라우저에게 렌더링 대신 저장하라고 알려줄 방법이 헤더밖에 없다"는 핵심 이유를 자기 언어로 잘 설명하셨습니다. 다만 한 단계 더 나아가 실제로 어떤 헤더를 어떤 값으로 설정하는지까지 언급하셨다면 더욱 완성도 높은 답변이 됐을 것입니다. 예를 들어 "Content-Disposition: attachment; filename=\"orders.csv\"를 헤더에 세팅한다"처럼 구체적인 헤더 이름과 값을 함께 제시하면 면접관에게 실무 경험이 명확히 전달됩니다. 다음 면접에서는 ResponseEntity 사용 시 설정한 헤더의 키·값까지 바로 말할 수 있도록 준비해두시면 좋겠습니다.
• 이 결과는 AI가 분석한 내용이며, 학습 목적으로 커뮤니티에 공유됩니다.
• 좋아요를 눌러 유용한 답변에 반응을 남겨보세요.
• 개인정보는 포함되지 않으며, 면접 연습 개선을 위한 참고 자료로 활용됩니다.