API(Application Programming Interface)
앱 사이의 소통하기 위한 일종의 약속의 집합
프로그램마다 API가 다르기도 하고, 없어서 새로 만들기도 함
Web API
네트워크를 매개로 HTTP 프로토콜을 사용해 요청과 응답을 주고받는 API
즉, 클라이언트(요청자)와 서버(응답자)가 소통하기 위해 정해둔 방식임.
@ResponseBody
이번 강의의 핵심인 @ResponseBody 어노테이션
return 객체를 그대로 web에 보여줌.
이번엔 처음으로 문자열이 아닌 객체를 return 함.
그랬더니 json 형태로 나타남.
(key : value 형태)
* 예전에는 json과 xml이 격돌을 했던 시기도 있었지만, 현재는 대부분이 json 파일로 주고 받는다고 함.
HTTP 요청·응답 구조
json은 데이터 포맷일 뿐 HTTP 프로토콜을 사용하여 요청과 응답을 주고받는 구조와는 다르다는 것을 알아야 함.
1. URL
2. HTTP 메서드
- GET
- POST
- PUT / PATCH
- DELETE
3. 헤더
- 요청·응답에 붙는 메타정보(인증, 콘텐츠 타입 등)
4. 바디
- 요청 시 전송 데이터, 또는 응답으로 돌아오는 실제 내용(JSON, XML 등)
5. 상태 코드
- 200 OK
- 201 Created
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 500 Internal Server Error
- 등등 커스트마이징도 가능
RESTful API 원칙
REST(Representational State Transfer)는 웹의 아키텍처 스타일로, 이를 잘 따르는 API를 “RESTful”하다고 부른다.
- 리소스 중심
URL는 데이터(리소스)를 가리키고, HTTP 메서드로 행위를 표현함
URL만 보고 어떤 데이터를 다루는지 바로 알 수 있어야, 클라이언트와 서버 간 의사소통이 명확해짐 - 무상태
각 요청이 독립적이어야 하며, 서버는 이전 요청의 상태(세션)를 저장하지 않음.
서버 간 로드 밸런싱(확장성), 특정 서버에 종속되지 않아 장애 복구가 간단(신뢰) - 표현
JSON ·XML 등의 포맷으로 리소스 상태를 표현 - 자체 서술성
헤더 ·상태 코드만으로 요청 ·응답 의미를 파악 가능
명시적인 표준(HTTP 상태 코드·헤더)만으로도 클라이언트가 어떻게 처리할 지 판단할 수 있어야, 문서/버전 의존성을 최소화 할 수 있음. - HATEOAS (선택)
응답에 다음 행동을 안내하는 링크를 담음
클라이언트가 URI를 하드코딩하지 않아도, API가 안내해 주는 링크만 따라가면 애플리케이션 흐름을 구현할 수 있음.
로드 밸런싱 : 여러 대의 서버에 네트워크 트래픽을 분산하여 특정 서버에 부하가 집중되는 것을 방지하고, 시스템의 안정성과 성능을 향상시키는 기술
'웹 프로그래밍 > 기초' 카테고리의 다른 글
MVC 패턴과 템플릿 엔진 (0) | 2025.07.17 |
---|---|
정적 컨텐츠 (0) | 2025.07.17 |
[HTML/Javascript] 자바스크립트로 HTML의 요소에 자식 요소 추가하기 (2) | 2024.06.08 |
[HTML/Javascript] 🖱️클릭 이벤트 처리 하는 방법 (0) | 2024.06.01 |
웹 프로그래밍 기초 4일 - 피아노 건반 구현🎹 (0) | 2024.05.26 |
댓글