본문 바로가기

전체 글76

Poetry로 Python 프로젝트 환경 만들기 pyproject.toml이 Python 프로젝트의 설정 파일이라면, Poetry는 이 파일을 기반으로 프로젝트의 의존성을 관리하고, 가상 환경을 구축하며, 패키지를 빌드하고 게시하는 모든 과정을 통합적으로 처리해주는 도구이다. 복잡한 프로젝트 설정과 의존성 지옥에서 벗어나 깔끔하고 효율적인 개발 환경을 만들고 싶다면 Poetry가 훌륭한 해답이 될 것이다. 1. Poetry 설치Poetry는 Python 패키지이지만, 시스템에 독립적으로 설치하는 것을 권장한다. 왜냐하면 Poetry 자체의 의존성이 다른 프로젝트의 의존성과 충돌하는 것을 방지하기 위해서이다. macOS / Linux / WSL:curl -sSL https://install.python-poetry.org | python3 - Windo.. 2025. 6. 24.
pyproject.toml 시작하기: Python 프로젝트의 현대적 설정 파일 Python 개발을 시작하는 많은 사람들이 하나의 .py 파일로 스크립트를 작성하는 것부터 시작한다. 하지만 프로젝트가 커지고 여러 파일, 외부 라이브러리, 테스트 등이 필요해지면, 단순한 스크립트 방식만으로는 한계에 부딪히게 된다. 이때 필요한 것이 바로 프로젝트 관리 시스템이며, 그 중심에 pyproject.toml 파일이 있다.과거에는 Python 프로젝트의 메타데이터, 빌드 설정, 의존성 관리 등을 위해 setup.py, requirements.txt, setup.cfg, MANIFEST.in 등 여러 파일이 사용되었다. 이는 프로젝트 설정이 파편화되어 관리하기 어렵다는 단점이 있다. pyproject.toml은 이러한 문제점을 해결하고, Python 생태계의 복잡한 빌드 도구와 의존성 관리를 표.. 2025. 6. 24.
Node.js child_process의 exec와 spawn 차이 정리 Node.js에서 외부 명령어를 실행해야 할 때 흔히 사용하는 API가 바로 child_process 모듈의 exec와 spawn이다. 둘 다 자식 프로세스를 생성해 명령을 실행할 수 있게 해주지만, 내부 동작 방식과 사용 목적은 다소 다르다.이 글에서는 exec와 spawn의 핵심 차이점과 언제 어떤 상황에서 사용하면 좋을지 예제와 함께 정리한다.exec와 spawn은 무엇인가?execexec는 셸을 통해 명령어를 실행한다.즉, 내부적으로는 sh, bash, 또는 Windows에서는 cmd.exe를 호출해서 전체 명령어 문자열을 실행한다.이 때문에 ls -al | grep log처럼 셸 문법을 그대로 사용할 수 있다.실행 결과는 stdout, stderr를 버퍼에 저장한 뒤 한꺼번에 콜백 함수로 전달된.. 2025. 6. 20.
pickle 모듈을 이용한 캐싱 관리 기법 1. 서론: 캐싱의 필요성과 파이썬에서의 선택지 데이터를 반복적으로 계산하거나 외부에서 받아오는 작업은 시간이 오래 걸린다. 예를 들어, 복잡한 수학 계산, API 호출, 대용량 파일 읽기 등의 작업이 그럴 수 있다. 이런 작업을 매번 새로 하지 않고 결과를 저장해두었다가 재사용하면 실행 속도가 빨라지고 효율이 올라간다. 이를 "캐싱"이라고 합니다. 파이썬에서는 다양한 방법으로 캐싱을 구현할 수 있다. 메모리에 저장하는 functools.lru_cache, 파일 기반으로 저장하는 pickle, 혹은 Redis와 같은 외부 시스템을 사용하는 방식이 있다. 이 글에서는 가장 직관적이고 간단한 방식인 pickle 모듈을 활용하여 캐싱을 구현하는 방법을 다룬다.2. pickle 모듈 개요 pickle은 파이.. 2025. 6. 18.
TypeORM 마이그레이션 사용하기: 안전한 데이터베이스 관리를 위한 단계별 가이드 데이터베이스 스키마 변경을 관리하는 것은 까다로울 수 있다. 특히 개발 환경과 프로덕션 환경 간의 일관성을 유지해야 할 때 더욱 그렇다. TypeORM의 마이그레이션 기능은 통해 이러한 변경 사항을 체계적으로 추적하고 적용할 수 있다. 이 글에서는 TypeORM 마이그레이션 사용 과정을 단계별로 설명하고, 각 단계가 왜 중요한지, 흔히 발생하는 함정을 피하기 위한 사례를 정리하고자 한다.왜 마이그레이션을 사용해야 할까?마이그레이션을 위한 절차를 정리하기 전에, 마이그레이션이 왜 중요한지 이해하는 것이 필요하다.데이터베이스 버전 관리: 마이그레이션은 코드 버전 관리처럼 스키마 변경을 시간 순으로 추적할 수 있게 해준다.환경 간 일관성: 개발, 스테이징, 프로덕션 데이터베이스가 동기화된 상태를 유지하도록 보.. 2025. 5. 30.