Product Serving - 완성도 높이기

eric9687·2022년 1월 16일
0

백엔드 프로그래밍

  • server형태
    • 모놀리식 아키텍처(Monolithic Architecture): 모두 하나에서 처리하는 경우(큰 범주로 모두 서버)
    • 마이크로서비스 아키텍쳐(Microservice Architecture): 개별 서버로 구성하고 서로 통신하도록하는 경우
  • REST형식의 API
    • 각 요청이 어떤 동작이나 정보를 위한 것을 요청 모습 자체로 추론할 수 있음
    • 기본적인 데이터 처리: 조회, 추가, 수정, 삭제
    • CRUD: Create, Read, Update, Delete
    • 클라이언트: 요청하는 플랫폼. 브라우저 같은 웹일 수 도 있고, 앱일 수 도 있음. 우리가 python을 사용해 요청하는 것도 클라이언트
    • Resource: Unique한 ID를 가지는 리소스, URI
    • Method: 서버에서 요청을 보내기 위한 방식: GET, POST,PUT, PATCH, DELETE
  • URI: uniform resource Identifier로 인터넷상의 자원을 식별하기 위한 문자열의 구성. URL을 포함.
  • URL: uniform resource Locator로 인터넷상 자원의 위치
  • HTTP Method
    • GET : 정보를 요청하기 위해 사용(Read)
    • POST : 정보를 입력하기 위해 사용(Create)
    • PUT : 정보를 업데이트 하기 위해 사용(Update)
    • PATCH : 정보를 업데이트하기 위해 사용(Update)
    • DELETE : 정보를 삭제하기 위해 사용(Delete)
  • Header와 Body
    • HTTP통신은 Request하고, Response를 받을때 정보를 패킷(packet)에 저장.
    • packet구조: header/ body
    • header: 보내는 주소, 받는 주소, 시간
    • body : 실제 전달하려는 내용
  • Status Code
  • 동기와 비동기
    • 동기(Sync): 서버에서 요청을 보냈을때, 응답이 돌아와야 다음 동작을 수행할 수 있음.
    • 비동기(Async): 요청을 보낼 때 응답 상태와 상관없이 다음 동작을 수행함.

Fast API

  • Node.js, go와 대등한 성능
  • Falsk와 비슷한 구조, Microservice에 적합
  • Swagger자동 생성. Pydantic을 이용한 serialization
  • Flask보다 간단한 router문법
  • 비동기식 지원
  • Built-in API Documentation(Swagger)
  • 프로젝트 구조(v1)
    • 프로젝트의 코드가 들어갈 모듈 설정(app).대안:프로젝트 이름,src등
    • __main__.py는 간단하게 어플리케이션을 실행 할 수 있는 entrypoint역할. etrypoint: 프로그래밍 언어에서 최상위 코드가 실해되는 시작점 또는 프로그램 진입점
    • main.py또는 app.py: FastAPI의 애플리케이션과 router 설정
    • model.py는 ML model에 대한 클래스와 함수 정의
  • Poetry사용해볼 수 있음.
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글