Spring과 진짜 초면인 우리
우리가 만드는 API,
뷰(view)를 던진다구요...? 데이터만 던진다구요...?
제가 개발에 🐶자도 모르던 몇년 전까지만 해도,,
그냥 API 는 "화면을 통으로" 갖다 주는 백엔드 & REST API 는 화면에 뿌릴 "데이터만" 갖다 주는 백엔드
API 정의는 이렇게 두 줄로 나눠 정의 되었다고 하더라구요!
요즘(?) 개발공부를 시작한 제가 저 말을 들었을 때,,
몇년전의 API가 저랬다면, 지금은 어떻게 정의 되고 있는거지? 난 어떤식으로 만들고 있는거지? 라는 의문이 계속 들더라구요..😯😲🤔
그래서 한번 다시 정리해보는 시간을 갖기로 했어요 ! 가보자구~

API란 무엇일까요?
Application Programming Interface
한줄 요약을 해보자면? 정해진 약속을 하여, 특정 기능을 수행하는 것
클라이언트와 서버는 HTTP를 주고 받으며 기능을 동작하는데, 이때 정해진 규칙을 API라고 합니다

API를 이루고 있는 요소
- HTTP Method
- HTTP Path
- 쿼리 (key와 value)
- API의 반환 결과
API를 개발하기 전에는 API의 HTTP Method를 어떻게 할 것인지, Path는 어떻게 할 것인지,
쿼리를 사용할 것인지 바디를 사용할 것인지, 쿼리를 사용한다면 어떤 Key를 이용할 것인지,
결과는 어떤 형태로 줄 것인지를 고민해서 결정해야해요!
이러한 것을 API Specification, 줄여서 'API 스펙' 이라고도 부르기도 한답니다~
REST API란 무엇일까요?
Representational State Transfer 'API'
REST API에서는 HTTP 메소드와 URI를 이용해 데이터를 전송하고,
주로 JSON 형식의 데이터를 주고 받아요
클라이언트와 서버의 '종속성'을 낮추고, 서버의 '확장성'을 높일 수 있는 장점이 있어요!
아니 그래서,, API가 뷰(view)를 던진다구요...? 데이터만 던진다구요...?

API는 주로 데이터를 반환하는 용도로 사용되고,
뷰(view)는 서버에서 받아온 데이터를 시각적으로 표현하는 역할을 해요
위와 같이 두 가지 역할을 분리함으로써,
클라이언트와 서버 간의 역할을 명확하게 구분하여 개발 및 유지보수를 용이하게 할 수 있답니다!
조금 더 얘기를 해보자면,
요즘의 API는 데이터만을 던지는 것이 일반적인 것 같아요
API는 데이터를 제공하기 위한 용도로 사용되며, 보통 JSON 형식으로 데이터를 반환하고 있답니다
반면에 뷰(view)는 클라이언트가 해당 데이터를 시각적으로 표현하고 사용자와 상호작용할 수 있도록 하는 역할을 하고 있어요
그래서 보통 서버에서 데이터를 받아와서 ↗↘ 뷰에서 데이터를 가공하고 표현하게 됩니다
그중에서도 특히 "RESTful 하게~" 라며 많이 말하는 REST 아키텍처 스타일의 주요 목적 중 하나는,
서버와 클라이언트 간의 데이터 교환을 위한 인터페이스를 정의하는 것이죠!
이를 위해 REST API는 데이터를 전송하기 위한 표준 포맷인 JSON 또는 XML을 사용하며,
HTTP 메소드를 사용하여 데이터를 읽고, 쓰고, 업데이트하고, 삭제합니다!
뷰와 같은 UI 요소는 일반적으로 클라이언트 측에서 처리되며, 서버에서는 데이터만 제공하는 방식을 사용하고있어요 🙌

'Spring과 진짜 초면인 우리들에게' 카테고리의 다른 글
| 스프링 3계층은...스프링에게 000을 주입해달라고 대신 요청할때는... (0) | 2023.04.19 |
|---|---|
| 00이/가 흘러다닐 길을 만들어 볼까요? REST API URL 규.칙. (2) | 2023.04.14 |
| @어노테이션@스프링 너무 많아 @ㅅ@ (0) | 2023.04.11 |
| 서버야, 이 URL로 부탁할게! 00 용도로 쓰려구 ~! (0) | 2023.04.11 |
| Service에 비즈니스 로직을 수행한다...'비.즈.니.스 로.직' (0) | 2023.04.08 |