목록2026/01 (6)
dev.Log
터미널에서는 되는데 서비스로만 실행하면 깨지는 진짜 원인conda 환경에서 잘 동작하던 Python 서비스가systemd 서비스로 등록하는 순간 실행되지 않는 문제는 매우 흔하다.터미널에서는 정상conda activate 후 실행하면 정상systemctl로 띄우면 실패이 문제는 설정 실수가 아니라, conda와 systemd의 설계 철학이 근본적으로 다르기 때문이다.이 글에서는왜 systemd에서 conda 서비스가 안 뜨는지,그리고 실무에서 어떻게 해결해야 하는지를 정리한다.1. systemd는 쉘 초기화를 거치지 않는다가장 중요한 차이점부터 보자.터미널에서 실행할 때로그인 쉘 실행.bashrc, .bash_profile 로드conda 초기화 자동 적용conda activate 정상 동작systemd에..
같은 PyTorch인데 왜 설치 방법에 따라 지옥이 갈릴까?PyTorch를 CUDA 환경에서 설치할 때 대부분 한 번쯤 겪는다.pip install torch → 에러conda install pytorch → 갑자기 잘 됨서버에선 또 안 됨Docker에선 다시 다름이 글에서는 CUDA + PyTorch 환경에서 pip와 conda가 근본적으로 무엇이 다른지,그리고 언제 무엇을 써야 하는지를 실전 기준으로 정리한다.1. 핵심 결론 요약구분pipcondaCUDA 포함 여부❌ (wheel에 포함)⭕ (패키지로 관리)libc / libstdc++OS 의존conda가 제공설치 안정성환경 의존매우 안정운영 서버⭕❌연구/실험△⭕Docker 궁합⭕△한 줄 요약하면:pip은 OS에 맞춰 얹는 방식,conda는 CUDA ..
PyTorch/Transformers 이미지가 수 GB 되는 이유와 실전 다이어트 전략ML 서비스(특히 PyTorch/Transformers/Whisper/LLM)를 Docker로 패키징하면 이미지가 쉽게 수 GB가 된다.쿠버네티스 배포가 느려지고, 레지스트리 저장비가 늘고, CI 빌드 시간도 폭발한다.이 글은 “이미지 크기가 커지는 원인”을 짚고, 실제로 효과가 큰 줄이는 방법을 우선순위대로 정리한다.1. 왜 ML 이미지는 기본이 수 GB인가?가장 흔한 원인은 다음 조합이다.base 이미지가 큼: nvidia/cuda:*, pytorch/pytorch:*빌드 도구 포함: gcc, make, cmake, gitPython 휠이 GPU/BLAS 포함: torch, xformers, onnxruntime-g..
“연구용 도구를 운영에 쓰면 왜 문제가 될까?”conda는 ML 연구 환경에서는 거의 필수 도구다.하지만 운영 서버에서 conda를 쓰는 순간, 문제는 확률이 아니라 시간 문제가 된다.이 글에서는운영 환경에서 실제로 자주 발생하는 conda 사고 사례를 정리한다.1. 서버 재시작 후 서비스가 안 뜬다 (conda activate 문제)상황systemd 서비스로 Python API 서버 운영실행 커맨드: ExecStart=/opt/conda/envs/app/bin/python app.py 평소엔 잘 됨장애 발생서버 재부팅 후 서비스 실패로그: ImportError: libstdc++.so.6: version `GLIBCXX_3.4.29' not found 원인conda 환경은 쉘 초기화(.bashrc) 를..
Python 환경 관리, 언제 무엇을 써야 할까?Python 프로젝트를 하다 보면 반드시 마주치는 질문이 있다.“conda, venv, Docker 중에 뭐가 정답인가요?”결론부터 말하면 정답은 하나가 아니다.용도에 따라 “써야 할 도구”가 완전히 다르다.이 글에서는연구 / 개발 / 서버 운영 관점에서conda, venv, Docker를 명확하게 비교해본다.1. venv — Python 표준 가상환경개념venv는 Python 공식 표준 가상환경이다.Python 패키지(pip)만 격리하고, OS 라이브러리는 그대로 사용한다. python3 -m venv venv source venv/bin/activate pip install requests 특징Python 패키지만 관리시스템 Python과 분리매우 가볍..
SonarQube를 Docker로 띄웠는데 다음과 같은 증상을 겪은 적이 있을 것이다.컨테이너는 Up 상태포트(9000)도 열려 있음그런데 curl http://localhost:9000 하면 Connection refused로그를 보면 Elasticsearch가 계속 죽었다 살아남로그에는 보통 아래와 같은 메시지가 반복된다. bootstrap check failure: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 이 글에서는 이 오류의 정확한 원인과vm.max_map_count가 도대체 무엇인지,왜 SonarQube에서 필수인지 정리한다.vm.max_map_count란 무엇인가?vm...