API/이론

37. [ JAVA ] 서버 개발 환경 설정

천재단미 2024. 12. 18. 15:09
728x90
반응형

1. API(Application Programming Interface)

 

1) API(Application Programming Interface)란

 

API(Application Programming Interface)는 서로 다른 소프트웨어 애플리케이션이 통신하고 상호 작용할 수 있게 해주는 프로토콜과 도구의 집합입니다. 

 

 

 

2) API의 주요 특징


중개자 역할: API는 애플리케이션 간의 통신을 facilitate 하는 소프트웨어 중개자 역할을 합니다.
추상화: 복잡한 시스템 세부 사항을 숨겨 프로그래밍 과정을 단순화합니다.
표준화: 애플리케이션이 정보를 요청하고 교환하는 표준화된 방법을 제공합니다.
다용도성: 모바일 앱, 웹 애플리케이션, IoT 기기 등 다양한 환경에서 사용될 수 있습니다.

 

 

3) API의 일반적인 사용 사례


소셜 미디어 통합: 트위터 같은 플랫폼에서 봇 생성과 서드파티 앱 상호작용을 가능하게 합니다.
인증 서비스: 다양한 플랫폼에서 "X로 로그인" 기능을 구현할 수 있게 합니다.
지도 서비스: Google Maps API를 통해 개발자들이 앱에 지도와 위치 기반 서비스를 삽입할 수 있습니다.
결제 처리: PayPal 같은 서비스가 API를 제공하여 앱에 결제 기능을 통합할 수 있게 합니다.
날씨 정보: 애플리케이션과 웹사이트에 실시간 날씨 데이터를 제공합니다.
전자상거래: Shopify 같은 플랫폼이 API를 사용하여 맞춤형 상점 프런트와 재고 관리를 가능하게 합니다.

 

 

4.)API 사용의 이점


기존 기능을 재사용할 수 있게 하여 소프트웨어 개발을 단순화합니다.
다양한 서비스와 데이터 소스의 통합을 가능하게 합니다.
개발자들이 기존 플랫폼을 기반으로 구축할 수 있게 하여 혁신을 촉진합니다.
효율성을 높이고 개발 시간과 비용을 줄입니다.

 

 

2. REST (Representational State Transfer) ful API

 

 

1)REST (Representational State Transfer) ful API란

 

RESTful API는 Representational State Transfer(REST) 아키텍처 스타일을 따르는 애플리케이션 프로그래밍 인터페이스입니다. 
이는 웹 기술을 활용하여 데이터 모델과 기능을 표준화된 방식으로 노출시키는 것을 목표로 합니다.

 

 

 

2) RESTful API의 주요 특징

 

클라이언트-서버 구조: API 클라이언트와 서버 간의 명확한 분리를 통해 모듈화를 촉진합니다.
무상태성: 서버는 클라이언트의 콘텍스트를 저장하지 않습니다. 각 요청은 자체적으로 처리될 수 있는 모든 정보를 포함해야 합니다.
캐시 가능성: 응답은 캐시 가능 여부를 명시해야 하며, 이는 성능 향상과 서버 부하 감소에 기여합니다.
균일한 인터페이스: HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스와 상호작용합니다.
계층화된 시스템: 클라이언트는 서버와 직접 연결되었는지 중간 서버를 거쳤는지 알 수 없습니다.
코드 온 디맨드(선택사항): 서버가 클라이언트로 실행 가능한 코드를 전송할 수 있습니다.

 

 

3) RESTful API의 작동 방식

 

리소스 식별: 각 리소스는 고유한 URI로 식별됩니다.
HTTP 메서드 사용: 표준 HTTP 메서드를 사용하여 리소스와 상호작용합니다.
요청 메시지: 클라이언트는 메타데이터와 파라미터를 포함한 HTTP 헤더와 함께 요청을 보냅니다.
응답 메시지: 서버는 상태 코드, 헤더, 그리고 요청된 리소스의 표현을 포함한 응답을 반환합니다.

 

3. URI(URL) (Uniform Resource Locator) 

 

 

1) URI URL(Uniform Resource Locator)이란? 

 

