본문 바로가기

분류 전체보기72

CMake --preset: 더 이상 길고 복잡한 빌드 명령어에 시달리지 말자 C++ 개발자라면 CMake로 프로젝트를 빌드하는 경우가 많을 것이다. 아마 대부분 cmake .나 cmake --build . 같은 기본적인 명령어는 익숙하리라 생각한다. 그런데 혹시 이런 경험이 있지 않은가?cmake -S . -B build_debug -DCMAKE_BUILD_TYPE=Debug -G "Ninja"처럼 길고 복잡한 옵션들을 매번 입력하게 된다.디버그(Debug) 빌드와 릴리즈(Release) 빌드를 왔다 갔다 할 때마다 명령줄을 일일이 수정하는 게 귀찮다."이상하다, 내 컴퓨터에서는 빌드가 잘 되는데 왜 네 컴퓨터에서는 안 되지?" 팀원들마다 빌드 설정이 미묘하게 달라 겪는 문제가 빈번하다.CI/CD 파이프라인에서 일관되고 재현 가능한 빌드 환경을 구축하는 데 어려움을 느낀다.만약 .. 2025. 6. 28.
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.