FastAPI를 시작할때 보면 도움되는 정보 정리

1. 정리의 목적 FastAPI? 요새 다 좋다고 소문났던데? 빠르고 가벼운 프레임워크? 비동기? 라는 추상적인 내용에 가볍게 프로젝트를 시작해보는 경우가 많습니다. 공식 문서를 참고하며 프로젝트를 시작하기 전에 보면 도움될 만 한 내용을 정리하였습니다. 2. FastAPI란 고성능, 간편한 학습, 빠른 코드 작성, Python3.6+의 API를 빌드하기 위한 준비된 프로덕션 웹프레임워크 라고 공식 문서에 나와있습니다. 빠른 속도: Starlette와 Pydantic 덕분에 Go와 NodeJS와 대등할 정도의 높은 성능 빠른 개발 속도: 기존에 비해 2~3배 더 빠른 개발 속도 적은 버그: 휴먼 에러가 40% 감소 배우기 쉬움: 쉽게 사용하고 친절한 문서 견고함: 대화형 문서 지원 (OpenAPI 기반으로 JSON 스키마와 완벽한 호환) 2-1....

April 22, 2023 · livvjh

쉽게 이해하는 MySQL 인덱스 한판 정리

Real MySQL 책을 읽으며 활용하기 위해 간략히 정리한 내용입니다. 더 자세한 내용을 알고 싶다면 책 또는 구글 검색을 통해 찾아주시면 감사하겠습니다. 용어 정리 페이지 디스크와 메모리(버퍼풀)에 데이터를 읽고 쓰는 기본 단위를 말한다. 데이터가 저장되는 물리적 단위를 말하며 InnoDB에서 데이터는 데이터파일에 페이지 단위로 저장된다. 인덱스를 포함해 PK(클러스터 인덱스), 테이블등은 모두 페이지 단위로 관리된다. 데이터파일 InnoDB에서 실제 데이터가 저장되는 파일을 말한다. 여러개의 페이지로 나눠 데이터를 저장하며 페이지 단위로 관리한다....

March 29, 2023 · livvjh

쉽게 이해하는 MySQL 아키텍처 한판 정리

Real MySQL 책을 읽으며 활용하기 위해 간략히 정리한 내용입니다. 더 자세한 내용을 알고 싶다면 책 또는 구글 검색을 통해 찾아주시면 감사하겠습니다. 아키텍처 MySQL 서버는 머리 역할 담당하는 MySQL 엔진과 손발 역할을 하는 스토리지 엔진으로 구성되어 있다. 스토리지 엔진은 핸들러 API를 만족시 스토리지 엔진을 구현하여 MySQL 서버에 추가해 사용 가능하다. MySQL 엔진 구조 MySQL 엔진 클라이언트로부터 접속 or 쿼리 요청을 처리하는 커넥션 핸들러와 SQL 파서 및 전처리기 캐시 옵티마이저가 중심이며 표준 SQL 문법을 지원 사람의 역할 (mysql 엔진이 스토리지 엔진을 조정하기 위해 핸들러를 사용) 요약: MySQL 엔진은 요청에 따른 SQL 문장을 분석 및 최적화 담당하는 두뇌 역할 스토리지 엔진 스토리지 엔진을 여러개 동시에 사용 가능하며 실제 데이터를 디스크 스토리지에 저장, 조회등을 담당 실제 CRUD 작업이 발생시 처리 담당 자동차 역할 (mysql 엔진에 의해 조정) MyISAM 스토리지 엔진, InnoDB 스토리지 엔진 InnoDB 높은 신뢰성, 고성능으로 범용 스토리지 엔진 많은 기능을 제공해 상대적 무거움 테이블과 인덱스를 테이블 공간에 저장 Row level locking 지원으로 데이터 변경이 많을 때 효율적 (행 단위 잠금) Row level locking row 수준의 잠금 → 하나의 데이터를 읽고, 수정시 다른 행에 대한 접근 허용 여부 잠금 Shared Lock select를 위한 read lock read lock의 경우 다른 트랜잭션이 row 접근시 read lock 보장, write lock 접근 불가 Exclusive Lock update, delete를 위한 write lock 해당 lock이 동작하면 다른 트랜잭이 row에 조회, 수정등의 lock을 획득하지 못하고 대기 MyISAM 5....

February 19, 2023 · livvjh

Django 실제 서버엔 runserver 대신 왜 웹서버+wsgi를 사용할까?

Django는 실제 서버에선 왜 runserver를 하지 않고 웹서버+wsgi를 사용할까? “그냥 다들 사용하니까”, “검색하면 이렇게 나오니까” 라는 이유 말고 왜라는 질문에서 시작하여 이 내용을 정리하게 되었습니다. 1. 클라이언트와 서버의 구조 내용을 작성하기 앞서 애플리케이션은 요청과 응답이 어떻게 동작하는지에 대해 짚고 넘어가야합니다. 아래 그림을 보며 간략히 설명을 작성하였습니다. 1-1. 동작 순서 사용자가 앱이나 웹브라우저 환경에서 API 서버에 요청을 하게 됩니다. 해당 요청은 가장 먼저 웹서버에 가게 됩니다. 클라이언트 API 호출 가장 먼저 웹서버로 접속합니다 (nginx) 소켓을 통해 wsgi까지 도달 (wsgi: 장고와 웹서버의 데이터 통신을 교환할 수 있게 도와주는 인터페이스) wsgi에서 django로 전달되어 프로젝트내 파이썬 코드가 실행 1-2....

December 27, 2022 · livvjh