블로그
-
#ifndef vs #pragma once: C++ 헤더 가드의 동작 원리와 선택 기준
#ifndef 가드와 #pragma once가 전처리기에서 각각 어떻게 중복 포함을 막는지 비교하고, 가드 매크로 이름 충돌, 같은 파일을 가리키는 여러 경로에서 pragma once가 헷갈리는 경우, 순환 포함 문제와 C++20 모듈과의 관계를 설명합니다.
-
C++ extern과 링키지: 전역 변수 공유, 내부·외부 연결, C 함수 연동
전역 변수를 여러 .cpp에서 공유하려면 헤더에는 extern 선언만, 정의는 한 파일에만 두어야 합니다. 내부·외부 연결의 차이, extern과 static 비교, const 전역의 기본 링키지, extern "C"로 C 라이브러리와 연동하는 방법을 예제로 봅니다.
-
C++17 실행 정책 seq·par·par_unseq: 병렬 알고리즘과 데이터 레이스 함정
C++17 실행 정책으로 병렬 알고리즘을 구현하는 방법. seq, par, par_unseq 정책 비교, std::transform, std::sort 병렬화 실전 예제와 데이터 레이스·오버헤드 함정을 정리합니다.
-
C++ CRTP: 가상 함수 없이 정적 다형성 구현하기와 C++23 deducing this
C++ CRTP(Curiously Recurring Template Pattern)로 가상 함수 없이 정적 다형성을 구현하는 방법을 카운터 믹스인, 비교 연산자 자동 생성, 싱글톤, 체이닝 인터페이스 예제로 정리합니다. 가상 함수와의 성능 비교와 캐스팅·순환 의존 함정까지 다룹니다.
-
C++ 복사 생성자와 이동 생성자: 호출 시점, Rule of Five와 Rule of Zero
C++ 복사 생성자와 이동 생성자가 호출되는 시점을 동적 배열, 파일 핸들러, 간단한 스마트 포인터 예제로 보여 주고, Rule of Five와 Rule of Zero, 얕은 복사·자기 대입·noexcept 누락 문제를 설명합니다.
-
ModuleNotFoundError: No module named 해결: pip install 했는데 모듈이 없다고 나올 때 (윈도우·맥·리눅스)
pip install로 설치했는데 ModuleNotFoundError가 나는 가장 흔한 이유는 pip와 python이 서로 다른 인터프리터를 가리키기 때문입니다. python -m pip, sys.executable, venv 활성화 오류, VS Code·Jupyter 인터프리터, cv2·sklearn 같은 이름 차이, 상대 import 오류를 순서대로 확인합니다.
-
npm ERR! ERESOLVE unable to resolve dependency tree 해결: peer dependency 충돌 읽는 법과 --legacy-peer-deps 대신 할 일
npm install이 ERESOLVE unable to resolve dependency tree로 실패할 때 Found·peer 줄 읽는 법과 업그레이드, 호환 버전, overrides, --legacy-peer-deps, --force 순의 해결법과 위험을 설명합니다.
-
도커 permission denied /var/run/docker.sock 오류 해결: docker 그룹 추가와 재로그인, chmod 666을 쓰면 안 되는 이유
리눅스에서 docker 명령이 /var/run/docker.sock permission denied로 실패할 때 원인을 확인하고 docker 그룹 추가, 재로그인, rootless Docker, snap·Docker Desktop·CI·소켓 마운트 환경별 해결법을 정리합니다.
-
pip install 오류 error: externally-managed-environment 해결 방법 (우분투 24.04·데비안 12·맥 Homebrew)
우분투 23.04 이상, 데비안 12, 맥 Homebrew Python에서 pip install이 externally-managed-environment로 막히는 이유(PEP 668)와 venv·pipx·apt·uv 해결 순서, --break-system-packages를 써도 되는 경우, Docker·cron·VS Code·sudo pip 문제까지 설명합니다.
-
JSON 직렬화에서 데이터가 사라지는 경우: Date·BigInt·순환 참조, 검증, 대용량 성능
JSON.stringify/parse, json.dumps/loads부터 Date·BigInt·순환 참조 데이터 손실, Zod/Pydantic 검증, 대용량 페이로드 성능까지 언어 무관으로 정리한 직렬화 가이드.