Web-프론트&백

[백엔드/fastapi] 개념 정리

옆동네애옹이 2024. 6. 18. 19:26
728x90

현재 사용하는 방식은 보유하고 있는 server computer에 ssh로 보안접속하여, 각 user에 할당된 userID로 접속하기

  - 이 과정에서 배웠던 거: ssh는 경로 이동시마다 비밀번호 입력 -> 귀찮으니까 rsa key 만들어넣기

      - ssh-keygen 한 후 로컬에 key(비밀키), key.pub(공개키) 2개 생성되는데, 공개키를 .ssh dir에 넣어 저장하기 -> private key는 공개하면 안됨! 

 

    - .venv 파일 만들고, conda 가상환경 대신 접속하기. (git ignore 이용해서 test folder, .env, .venv 지정하기)

       - 가상환경 접속 과정에서 배운 거 : requirements 만들기 (pip freeze > requirements.txt) # install된 list를 requirements.txt 파일에 저장하기

      - pip list | grep torch: list 내부에서 torch 찾기 (grep: 해당 문자열 찾기)

       - 역으로 pip install -r requirements.txt 읽어서 저장할 수도 있음.

 

[fastAPI?]

 

[REST API]

 

- client와 server 사이 json으로 데이터가 이동하는 방식.

- http protocol (표준 프로토콜) 통해서 자원 상태 주고받는 방식. => CRUD(post/get/put/delete) => client 기준으로 정보를 받는 것 / 주는 것. 

- URI (Uniform Resource Identifier) : 특정 리소스를 식별하는 통합 자원 식별자. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스 (네트워크가 아닐 수 있고, 하나의 '경로'로 이해하기)

- URL(Uniform Resource Locator):  주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋 (네트워크)

 

* Endpoint: client가 server에 접속할 수 있는 meeting point (경로/dir로 생각하기)

* server 실행: uvicorn ~~ or fastapi dev main.py

 

 

[Pydantic] : schemas.py - FastAPI는 Pydantic 라이브러리를 활용하여 데이터 유효성 검사와 파싱을 처리

- data validation 검증 위한 라이브러리 - data Class 기반 구조 정의 및 검증

from pydantic import BaseModel

 

class Employee(BaseModel): # BaseModel 상속 꼭 해오기!

  name: str

  age: int ...

 

[SQLAlchemy] : models.py

- 객체 - 관계 매핑 (파이썬  -> SQL 매핑) => ORM(Object Relational Mapping)

- 클래스 = 테이블

- 클래스 속성 = 열

- 객체 = 행

 

from sqlalchemy import *class User(Base): # Base 상속 꼭 해오기  __tablename__ = ""

 

class Item(Base):

 

 

728x90