241214 TIL #563 AI Tech #96 Online Serving

김춘복·2024년 12월 14일
1

TIL : Today I Learned

목록 보기
565/575

Today I Learned

오늘 배운 내용은 Online Serving과 웹 기본 지식!


Online Serving

데이터를 실시간으로 처리해 즉각적인 결과 반환

  • 어떤 방식을 쓰는지는 환경(일정, 예산, 인력, 모델)에 따라 다르다.

  • 실시간 예측이기 때문에 latency를 최소화해야 한다.
    모델 경량화, Feature Store(피쳐 미리 가공), 병렬 처리, 결과 캐싱 등

  1. 직접 웹서버 개발
    Flask나 FastAPI 등을 이용해서 서버를 직접 구축

  2. 클라우드 사용
    aws의 SageMaker, GCP의 Vertex AI 등

  3. 오픈소스 활용
    Torch Serve, MLFlow, BentoML 등

이미지 출처 : @dmchoi224

Monolithic

  • 모든 로직이 하나의 코드베이스에 저장되어 하나의 큰 서버로 개발

  • 모든 로직이 하나에 다 있어서 단순하지만 협업이 힘들고, 코드간 의존성과 결합도가 높아 서비스 초기 단계에서 많이 사용한다.

MSA

  • 여러개의 작은 서버로 개발해 필요에 따라 서버를 분리

  • 의존성과 환경을 서버별로 다르게 둔다.

  • 전체적인 구조와 통신이 복잡해진다.

  • 서비스가 고도화되고 개발 조직이 커지면 주로 서버를 MSA로 나눈다.


API

Application Programming Interface. SW 프로그램들이 서로 상호작용하기 위한 인터페이스

REST API

HTTP 프로토콜을 기반으로 하는 웹 API
자원(Resource)을 이름으로 구분하여 해당 자원의 상태를 주고받는 방식

  • request(요청)의 형태만 봐도 어떤걸 요구하는 지 알 수 있음

  • CRUD : Create, Read, Update, Delete

  • URL : 인터넷 상 자원의 위치
    URI : 인터넷 상 자원을 식별하기 위한 문자열 구성. HTTP URI로 자원을 고유하게 식별한다.

  • Method(행위) : 동사로 표현
    GET: 리소스 조회
    POST : 리소스 생성
    PUT : 생성된 리소스 하나를 전체 업데이트
    PATCH : 생성된 리소스 하나를 부분 업데이트
    DELETE : 생성된 리소스 삭제

  • ML에서는 주로 /predict나 /train 같은 엔드포인트 사용

이미지 출처 : hanamon

  • HTTP Header : -H 요청과 응답에서 추가정보를 주고받기위한 메타 데이터
    ex) Content-Type: 리소스의 미디어 타입을 정의 (application/json)

  • Payload : -d HTTP 메시지에서 실제 전송되는 데이터. body부분에서 실제 데이터가 전송됨.

  • HTTP Status Code
    이미지 출처 : infidigit

  • port
    네트워크 통신에서 데이터가 전송되는 논리적 진입점. 0~65535까지 숫자로 구성
    SSH - 22 / HTTP - 80 / HTTPS - 443 / HTTP대체 - 8080
    Jupyter Notebook - 8888 / MySQL - 3306

profile
Backend Dev / Data Engineer

0개의 댓글