학습 목표
- REST 컨트롤러로 변환 의 핵심 개념을 안다
- 같은 게시판, 다른 옷 의 동작을 안다
- 같은 게시판이 두 가지 인터페이스를 가진다 — JSP 형 + JSON API 형. v8.
1. 문제
기존 v6 게시판을 통째로 옮겨서 REST 버전을 만들자.
2. 새 도구
같은 게시판, 다른 옷: BoardController 를 BoardApiController 로 복사 → return view 를 return 객체로 → @Controller 를 @RestController 로.
3. 코드
// v6 (BEFORE) — com.smhrd.controller
@Controller @RequestMapping("/board")
public class BoardController {
@GetMapping("/list")
public String list(Model m) {
m.addAttribute("boards", service.selectList());
return "board/list";
}
}
// v8 (AFTER) — com.smhrd.controller
@RestController @RequestMapping("/api/boards")
public class BoardApiController {
@GetMapping
public List<Board> list() {
return service.selectList(); // 자동 JSON 변환
}
@GetMapping("/{num}")
public Board view(@PathVariable int num) {
return service.selectOne(num);
}
}
4. 정리
- v6 → v8 변환은 거의 기계적
- Model / View 가 사라짐
- JSON 으로 응답
- v8 마일스톤 — REST 게시판 시작
5. Before / After
전 차시
기존 v6 게시판을 통째로 옮겨서 REST 버전을 만들자.
이번 차시
같은 게시판이 두 가지 인터페이스를 가진다 — JSP 형 + JSON API 형. v8.
학습 확인 체크리스트
- v6 → v8 변환은 거의 기계적
- Model / View 가 사라짐
- JSON 으로 응답
- v8 마일스톤 — REST 게시판 시작