
인덕대학교 A&I 동아리를 하며 스터디 한 것을 바탕으로 작성하였습니다.
OS : MacBook Air 15 M3
SW : intellij IDEA
Language : Kotlin
JDK : 17
https://start.spring.io/
해당 페이지에 들어가서 다음과 같이 파일을 생성한다.
Artifact는 자신이 원하는 이름으로 설정하고
기본 설정은 자신이 필요한 부분에 따라 달라질 수 있다.
의존성 추가는 기본적으로 RestAPI를 위해 Spring Web을 추가했으며
필요에 따라 https://mvnrepository.com/ 에 들어가 추가하면 된다.

HTTP URL 을 통해 자원(Resource)를 명시하고HTTP Method (POST, GET, PUT, DELETE 등)을 통해CRUD Operation 을 적용하는 것을 의미한다.CRUD는 부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인
Create , Read , Update , Delete 를 묶은 말이다.
REST에서의 CRUD Operation 동작은 다음과 같다.
Create : 데이터 생성 -> REST의 POST
Read : 데이터 조회 -> GET
Update : 데이터 수정 -> PUT
Delete : 데이터 삭제 -> DELETE

RestAPI는 말 그대로 REST의 원리를 따르는 API를 의미한다.
올바르게 설계하기 위해서는 다음과 같은규칙을 알아야 한다.
URL은 동사보다는 명사 를, 대문자보다는 소문자를 사용해야 한다.
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
파일확장자는 URL 을 포함하지 않는다
Bad URL : http://velog.io/photo.png
Good URL : http://velog.io/photo
행위를 포함하지 않는다.
Bad URL : http://velog.io/delete-post/1
Good URL : http://velog.io/post/1
RESTFUL이란 REST의 원리를 따르는 시스템을 의미한다.
하지만 사용했다고 모두 RESTful 한 것은 아니다.
모든 CRUD 기능을 POST로 처리하는 것은 API 규칙을 오바르게 지키지 못한 API며
REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 RESTful 하다고 볼 수 없다.