일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Alembic
- 회고
- 스케줄링
- 2022년
- Django
- 스레드풀
- 글또
- 싱글톤 디자인 패턴
- CPU스케쥴링
- 캐시서버
- K8S
- 백엔드 개발자
- nodejs
- FastAPI
- golang
- nestjs
- 분산처리
- AWS
- 쿠버네티스
- 가비지컬렉션
- gunicorn
- EKS
- uvicorn
- alb
- SQLAlchemy
- 로드밸런서
- 쿠베네티스
- Python
- 멀티스레드
- 메모리구조
- Today
- Total
목록python (7)
서버에서 살아남기
python에 초점을 맞춘 디자인 패턴에 대해서 정리하겠습니다. 해당 내용은 책 에 있는 내용을 정리한 내용입니다. 프록시 디자인 패턴 프록시 디자인 패턴은 구조 디자인 패턴의 한 종류입니다. 프록시 디자인 패턴의 개요 프록시 : 요청자와 공급자 사이의 중재자를 일컫음 웹 관점에서는 프록시 서버가 프록시에 해당됩니다. 플라이언트가 특정 웹 사이트에 접속하면, 프록시 서버에 리소스를 요청하고 요청을 받아들인 프록시 서버는 서버에 요청을 보내고 결과를 받아 다시 클라이언트에게 보냅니다. 디자인 패턴 관점에서의 Proxy 클래스는 객체의 언페이스 역할을 합니다. 여기서 객체는 네트워크 연결, 메모리, 혹은 파일에 저장된 객체 등을 의미합니다. 프록시 디자인 패턴의 역할 1) 복잡한 시스템을 간단하게 표현할 수..
python에 초점을 맞춘 디자인 패턴에 대해서 정리하겠습니다. 해당 내용은 책 에 있는 내용을 정리한 내용입니다. 디자인 패턴 종류 GoF 디자인 패턴 책에서는 디자인 패턴을 다음의 3개의 범주로 분류합니다. 1) 생성 패턴 2) 구조 패턴 3) 행위 패턴 1) 생성 패턴 - 객체가 생성 되는 방식을 기반으로 작동합니다. - 객체 생성 관련 상세 로직은 숨긴다. 2) 구조 패턴 - 클래스와 객체를 더 큰 결과물로 합칠 수 있는 구조로 설계한다. - 구조가 단순해지고, 클래스와 객체 간의 상호관계를 파악 할 수 있다. 3) 행위 패턴 - 객체는 상호작용하지만 느슨하게 결합돼야 한다.싱글톤 디자인 패턴(생성 패턴) 특정 클래스의 인스턴스가 단 하나만 생성되도록 보장하고 어디서든지 이 인스턴스에 접근 할 수..
FastAPI를 사용함에도 FastAPI의 동작 원리에 대해 깊숙히 이해하지 못하고 있는 부분이 있어서 정리하려고 합니다. 1. FastAPI ASGI 서버와 함께 사용되는 비동기 웹 애플리케이션입니다. 2. ❓ ASGI란? 비동기 웹 서버와 웹 애플리케이션(ex. FastAPI) 간의 통신을 위한 표준 인터페이스 ASGI의 서버의 구현체인 uvicorn과 함께 사용됩니다. * 비동기는? 하나의 작업의 결과를 기다리지 않고 다른 작업을 동시에 진행하는 것 * 비동기 vs 병렬 비동기 : 하나의 스레드에서 여러 작업을 처리 병렬 : 여러 스레드나 프로세스에서 각각의 작업을 독립적으로 동시에 실행하는 것 3. ❓ uvicorn이란? ASGI 서버의 한 종류로서, ASGI 애플리케이션을 구동시켜 웹 서버로 동..
1. 개념 프로그래밍 언어에서 더 이상 사용되지 않는 메모리를 자동으로 탐지하고 회수하는 메모리 기법입니다. 2. 목적 메모리 누수를 방지하고, 프로그래머가 메모리 할당과 해제에 대해 걱정하지 않고도 안정적인 프로그램을 작성할 수 있도록 돕는 것입니다. 3. 기능 1) 동적 메모리 관리 : 프로그램이 실행 중에 필요한 메모리를 할당하고 더 이상 사용하지 않는 메모리를 자동으로 해제합니다. * 동적 메모리 - 프로그램 실행 중에 필요한 메모리를 런타임 시점에 할당하고 해제하는 메모리 영역 - 주로 동적으로 크기가 결정되는 데이터 구조나 실행 중에 생성되는 객체 등을 저장하기 위해 사용됨 * python 에서 동적 메모리 관리하는 법 1. 객체 생성 : python에서 객체는 자동으로 메모리에 생성됩니다. ..

언어 : Python 프레임워크 : FastAPI ORM : SQLAlchemy 마이그레이션 툴 : alembic alembic documentaion : https://alembic.sqlalchemy.org/en/latest/index.html 1. SQLAlchemy SQLAlchemy 의 경우 migration 기능을 포함하지 않으며, Alembic 이라는 별도 패키지를 함께 사용해야합니다. 2. Alembic transsactional DDL 을 지원합니다. 그래서 Database Scema가 생성되기 전에는 Database 변경이 일어나지 않습니다. 마이그레이션 명령어를 입력하면 upgrade & downgrade function과 함께 script 파일이 생성됩니다. 해당 파일에는 revis..
파일 읽기와 쓰기 open 메소드 활용하기 1) read() : 파일의 내용을 문자열로 반환 file_path = 'soohyun.txt' open_file = open(file_path, 'r') text = open_file.read() open_file.close() 2) readlines() : 파일의 내용을 개행 문자 기준으로 나눠 문자열 리스트를 반환 file_path = 'soohyun.txt' open_file = open(file_path, 'r') text = open_file.readlines() open_file.close() 3) with : close 를 하지 않아도 됩니다. 들여쓰기가 끝나는 위치에서 파일을 닫ㄷ고 리소스를 자동으로 해제합니다. file_path = 'soohy..

Django 와 Fastapi 두개로 프로젝트를 진행했었고, 두개의 차이를 비교해서 정리하려고 합니다. Django 몸만 오면 된다. Django 는 python 으로 개발하기에 가장 접하기 쉬운 프레임워크입니다. 그래서 러닝커브도 낮고, 많은 python 가발자들이 사용하는 프레임워크 중 하나입니다. 또한 많은 패키지들이 내장되어 있고 제공하는 기본 기능들이 많이 있습니다. 로그인, 회원가입, 인증 뿐만이 아니라 어드민 페이지도 제공합니다. ORM 기반이다. Django 는 ORM(객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것)기반입니다. 그래서 ORM 문법을 알아야 데이터베이스에서 데이터를 쉽게 가져올 수 있습니다. 물론 SQL쿼리문을 사용해도 무관하지만 SQL 쿼리문을 사용하게..