
안녕하세요. 오늘은 코딩 공부하면서
"좋은 설계를 하는 기준이 뭘까?"
라는 생각을 하다가 작성해요.
좋은 설계를 통해 코드의 일관성과 유지보수가 쉬워지는 효과
RESTful API에 대해 알아볼까 해요.
RESTful API
REST의 제약 조건을 준수하는 API로
URI에 명사를 사용하고 (행위 HTTP 메서드로 표현)
계층 구조를 URI로 표현하면서 대소문자, 언더바(_) 사용 규칙을 준수해요.
그리고 HTTP 상태코드로 결과를 명확하게 전달해요.
※ REST 란? ※
REpresentaion Status TransFer의 약자로
자원(Resource)을 URI로 식별하고, HTTP 메서드를 이용해 해당 자원에 대한
정의하는 아키텍처 스타일이에요.
자원의 표현은 JSON, XML 등이 있고
상태전달은 요청(Request)과 응답(Response)으로 전송해요.
그리고 HTTP 표준 메서드를 활용하고,
네트워크 상에서 클라이언트와 서버 간의 통신 방식 중 하나예요.
RESTful 베스트
1) 명사 사용 - 리소스명을 동사가 아닌 명사로 작성
(O) /users, /products, /carts, /meetings 등
(X) /getUsers, /matchMembers
2) 소문자 사용 - 대문자 금지
(O) /menus, /colors
(X) /Menus, /Products
3) 언더바 X, 하이픈 O - 단어의 구분은 하이픈으로 표현
(O) /user=profiles, /school-numbers
4) 마지막 / 금지 - URI 끝에 /를 남기지 않음
(O) /users/1, /products/search/name
5) 계층 구조 표현 - 관계는 /로 표현
(O) /users/{userId}/orders/{orderId} - 특정 사용자(userId)의 주문들 중 특정 주문(orderId)
6) 복수형 명사 사용 - 특정 데이터는 명사 뒤 계층 구조로 표시
(O) /users, /posts, /books, /menus
+) 버저닝 사용 - API의 시작은 'api/v1' 형태 사용
=== RESTful API 예시 ===
case 1) 사용자 / 인증
- 회원가입: POST /api/v1/auth/signup
- 로그인: POST /api/v1/auth/longin
- 내 정보 조회: GET /api/v1/users/me (로그인 후 자신의 정보 확인)
- 이메일 중복 체크 : GET /api/v1/auth/check-email?email=XXX...)
case 2) 쇼핑몰
- 상품 목록: GET /api/v1/products
- 상품 리뷰 조회: GET /api/v1/products/{productId}/reviews
- 장바구니: GET /api/v1/users/me/cart (사용자 1인 당 장바구니는 1개)
- 주문 생성: POST /api/v1/orders
case 3) 게시판
- 게시글 목록: GET /api/v1/posts?category=notice&search=java&page=1&size=10
- 게시글 수정: PUT /api/v1/posts/[postId}
- 댓글 추가: POST /api/v1/posts/{postId}/comments

여기까지 RESTful API에 알아봤는데요.
RESTful API는 단순하면서도 강력한 아키텍처 스타일이에요.
오늘 소개한 원칙들을 잘 지켜서
더 읽기 쉽고 유지보수가 쉬운 API를 만들어보는 건 어떨까요?
'Backend > Java' 카테고리의 다른 글
| Spring Boot - Mustache (0) | 2025.12.12 |
|---|---|
| Spring Security OAuth2 (0) | 2025.12.08 |
| @Transactional (0) | 2025.09.04 |
| Spring Security - Filter, Provider, Config (0) | 2025.09.02 |
| Spring Boot - JWT (0) | 2025.08.31 |