[Back-End] 기본 개념

HipJaengYiCat·2023년 7월 4일
0

server의 형태

  • 모놀리식 아키텍쳐(Monolithic Architecture)
    - 하나의 큰 서버 안에 모든 기능을 처리함

  • 마이크로서비스 아키텍쳐(Mircroservice Architecture-MSA)
    - 각각의 기능이 개별서버로 구성되고, 서로 통신하도록 함

    • 개발할 때 API를 의미로 만들 수 있으나 작성 양식이 다르면 서로 다르게 쓰게됨 -> 따라서 API 형식과 통신 형식이 중요함

REST API

  • Representational State Transfer의 약자로 Resource, Method, Representation of Resource로 구성됨
  • 정보를 주고 받을 때 널리 사용되는 형식
  • 각 요청이 어떤 동작이나 정보를 위한 것을 요청 모습 자체로 추론할 수 있음
  • 기본적인 데이터 처리 - CRUD : Create(새로추가), READ(조회), Update(수정), Delete(삭제)
  • 클라이언트 : 요청을 하는 플랫폼, 브라우저같은 웹이나, 앱, python을 사용해 요청하는 것도 클라이언트임
  • Resource : Unique한 ID를 가지는 리소스, ex) URI
  • Method : 서버에 요청을 보내기 위한 방식, GET, POST, PUT, PATCH, DELETE

URI VS URL

URL : Uniform Resource Locator로 인터넷 상 자원의 위치
URI : Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성

  • URI는 URL을 포함함, URI가 더 포괄적인 범위이다.

HTTP(Hyper Text Transfer Protocol)

  • 정보를 주고 받을 때 지켜야 하는 통신 프로토콜(규약), 약속
  • HTTP는 기본적으로 80번 포트를 사용하고 있고, 서버에서 80번 포트를 열어주지 않으면 HTTP통신이 불가능하다

HTTP Method

  • GET : 정보를 요청하기 위해 사용 - read
    어떤 정보를 가져와서 조회하기 위해 사용되는 방식
    URL에 변수를 포함시켜 요청함
    데이터를 Header에 포함하여 전송함
    URL에 데이터가 노출되어 있어 보안에 취약함
    캐싱할 수 있음
  • POST : 정보를 입력하기 위해 사용 - create
    데이터를 서버로 제출해 추가 또는 수정하기 위해 사용되는 방식
    URL에 변수를 노출하지 않고 요청함
    데이터를 Body에 포함함
    URL에 데이터가 노출되지 않아 기본 보안이 되어 있움
    캐싱할 수 없음, 다만 그안에 아키텍처로 캐싱할 수 있음
  • PUT : 정보를 업데이트하기 위해 사용 - update
  • PATCH : 정보를 업데이트하기 위해 사용 - update
  • DELETE - 정보를 삭제하기 위해 사용 - delete
  • GET vs POST

  • Header & Body

  • Http 통신은 Request하고, Response를 받을 때 정보를 Packet에 저장함
  • Packet의 구조 : Header / Body
    ex) 메일 : Header - 보내는 주고, 받는 주소, 시간 / Body - 전달하려는 내용

Status Code

  • 클라이언트 요청에 따라 서버가 어떻게 반응하는지 알려주는 코드
    1xx(정보) : 요청을 받았고, 프로세스를 계속 진행함
    2xx(성공) : 요청을 성공적으로 받았고, 실행함
    3xx(리다이렉션) : 요청 완료를 위한 추가 작업이 필요
    4xx(클라이언트 오류) : 요청 문법이 잘못되었거나 요청을 처리할 수 없음 5xx(서버 오류) 서버가 요청에 대해 실패함

동기 VS 비동기

  • 동기(Sync) : 서버에서 요청을 보냈을 때, 응답이 돌아와야 다음 동작을 수행할 수 있음. A 작업이 모두 완료될 때까지 B 작업은 대기해야 함

  • 비동기(Async) : 요청을 보낼 때 응답 상태와 상관없이 다음 동작을 수행함. A작업과 B 작업이 동시에 실행됨

IP

  • 네트워크에 연결된 특정 PC의 주소를 나타내는 체계
  • Internet Protocol의 줄임말, 인터넷상에서 사용하는 주소체계
  • 4덩이의 숫자로 구성된 IP 주소 체계를IPv4라고 함
  • 각 덩어리마다 0~255로 나타낼 수 있음. 2^32 = 43억개의 IP 주소를 표현할 수 있음
    - localhost, 127.0.0.1 : 현재 사용 중인 Local PC
    • 0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소
  • 개인 PC 보급으로 누구나 PC를 사용해 IPv4로 할당할 수 있는 한계점 진입, IPv6이 나옴

port

  • IP 주소 뒤에 나오는 숫자
  • PC에 접속할 수 있는 통로(채널)
  • 사용 중인 포트는 중복할 수 없음
  • Jupyter Notebook은 8888
  • Port는 0 ~ 65535까지 존재
  • 그 중 0~1024는 통신을 위한 규약에 정해짐 - 22 : SSH
  • 80 : HTTP
  • 443 : HTTPS
profile
AI Learning, Parcelled Innovations, Carrying All

0개의 댓글