Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

김쥬르에 개발일지

Spring Boot REST API 본문

Spring boot

Spring Boot REST API

김쥬르 2023. 12. 26. 13:16

이번엔 REST API에 대해 알아보겠습니다.

API?

네트워크에서 API는 프로그램 간에 상호작용하기 위한 매개체를 말하는데요

좀 더 쉽게 이해하기 위해 식당을 비유해서 설명해보겠습니다

 

밥시간이 되어 친구와 식당에 가서 밥을 먹게되었습니다.

저희는 메뉴를 골라 주방에 말하는게 아닌 점원을 통해 메뉴를 말해주고

점원은 주방에 가서 메뉴를 전달하죠

그럼 주방에서 음식을 만든뒤 점원에게 전달하고

점원은 다시 그 요리를 저희에게 전달해줍니다.

 

이해가 되셨나요?

 

 이제 웹 사이트에 방문하는 상황으로 다시 생각해보겠습니다.

저희는 웹사이트 주소를 입력해서 "김쥬르의 개발일지 화면을 보여줘" 라고 요청하면

API는 이 요청을 받아서 서버에게 가져다줍니다

서버는 API가 전달해준 요청을 처리해 결과물을 만들고 이것을 다시 API에게 전달하죠

그러면 API는 결과물을 브라우저에 보내 저희에게 김쥬르의 개발일지 화면을 보여주는겁니다.

 

그렇다면 REST API는 무엇일까요??

REST API?

웹의 장점을 최대한 활용하는 API를 말하며

REST는 Representational State Transfer 의 약어입니다.

쉽게 풀어 말해 명확하고 이해하기 쉬운 API 라는 뜻입니다.

 

저는 처음에 이 단어를 접했을때 저희가 배우고있는

스프링부트와 같은 혹은 JPA와 같이 연계되는 기술명인줄 알았는데요

REST API는 URL의 설계 방식을 말합니다.

이 설계 방식을 따랐을 때 얻을수 있는 개발자 입장에서의 장점이 있고, 단점도 존재합니다

 

REST API 의 장단점?

장점 URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있습니다.
상태가 없다는 특징이 있어 클라이언트와 서버의 역할이 명확하게 분리됩니다.
HTTP 표준을 사용하는 모든 플랫폼에서 사용 할 수 있습니다.
단점 HTTP 메서드 방식의 개수의 제한이 있습니다.(GET,POST,DELETE,PUT,PATH)
설계 하기 위해 공식적으로 제공되는 표준 규약이 없습니다

 

주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 장점이 있어

많은 개발자들이 사용하고 있습니다.

심지어 REST API 설계 방식을 옳바르게 지킨 시스템을

RESTful API라고 부르기도 합니다.

 

REST API 규칙

규칙 1. URL에는 동사를 쓰지 말고 , 자원을 표시해야한다.

 

여기서 자원이란 무엇일까요?

자원은 가져오는 데이터를 말합니다.

예를 들어 학생 중에 id가 1인 학생의 정보를 가져오는 URL을 설계해봅시다.

1 : ./students/1

                       2: ./get.student?student_id=1

 

이 중 RESTful API 는 1번에 해당합니다

왜냐하면 2번의 경우 자원이 아닌 다른 표현을 섞어 사용했기 때문이죠

동사를 사용하면 추후 개발 시에 혼란을 줄 수 있습니다.

예를 들어서 서버에서 데이터를 요청하는 URL을 설계할 때

어떤 김개발자는 get을 박개발자는 show을 사용한다면

URL의 구조가 get-student , show-data와 같이 혼란을 야기할수 있습니다.

그래서 REST API 설계는 이런 동사를 사용하지 않습니다.

 

규칙 2. 동사는 HTTP 메서드로 사용한다.

 

앞에서 HTTP 메서드를 언급했는데요 지금 알아보도록 하겠습니다.

HTTP 메서드는 서버에 요청을 하는 방법을 나눈것으로

주로 POST , GET , PUT , DELETE 를 사용합니다.

각각 생성 , 읽기 , 수정 , 삭제 하는 역할을 하는데요

이것들을 묶어서 CRUD 라고 부릅니다.

 

이해를 위해 저희가 블로그에 글을 작성하는 설계를 한다고 생각해보겠습니다.

설명 HTTP 메서드 와 URL
id가 1인 블로그 글을 조회하는 API GET/articles/1
블로그 글을 추가하는 API POST/articles/1
블로그 글을 수정하는 API PUT/articles/1
블로그 글을 삭제하는 API DELETE/articles/1

 

같은 URL 이라도 HTTP 메서드의 성격에 따라 다른 역할을 하는것을 볼수 있습니다.

 

슬래시는 계층 관계를 나타내는데 사용하거나

언더바( _ ) 대신 하이픈( - ) 을 사용하거나

자원의 종류가 컬렉션인지 도큐먼트 인지에 따라 단수 복수를 나누거나 하는 등의

규칙이 존재하지만 지금은 이정도만 알아보겠습니다.

'Spring boot' 카테고리의 다른 글

Spring Boot 블로그 글 조회  (0) 2023.12.28
Spring Boot 블로그 글 추가하기  (1) 2023.12.27
SpringBoot ORM  (0) 2023.12.25
SpringBoot 테스트 코드  (0) 2023.12.25
Spring Boot 어노테이션 모음  (0) 2023.12.25