URL(Uniform Resource Locator)은 인터넷상의 리소스 위치를 나타내는 주소입니다. 
프로토콜(Protocol): URL의 맨 앞에 위치하며, 통신 방식을 지정합니다. 예: http, https.
호스트(Host): 리소스를 제공하는 서버의 도메인 이름이나 IP 주소입니다.
포트(Port): 서버의 특정 프로세스를 나타내는 번호입니다. 생략 가능하며, HTTP는 80, HTTPS는 443이 기본값입니다.
경로(Path): 서버 내부에서 리소스의 위치를 나타냅니다.
쿼리(Query): URL에 추가 정보를 전달하기 위해 사용되며, '?' 뒤에 키-값 쌍으로 표시됩니다.
프래그먼트(Fragment): 페이지 내 특정 섹션을 가리키며, '#' 뒤에 위치합니다.

 

 

2) URI(URL)구성 명칭 

 

 

 

 

4. HTTP 매서드(Methods) 

 

 

1) HTTP 메서드 란?

 

HTTP 매서드(Methods)는 서버에 요청을 할 때 원하는 동작을 나타내는 데 사용됩니다. 

 

 

 

2) 가장 일반적인 HTTP 메서드

 

GET: 지정된 리소스에서 데이터를 수정하지 않고 검색합니다.
POST: 서버가 처리할 데이터를 제출하며, 주로 새로운 리소스를 생성합니다.
PUT: 기존 리소스의 전체 내용을 대체하여 업데이트합니다.
DELETE: 서버에서 지정된 리소스를 제거합니다.
PATCH : 기존 리소스를 부분적으로 수정합니다.

 

 

3) 추가적인 HTTP 메서드

 

HEAD: GET과 유사하지만 본문 없이 헤더만 검색합니다.
OPTIONS: 대상 리소스에 대해 사용 가능한 통신 옵션 정보를 검색합니다.
TRACE: 대상 리소스로의 경로를 따라 메시지 루프백 테스트를 수행합니다.
CONNECT: 대상 리소스로 식별된 서버로의 터널을 설정합니다.

 

 

4) HTTP 메서드의 주요 특징

 

안전성: GET, HEAD, OPTIONS, TRACE는 리소스를 수정하지 않으므로 안전한 메서드로 간주됩니다.
멱등성: GET, HEAD, PUT, DELETE, OPTIONS, TRACE는 멱등하며, 이는 동일한 여러 요청이 단일 요청과 같은 효과를 가져야 함을 의미합니다.
캐시 가능성: GET, HEAD, 때로는 POST와 PATCH 응답도 캐시될 수 있습니다.
HTTP 메서드는 RESTful API 설계와 웹 개발에 필수적이며, 클라이언트와 서버 간의 표준화된 통신을 가능하게 합니다.

 

5. 메시지 포맷(Message Format)

 

 

1) 메시지 포맷(Message Format) 

 

컴퓨터 시스템 간에 교환되는 데이터의 구조와 내용을 정의하는 표준화된 형식입니다. 

2) 구성 요소

 

(1) 시작 라인: 메시지의 유형과 목적을 나타냅니다.

  • 요청 메시지: 메서드, 경로, HTTP 버전 포함
  • 응답 메시지: HTTP 버전, 상태 코드, 상태 설명 포함

 

(2) 헤더: 메시지에 대한 메타데이터를 제공합니다.

  • 형식: "이름: 값" 쌍
  • 예: Content-Type, Content-Length, Host 등


(3) 빈 줄: 헤더와 본문을 구분합니다.


(4) 본문(선택적): 실제 데이터를 포함합니다.

 

  • GET 요청은 일반적으로 본문이 없음
  • POST, PUT 요청과 대부분의 응답은 본문을 포함

 

3) 주요 메시지 유형

 


(1) HTTP 메시지

  • 요청 메시지: 클라이언트에서 서버로
  • 응답 메시지: 서버에서 클라이언트로

 

(2) 이메일 메시지 (RFC 5322)

  • 헤더와 본문으로 구성
  • MIME을 사용하여 다양한 콘텐츠 유형 지원

 

(3) SWIFT 메시지

MT(FIN 메시지요)와 MX(XML 메시지용) 표준 사용

 

 

4) 데이터 형식



(1) XML: 구조화된 데이터를 위한 확장 가능한 마크업 언어
(2)JSON: 경량 데이터 교환 형식, 인간이 읽고 쓰기 쉬움
(3)바이너리: 효율적인 데이터 전송을 위한 비텍스트 형식

 

 

 

 

728x90
반응형
home top bottom
}