java
CHAPTER 49 / 69
읽기 약 2분
FUNCTION
Spring MVC 컨트롤러
핵심 개념
@RestController, @RequestMapping, @PathVariable, @RequestParam, @RequestBody의 실무 패턴. 요청/응답 흐름을 완전히 이해한다.
코드 분석
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor // Lombok
public class UserController {
private final UserService userService;
// GET /api/users
@GetMapping
public List<UserDto> getAll() {
return userService.findAll();
}
// GET /api/users/1
@GetMapping("/{id}")
public UserDto getOne(@PathVariable Long id) {
return userService.findById(id);
}
// GET /api/users?page=0&size=10
@GetMapping("/search")
public Page<UserDto> search(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size) {
return userService.search(page, size);
}
// POST /api/users
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public UserDto create(@RequestBody @Valid CreateUserDto dto) {
return userService.create(dto);
}
// PUT /api/users/1
@PutMapping("/{id}")
public UserDto update(
@PathVariable Long id,
@RequestBody @Valid UpdateUserDto dto) {
return userService.update(id, dto);
}
// DELETE /api/users/1
@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Long id) {
userService.delete(id);
}
}AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude
무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6
이 Spring 'MVC 컨트롤러' 코드에서 DI 관련 버그·순환 참조·트랜잭션 누수를 찾아서 수정해줘.
ChatGPT
무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro
'MVC 컨트롤러'를 Spring Boot 3.x로 구현한 실전 API 코드(컨트롤러+서비스+레포지토리+테스트)를 완성형으로 만들어줘.
Gemini
무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro
이 Spring 'MVC 컨트롤러' 프로젝트의 빈 구조와 의존성 트리를 전체 분석하고 N+1 쿼리·순환 참조·성능 병목을 정리해줘.
Grok
무료: Grok 4.1 / SuperGrok $30/mo
Spring 'MVC 컨트롤러' vs Quarkus·Micronaut·Ktor의 동일 기능 구현을 2026년 한국 채용 시장 기준으로 솔직히 비교해줘.
⭐ 이것만 기억하세요
Spring MVC 컨트롤러는 이 3가지만 확실히 잡으세요
1.단순 CRUD 컨트롤러만으로는 페이지네이션, 검색, 정렬 파라미터를 처리할 수 없습니다
2.@RequestParam으로 쿼리, @PathVariable로 경로 변수, @RequestBody로 JSON을 받고, ResponseEntity로 상태 코드를 제어합니다
3.다음 챕터에서 REST API를 체계적으로 설계합니다
공유하기
진행도 49 / 69