
인덕대학교 A&I 동아리에서 스터디한 내용을 바탕으로 정리한 글입니다.
OS : MacBook Air 15 M3
SW : IntelliJ IDEA
Language : Kotlin
JDK : 17
스프링 부트 프로젝트는 위 페이지에서 손쉽게 생성할 수 있습니다.
접속한 뒤 필요한 설정을 선택해 프로젝트를 만들면 됩니다.
Artifact는 원하는 이름으로 자유롭게 설정하시면 되고,
그 외 기본 설정들은 프로젝트 목적에 따라 달라질 수 있습니다.
의존성은 기본적으로 REST API 개발을 위해 Spring Web을 추가하였습니다.
추가로 필요한 라이브러리가 있다면
https://mvnrepository.com/ 에서 찾아 적용하시면 됩니다.

REST는 다음과 같은 방식으로 자원을 다루는 설계 방식입니다.
HTTP URL을 통해 자원(Resource)을 식별하고 HTTP Method(GET, POST, PUT, DELETE 등)를 사용해 CRUD 작업을 수행합니다.즉, URL로는 무엇을 다룰지를 표현하고,
HTTP Method로는 어떤 동작을 할지를 구분하는 방식이라고 볼 수 있습니다.
CRUD는 대부분의 소프트웨어가 공통적으로 가지는 기본 데이터 처리 기능을 묶어 부르는 말입니다.
Create : 데이터 생성Read : 데이터 조회Update : 데이터 수정Delete : 데이터 삭제REST에서는 이 CRUD 기능이 보통 다음과 같이 매핑됩니다.
Create : 데이터 생성 →
POST
Read : 데이터 조회 →GET
Update : 데이터 수정 →PUT
Delete : 데이터 삭제 →DELETE

RESTful API는 말 그대로 REST의 원칙을 잘 지키며 설계된 API를 의미합니다.
단순히 REST 방식을 사용한다고 해서 모두 RESTful하다고 볼 수는 없습니다.
RESTful하게 API를 설계하려면 다음과 같은 규칙을 알고 있어야 합니다.
명사를 사용하고, 대문자보다 소문자를 사용합니다.Bad URL : http://velog.io/TESTING
Good URL : http://velog.io/test
/를 붙이지 않습니다.Bad URL : http://velog.io/test/
Good URL : http://velog.io/test
_ 대신 하이픈 -을 사용합니다.Bad URL : http://velog.io/test_post
Good URL : http://velog.io/test-post
Bad URL : http://velog.io/photo.png
Good URL : http://velog.io/photo
행위는 URL이 아니라 HTTP Method로 표현해야 합니다.
Bad URL : http://velog.io/delete-post/1
Good URL : http://velog.io/post/1
RESTful이란 REST의 원칙을 따르는 시스템을 의미합니다.
하지만 REST 방식을 사용한다고 해서 모두 RESTful한 것은 아닙니다.
예를 들어 모든 CRUD 기능을 POST 하나로만 처리한다면, 이는 올바른 API 설계라고 보기 어렵습니다.
또한 REST API의 설계 규칙을 제대로 지키지 않았다면
그 시스템은 RESTful하다고 말하기 어렵습니다.
결국 중요한 것은
자원은 URL로 표현하고, 동작은 HTTP Method로 구분하는 REST의 원칙을 일관성 있게 지키는 것입니다.