
[Article] 개발자의 평생공부
기술은 끊임없이 변하고, 개발자는 그 흐름 속에서 계속 배우고 성장한다. 새로운 언어, 도구, 아키텍처를 익히며 경험을 쌓아가는 과정을 간단히 정리한다.

기술은 끊임없이 변하고, 개발자는 그 흐름 속에서 계속 배우고 성장한다. 새로운 언어, 도구, 아키텍처를 익히며 경험을 쌓아가는 과정을 간단히 정리한다.

HTTP는 클라이언트와 서버 간에 요청(Request)과 응답(Response)을 주고받는 텍스트 기반 프로토콜이다. 요청/응답 라인, 헤더(Header), 바디(Body)로 구성되며, 메서드(GET, POST 등)와 상태 코드(200, 404 등)가 핵심 요소다.

pyenv는 여러 Python 버전을 손쉽게 설치하고 전환할 수 있게 해주는 버전 관리 도구다. 프로젝트별로 서로 다른 Python 버전을 독립적으로 유지할 수 있도록 지원한다.

Poetry는 Python 프로젝트의 의존성 관리와 패키징을 통합적으로 처리하는 도구다. pyproject.toml 기반으로 라이브러리 버전 관리, 가상 환경 생성, 빌드 및 배포를 일관되게 지원한다.

__declspec(dllexport)는 Windows에서 DLL을 만들 때 외부로 공개할 심볼(함수·클래스)을 내보내는 지정자다. __declspec(dllimport)는 해당 DLL의 심볼을 외부 프로젝트에서 가져와 사용할 때 지정한다. 동적 라이브러리의 심볼 가시성과 링크 방식을 제어하는 키워드다.

Package는 find_package()를 통해 외부 라이브러리를 탐색하고 사용하는 개념이다. Property는 타겟이나 디렉토리에 설정되는 메타 정보로, 컴파일 옵션·include 경로 등 동작을 제어한다. Export는 현재 프로젝트의 타겟을 다른 프로젝트에서 find_package()로 사용할 수 있도록 내보내는 기능이다.

Generator Expression은 $<...> 형식으로 작성되며, 빌드 시스템 생성(Generate) 단계에서 조건에 따라 값이 평가되는 표현식이다. 빌드 타입(Debug/Release), 플랫폼, 컴파일러 등에 따라 옵션이나 링크 설정을 유연하게 제어할 수 있다.

add_custom_command()는 빌드 과정 중 특정 파일을 생성하거나 외부 명령을 실행하기 위한 규칙을 정의한다. add_custom_target()은 실제 출력 파일과 무관하게, 사용자 정의 빌드 단계를 하나의 타겟으로 만드는 데 사용된다.

Imported Target은 외부 라이브러리를 CMake 타겟처럼 사용할 수 있게 만든 객체다. find_package()로 생성되며, include 경로와 링크 정보를 함께 포함한다.

xxx-config.cmake는 find_package()가 Config Mode로 패키지를 찾을 때 사용하는 설정 파일이다. 라이브러리가 자신의 include 경로와 링크 정보를 직접 제공한다.