언어/파이썬 & 장고
-
[Python] pydantic, mypy, typing의 @runtime_checkable언어/파이썬 & 장고 2026. 4. 12. 22:18
Python의 타입 안전성은 정적 분석(mypy), 런타임 데이터 검증(Pydantic), 구조적 인터페이스 정의(typing.Protocol + @runtime_checkable) 세 축이 서로 역할을 분담하여 완성됩니다. 이 문서는 각 도구의 목적, 사용법, 차이점, 조합 방법을 정리한 것입니다.1. 개요Python은 동적 타입 언어이지만, 3.5 이후 타입 힌트(type hints)가 도입되면서 정적 분석과 런타임 검증을 결합한 강력한 타입 안전성을 구현할 수 있게 되었습니다.이 문서에서 다루는 세 가지 도구는 각각 다음 역할을 담당합니다.도구종류주요 역할typing.Protocol • @runtime_checkable표준 라이브러리구조적 인터페이스 정의 및 런타임 구조 검사mypy정적 분석 도구코..
-
[Python] python dependency_injector, injector 라이브러리언어/파이썬 & 장고 2026. 4. 12. 22:13
1. 개요Python에서 의존성 주입(Dependency Injection, DI)을 구현하기 위한 라이브러리는 다양합니다. 그 중 가장 널리 사용되는 두 라이브러리인 dependency-injector와 injector를 비교하고 정리합니다.의존성 주입(DI)이란, 객체가 필요로 하는 다른 객체(의존성)를 직접 생성하지 않고 외부에서 전달받는 설계 패턴입니다. DI를 사용하면 코드의 결합도를 낮추고, 테스트를 용이하게 하며, 유지보수성을 높일 수 있습니다.항목dependency-injectorinjectorPyPI 패키지명dependency-injectorinjectorGitHub Stars4,800+1,500+최신 버전4.49.0 (2026.03)0.24.0 (2026.01)Python 지원3.8 ~..
-
[Python] pytest, pytest-mock 라이브러리언어/파이썬 & 장고 2026. 4. 12. 22:01
1. 개요pytest와 pytest-mock은 Python 생태계에서 가장 널리 사용되는 테스트 관련 라이브러리입니다. 두 라이브러리는 함께 사용하도록 설계되어 있으며, 단위 테스트(Unit Test)부터 통합 테스트(Integration Test)까지 다양한 테스트 시나리오를 깔끔하게 작성할 수 있도록 도와줍니다.구분pytestpytest-mock역할테스트 프레임워크 (실행, 발견, 보고)모킹(Mocking) 지원 플러그인핵심 개념Fixture, Marker, Parametrizemocker fixture, patch, spy독립 사용가능pytest 의존 필수2. 라이브러리 기능 설명2-1. pytestpytest는 Python의 표준 unittest보다 훨씬 간결하고 강력한 테스트 프레임워크입니다. ..
-
[Python] python-decouple 라이브러리언어/파이썬 & 장고 2026. 4. 12. 21:45
프로젝트별 설정을 동적으로 처리하기 위한 설정 파일 및 환경 변수 관리 라이브러리입니다. 코드와 설정의 엄격한 분리(Strict separation of config from code)를 목표로 합니다.1. 개요python-decouple은 애플리케이션 코드에서 설정값(Configuration)을 분리하여 관리하기 위한 Python 라이브러리입니다.원래 Django 프로젝트를 위해 만들어졌으나, 현재는 모든 Python 프로젝트에서 범용적으로 사용할 수 있는 독립 라이브러리로 발전하였습니다. 핵심 철학은 12-Factor App 방법론의 "Config" 원칙, 즉 코드와 설정은 반드시 분리되어야 한다는 것에 기반합니다.GitHub: https://github.com/HBNetwork/python-deco..
-
[Python] 파이썬 프로파일링: 성능 병목 현상 찾는 방법언어/파이썬 & 장고 2026. 4. 7. 23:25
📌 이 문서는 Real Python - Profiling in Python 및 추가 웹 검색을 바탕으로 정리되었습니다.개요소프트웨어 프로파일링이란 실행 중인 프로그램의 다양한 메트릭을 수집·분석하여 성능 병목 지점을 찾는 과정입니다.주요 병목 원인:과도한 메모리 사용비효율적인 CPU 활용부최적의 데이터 배치로 인한 캐시 미스"Make it work, then make it beautiful, then if you really, really have to, make it fast."언제 최적화할 것인가?최적화는 반드시 다음 순서로 진행해야 합니다:Testing — 코드가 올바르게 작동하는지 검증Refactoring — 유지보수성과 파이썬스러움 개선Profiling — 비효율적인 부분 식별 후 최적화⚠️ ..
-
[Python] 헥사고날 아키텍처언어/파이썬 & 장고 2025. 8. 31. 22:00
서론: 프레임워크 주도 설계를 넘어서소프트웨어 엔트로피라는 현대적 과제소프트웨어 시스템은 시간이 지남에 따라 자연스럽게 복잡해지고, 변경이 어려워지며, 깨지기 쉬워지는 경향이 있습니다. 이러한 현상을 '소프트웨어 엔트로피'라고 하며, 이는 모든 장기 프로젝트가 직면하는 근본적인 도전 과제입니다. 특히 특정 프레임워크나 기술에 강하게 결합된 아키텍처는 이러한 엔트로피를 가속화하는 경향이 있습니다.1 프레임워크는 초기 개발 속도를 높여주지만, 그 구조와 제약에 비즈니스 로직이 종속되면서 시스템의 유연성과 수명은 점차 잠식당합니다. 기술 스택의 변화, 비즈니스 요구사항의 진화, 새로운 통합 지점의 등장은 초기에 효율적이었던 구조를 유지보수의 악몽으로 바꿀 수 있습니다.헥사고날 아키텍처 소개이러한 문제에 대한 ..
-
[Python] sqlfluff 사용법언어/파이썬 & 장고 2025. 8. 31. 16:50
SQLFluff란 무엇인가?SQLFluff는 Python으로 작성된 SQL 린터이자 포매터입니다. SQL 코드의 품질을 향상시키고 일관된 스타일을 유지하는 데 도움을 주는 도구로 다양한 SQL 방언(dialect)을 지원합니다.주요 특징다중 방언 지원: PostgreSQL, MySQL, SQLite, BigQuery, Snowflake, Redshift 등린팅과 포매팅: 코드 스타일 검사와 자동 포매팅 기능설정 가능: 프로젝트별 커스텀 룰과 스타일 설정CI/CD 통합: GitHub Actions, GitLab CI 등과 쉬운 연동플러그인 시스템: 확장 가능한 아키텍처왜 SQLFluff를 사용하는가?1. 코드 포맷 일관성 유지-- Beforeselect col1,col2 from table1 where c..
-
[Python] ruff 사용법언어/파이썬 & 장고 2025. 8. 29. 00:20
Ruff란Ruff는 Rust로 작성된 고성능 Python 린터이자 코드 포매터입니다. 이 도구는 기존의 Python 코드 품질 도구들(Black, flake8, isort 등)을 하나로 통합하면서도 극도로 빠른 성능을 제공합니다.왜 Ruff를 사용해야 하는가?1. 압도적인 성능기존 도구들보다 10-100배 빠른 속도대규모 코드베이스에서도 수초 내에 완료Rust의 성능 최적화와 병렬 처리 활용2. 통합된 기능린팅: 코드 오류 및 스타일 문제 검출포매팅: 자동 코드 정렬임포트 정렬: 모듈 import 구문 자동 정리하나의 도구로 여러 기능 제공3. 광범위한 규칙 지원800개 이상의 내장 lint 규칙Flake8 플러그인들과 호환사용자 정의 규칙 추가 가능4. 간편한 설정최소한의 구성으로 바로 사용 가능pyp..
-
[Python] uv 사용법언어/파이썬 & 장고 2025. 8. 17. 21:42
설치# 리눅스curl -LsSf https://astral.sh/uv/install.sh | sh# 맥 homebrewbrew install uv# With pip.pip install uv사용법파이썬 설치 & 설치된 파이썬 리스트 조회 & 특정 버전 제거아래와 같이 명령어를 사용하면 가장 최신 배포된 파이썬 버전을 설치합니다.# 파이썬 버전 설치uv python install 3.12Installed Python 3.12.11 in 1.35s + cpython-3.12.11-macos-aarch64-none (python3.12)아래는 설치된 파이썬 리스트 조회입니다.# 설치된 파이썬 리스트 조회uv python list ..
-
[Python] poetry, pyenv, pipenv, flit, uv 도구 설명언어/파이썬 & 장고 2025. 8. 17. 20:09
파이썬 패키지 관리 도구는 기본적으로 pip가 있고 poetry, pyenv, pipenv, flit, uv처럼 여러 종류가 존재합니다. 아래에서는 각 도구 별로 설명과 장단점을 소개합니다.pippip은 파이썬의 공식 기본 패키지 설치 관리자입니다. Python을 설치하면 기본으로 함께 설치되며, pip install 명령어로 Python Package Index(PyPI)에 있는 대부분의 패키지를 설치할 수 있습니다. requirements.txt 파일을 통해 패키지 목록을 관리하는 것이 일반적입니다.장점파이썬의 기본 도구이므로 거의 모든 환경에서 사용할 수 있습니다.사용법이 매우 간단하고 직관적입니다.모든 파이썬 패키지는 pip을 통해 설치할 수 있다고 봐도 무방합니다.단점패키지 간의 복잡한 의존성..