문제 상황
Spring Boot에서 API를 개발하다가,
DB에는 데이터가 잘 들어가는데, Postman에선 404 Not Found 에러가 발생했다.
원인 분석
- InquiryController에 @Controller 애노테이션을 붙이고,
@PostMapping으로 API를 작성했다. - 하지만 @RestController가 아닌 @Controller만 쓰면,
기본적으로 “뷰(HTML 화면)”를 반환하려고 동작한다. - API에서 리턴 값이 없거나, JSON/객체/문자열 등
데이터만 내려줄 때는 @RestController를 사용해야 한다! - 이걸 놓치면, 요청 자체가 매핑이 안 되거나(특히 void 리턴 시),
예상과 다른 동작(404, 응답 없음 등)이 발생한다.


해결 과정
- @Controller 애노테이션을
@RestController 애노테이션으로 변경 - 서버 재시작
- 다시 Postman에서 요청
→ 정상 200 OK 응답 & DB에도 데이터 정상 입력!


느낀 점/정리
- @RestController는 “데이터(API)” 반환,
@Controller는 “뷰(화면)” 반환용이다! - 데이터만 반환하는 API는 @RestController로 만드는 게 정답
- 리턴 값이 없어도, JSON이 아니어도,
“API라면 무조건 @RestController” - 404 에러가 났는데 DB에는 값이 들어간다면,
엔드포인트 매핑이나 애노테이션(@RestController)부터 꼭 점검할 것!
🔗 참고
'Archive > 예전 TIL' 카테고리의 다른 글
| [트러블슈팅] 윈도우 한글 경로(ClassNotFoundException)로 인한 자바/테스트 에러 (2) | 2025.07.08 |
|---|---|
| [트러블슈팅] FK 무결성 오류와 로그인 미구현 상태에서 user_id 입력 문제 (0) | 2025.07.02 |
| [트러블슈팅] MyBatis Mapper가 Bean으로 등록되지 않는 런타임 에러 해결 (0) | 2025.06.28 |
| JPA: N+1 문제란? (0) | 2025.05.16 |
| JPA 쿼리를 활용한 성능 개선 (0) | 2025.02.18 |