Home [Infra]RestAPI
Post
Cancel

[Infra]RestAPI


서버

모놀리식 아키텍처(Monolithic Architecture)

하나의 큰 서버로서, 모든 기능을 모두 하나에서 처리하는 경우에 사용

마이크로서비스 아키텍처(Microservice Architecture; MSA)

각각의 기능을 개별 서버로 구성하여 통신하도록 하는 경우에 사용


RestAPI(Representational State Transfer)

정보를 주고 받을 때 널리 사용되는 형식

Rest API

  • 각 요청이 어떤 동작이나 정보를 위한 것을 요청 모습 자체로 추론하는 통신 방법
  • 기본적인 데이터 처리(CRUD) 제공
  • Resource, Method, Representation of Resource로 구성
  • 클라이언트: 요청을 하는 플랫폼으로써 브라우저 같은 웹, 앱 등

URI/URL

URI(Uniform Resource Identifier)

인터넷 상의 자원을 식별하기 위한 문자열의 구성

URL(Uniform Resource Locator)

인터넷 상 자원의 위치로써 URI의 하위 개념

HTTP

  • 정보를 주고 받을 때 지켜야 하는 통신 프로토콜

HTTP Method

  • GET: 정보를 요청하기 위해 사용(Read)
  • POST: 정보를 입력하기 위해 사용(Create)
  • PUT: 정보를 업데이트하기 위해 사용(Update)
  • PATCH: 정보를 업데이트하기 위해 사용(Update)
  • Delete: 정보를 삭제하기 위해 사용(Delete)

Get vs Post

처리방식GETPOST
URL에 데이터 노출 여부OX
URL 예시http://localhost:8080/login?id=kjyeopshttp://localhost:8080/login
데이터의 위치HeaderBody
캐싱 가능 여부OX

Header, Body

HTTP 통신은 Request/Response 시 정보를 패킷에 저장하며, 해당 패킷의 구조가 Header/Body로 구성

  • Header: 보내는 주소, 받는 주소, 시간
  • Body: 실제 전달하려는 내용

Status code

클라이언트 요청에 따른 서버의 반응

  • 1xx(정보): 요청을 받았고, 프로세스를 계속 진행
  • 2xx(성공): 요청을 성공적으로 받고 실행
  • 3xx(Redirection): 요청 완료를 위한 추가 작업 요구
  • 4xx(클라이언트 오류): 요청 문법 등의 문제로 인해 요청 처리 불가
  • 5xx(서버 오류) 서버가 요청에 대해 실패

동기 vs 비동기(Sync vs ASync)

  • 동기: 서버에서 요청을 보냈을 때, 응답이 돌아온 뒤 다음 동작 수행
    • A작업이 완료되기 까지 B 작업은 대기
    • 프린터나 Line-by-Line 코드와 비슷한 맥락
  • 비동기: 요청을 보낼 때 응답 상태와 상관없이 다음 동작을 수행
    • A작업과 B작업을 동시에 수행

IP(Internet Protocol)

네트워크에 연결된 특정 PC의 주소를 나타내는 체계

  • IPv4: 8비트의 이진수를 4자리로 구성한 IP 주소 체계
    • 각 자리마다 0~255로 표현하며, 2^32 = 43억 개의 표현 가능
    • 개인 PC 보급으로 누구나 PC를 사용해 IPv4로 할당할 수 있는 한계점을 보완하기 위한 IPv6 구성
  • localhost(127.0.0.1): 현재 사용 중인 Local PC
  • 0.0.0.0, 255.255.255.255: broadcast adress로써 로컬 네트워크에 접속된 모든 장치와 소통하는 주소

Port

  • PC에 접속할 수 있는 통로
  • 사용 중인 포트 중복 불가
  • 범위: 0 ~ 65535
  • 통신 규약: 0 ~ 1024
    • SSH: 22
    • HTTP: 80
    • HTTPS: 443

Router Parameter

Path Parameter

/user/402

  • 라우터에 직접 변수를 적용하는 방법
  • 402의 유저가 없는 경우 404 Error code 반환
  • 주로 Resource를 식별해야 하는 경우 사용

Query Parameter(Query string)

/users?id=402

  • API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용
  • Query string은 ?Key=Value 쌍으로 이루어지며 &를 이용해 여러 데이터를 전달 가능
    • https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=fastapi
  • 402의 유저가 없는 경우 빈 리스트가 나오며, 추가로 Error handling 요구
  • 주로 데이터 정렬이나 필터링 시 적용
This post is licensed under CC BY 4.0 by the author.