스프링부트 REST API 만들기스프링부트 rest api 예제스프링부트 rest api 호출spring rest api란backend

[Spring Boot] RESTful 서비스 구축 전 알아야 할 내용

KUKJIN LEE
KUKJIN LEE
2024년 12월 5일
179

REST 원칙이란?

REST는 클라이언트-서버 아키텍처에서 상호 작용하는 방식입니다. RESTful API를 설계할 때는 몇 가지 원칙을 준수해야 합니다.

 

  1. 무상태성(Statelessness): 각 요청은 서버가 이전 요청의 상태를 기억하지 않아야 합니다. 모든 필요한 정보는 요청에 포함되어야 합니다. 즉 사용자가 정보를 업데이트하려면 변경 데이터를 요청에 모두 포함해야 합니다. (요청하지 않은 정보는 업데이트 할 수 없습니다.)

  2. 클라이언트-서버 구조: 클라이언트와 서버 간 역할은 분리되어야 하며, 클라이언트는 사용자 인터페이스를 처리하고 서버는 데이터를 관리합니다. (상호작용의 역할 분담)

  3. 캐시 가능(Cacheable): 클라이언트가 동일한 요청에 대해 캐시된 응답을 사용할 수 있도록 해야 합니다. 이미지나 CSS와 같은 정적 리소스는 캐시하여 불필요한 네트워크 트래픽을 줄일 수 있습니다.

  4. 계층화 시스템(Layered System): 클라이언트-서버 간 통신 중간에 프록시나 게이트웨이와 같은 계층을 사용할 수 있어야 합니다. 예를들면 로드 밸런스를 사용하여 여러 서버에 요청을 분산시킬 수 있습니다.

load balance

  1. 리소스와 URI: 예를들어 /users는 사용자 목록을, /users/${id}는 특정 사용자를 나타냅니다. 즉 GET /users/kakaogg는 ID가 kakaogg인 사용자 정보를 가져오는 요청이 된다는 뜻입니다.

 

원칙이기 때문에 이론적 내용이 많지만 정말 중요한 내용입니다.

관련 글

[SQL 입문] 필요한 데이터만 콕 집어 가져올 수 있는 WHERE 절

사용자는 테이블에 있는 모든 데이터를 다 보고 싶어 하지는 않습니다. 오히려 특정 항목에 대한 데이터만 가져오고 싶을 때가 훨씬 많습니다. 예를 들어, 어떤 사용자의 이메일이나 ID는 알고 있는데, 그 사람이 언제 우리 앱에 가입했는지 확인하고 싶다고 가정해 봅시다...

2026년 1월 27일10

SQL에서 SELECT란 무엇인가?

데이터베이스를 거대한 서류 보관함이라고 생각하면 됩니다. 보관함 안에는 수많은 데이터가 차곡차곡 쌓입니다. SELECT는 이 보관함에서 "내가 원하는 정보를 찾아줘!"라고 요청하는 명령어입니다. 이 과정을 전문 용어로 '쿼리(Query)'라고 부릅니다. &nbs...

2026년 1월 26일10

[SQL 기초] "언제 하나씩 다 넣어?" 데이터 한 번에 넣기

개발을 하다 보면 데이터베이스(DB)에 샘플 데이터를 대량으로 넣어야 할 때가 있습니다. 메뉴 100개를 추가해야 하는데 INSERT 문을 100번 쓰고 있다면? 너무 비효율적이죠! 오늘은 SQL에서 여러 데이터를 한 번에 넣는 '다중 삽입(Multiple Inse...

2026년 1월 21일13

SQL 데이터 삽입하기

데이터가 없는 데이터베이스는 연료 없는 로켓과 같습니다. 이제 'Missions' 테이블에 새로운 행(row)을 추가하는 방법을 알아보겠습니다. "삽입(Inserting)"은 '데이터 추가'를 의미합니다. 기존 Missions 테이블 ...

2026년 1월 20일12