홈 › 실무 확장 › 07 / 22

REST API 서버와 JSON

CRUD, 상태 코드, 에러 규격, 검증, 페이징
섹션 7진행 0 / 22

REST API 서버와 JSON — CRUD, 상태 코드, 에러 규격, 검증, 페이징

HTTP 메서드·경로·상태 코드로 자원을 다루는 REST API 를 순수 JDK 로 직접 만들어, CRUD와 검증·에러 규격·페이징·동시 수정·CORS 를 코드 수준에서 이해합니다.

1. 왜 배우는가

@RestController 하나면 API 가 뜨고, @Valid 하나면 검증이 되고, ResponseEntity 하나면 상태 코드가 붙습니다. 그런데 이 편리함 아래에서 실제로 무슨 일이 일어나는지 모르면 "왜 이 요청은 200 인데 실패했다고 나오지", "왜 동시에 수정하면 한쪽이 날아가지", "id 가 왜 프런트에서 소수점으로 깨지지" 같은 질문에 답을 못 합니다.

이 레슨은 회원(Member) 자원 하나로 REST API 의 전 과정을 순수 JDK 로 직접 만듭니다. 라우팅(경로 변수 추출), CRUD, 입력 검증, 표준 에러 응답, 페이징, 낙관적 잠금(버전 충돌), ETag, 벌크 등록, CORS 까지 8개 파일 약 600줄에 펼쳐 놓았습니다. Spring Boot 가 어노테이션 뒤에 숨긴 동작을 코드로 보고 나면, 실무에서 어노테이션이 하나 빠졌을 때 무엇이 안 되는지 바로 보입니다.

코드는 java-src/extension/07_rest_json 에 있고 자바 파일 11개, 외부 jar 없이 실행됩니다. Main 인자 없이 실행하면 8080 포트에 서버만 띄우고, --demo 로 실행하면 임의 포트에 띄운 뒤 HttpClient 로 11개 시나리오를 직접 호출해 상태 코드와 응답 본문을 출력하고 종료합니다.