[모던 c++] 값의 범주(Value Category), 이동 의미론 (move semantics) C++의 값의 범주와 이동 의미를 이해하면 복사 없이 자원을 효율적으로 다루는 방법을 알 수 있다. 이 글에서는 값의 범주(lvalue, rvalue)부터 시작해 std::move, T&&, 이동 생성자와 noexcept까지, 모던 C++의 핵심 개념을 단계적으로 정리해 보았다.
c++ [모던 C++] 객체의 전달 방식 – 값, 참조, 포인터, 복사의 차이와 의미 보존 C++에서 객체를 함수로 넘길 때 사용하는 값(value), 참조(reference), 포인터(pointer)는 어떤 차이를 가질까? 복사 비용, 슬라이싱, 수명 문제, 의미 보존까지 실제 코드를 통해 자세히 설명한다. 또한 const &가 왜 특별한지, 복사 불가능한 타입과 다형성까지 어떻게 안전하게 전달할 수 있는지를 정리한다.
[모던 C++] 코드가 간결해지는 문법 4가지 — auto, decltype, nullptr, range-based for c++ 98 / 03 시절의 코드는 매우 장황했다. 타입을 일일이 명시해야 했고, 반목문은 반복자(iterator)의 시작과 끝을 직접 지정해야 했다. 모던 C++은 이런 불편함을 개선하기 위해 타입 추론과 코드 간결화에 초점을 맞추었다. 그 중에서도 본문에서는 코드를 크게 단순화 시켜주는 4가지 문법 (auto, decltype, nullptr, range-base for)에 대해서 살펴본다.
자료 구조 [자료구조 기초] 추상 자료형 (ADT) - 스택 · 큐 · 덱 스택과 큐는 배열이나 연결 리스트 같은 시퀀스 자료구조 위에 구현되는 대표적인 추상 자료형(ADT)이다. 스택은 후입선출(LIFO), 큐는 선입선출(FIFO) 규칙을 따르며, 각각의 연산 규약과 활용 사례가 다르다. 본 글에서는 스택과 큐의 개념 차이와 주요 특징을 비교 표로 정리한다.
c++ [모던 C++] RAII와 스마트 포인터 C++에서 자원 관리는 안전성과 직결된다. 본 글에서는 RAII 개념과 스마트 포인터(unique_ptr, shared_ptr, weak_ptr)를 다루며, 예제 코드와 함께 자원을 안전하게 관리하는 모던 C++ 방식을 소개한다.
c++ [모던 C++] 모던 c++ 소개 모던 C++은 단순히 문법 몇 개가 추가된 것이 아니라, C++를 현대적으로 사용하는 방식을 총칭한다. RAII와 스마트 포인터를 통한 안전한 자원 관리, auto와 lambda를 통한 간결한 코드, move semantics와 동시성 지원을 통한 성능 최적화를 제공한다. 올드 C++과 모던 C++의 차이를 표로 비교해 확인해보자.
알고리즘 [탐색 알고리즘] 값 탐색 - 선형탐색, 이분탐색 탐색 알고리즘은 원하는 데이터를 찾는 기본적인 방법이다. 배열에서는 선형 탐색과 이분 탐색이, 그래프와 트리에서는 DFS와 BFS가 대표적이다. 이 글에서는 특히 값 탐색에 초점을 맞춰 선형 탐색과 이분 탐색의 개념, 복잡도, STL 활용법을 정리한다.
알고리즘 [Lv2] 가장 큰 수 (정렬) 여러 정수가 주어졌을 때, 이어붙여 만들 수 있는 가장 큰 수를 구하는 문제다. 핵심은 단순 정렬이 아니라 두 수를 문자열로 변환해 a+b와 b+a를 비교하는 사용자 정의 정렬을 적용하는 것이다. 이 글에서는 C++ STL의 std::sort와 람다를 활용한 풀이를 설명한다.
알고리즘 [알고리즘 기초] 정렬 - 버블 정렬, 퀵 정렬, 병합 정렬, std::sort등 버블 정렬, 퀵 정렬, 합병 정렬, 그리고 C++ 표준 라이브러리 std::sort를 비교해보며 각 알고리즘의 특징과 장단점을 정리합니다. 알고리즘 공부를 위한 기초부터 실무에서 가장 많이 쓰이는 정렬 함수까지 한눈에 확인할 수 있습니다.
자료 구조 [Lv2] 올바른 괄호 문제 해당 문제 해결 전 자료 구조에 대해서 알고싶으신 분들은 아래 포스팅 참고해주시면 됩니다. 시퀀스 자료구조 — 배열·연결 리스트·스택·큐자료구조를 ‘창고 정리법’에 비유해 시퀀스 구조의 본질을 설명합니다. 배열·연결 리스트·스택·큐의 메모리 배치와 연산 특성, 선택 기준을 간단한 STL 코드(std::array/list/stack/queue)로 정리했습니다.
자료 구조 [Lv1] 같은 숫자는 싫어 해당 문제 해결 전 자료 구조에 대해서 알고싶으신 분들은 아래 포스팅 참고해주시면 됩니다. 시퀀스 자료구조 — 배열·연결 리스트·스택·큐자료구조를 ‘창고 정리법’에 비유해 시퀀스 구조의 본질을 설명합니다. 배열·연결 리스트·스택·큐의 메모리 배치와 연산 특성, 선택 기준을 간단한 STL 코드(std::array/list/stack/queue)로 정리했습니다.Gibeom
자료 구조 [자료구조 기초] 시퀀스 자료구조 1 - 배열·리스트 자료구조를 ‘창고 정리법’에 비유해 시퀀스 구조의 본질을 설명합니다. 배열·연결 리스트·스택·큐의 메모리 배치와 연산 특성, 선택 기준을 간단한 STL 코드(std::array/list/stack/queue)로 정리했습니다.
자료 구조 [자료구조 기초] 자료 구조란? 자료구조는 데이터를 저장·조직·접근하는 규칙이며, 알고리즘은 문제를 해결하는 절차다. 좋은 알고리즘도 적절한 자료구조 없이는 성능을 발휘할 수 없다. 본 글에서는 자료구조의 개념, 중요성, 알고리즘과의 관계를 정리하고 실무에서 왜 중요한지 살펴본다.
알고리즘 [Lv1] 소수 찾기 - 복잡도 입력 n 이하 소수의 개수를 구하는 문제를 단계별로 최적화한 풀이를 정리했습니다. 단순 브루트 포스 방식부터 제곱근까지만 검사하는 방법, 그리고 가장 빠른 에라토스테네스의 체까지 C++ 코드와 채점 결과, 성능 비교를 한눈에 볼 수 있습니다.
알고리즘 Featured [알고리즘 기초] 복잡도 - 시간 복잡도와 공간 복잡도, Big-O 표기법 시간복잡도는 “입력 크기 n이 커질 때 실행 시간이 얼마나 늘어나는가”, 공간복잡도는 “추가 메모리를 얼마나 쓰는가”를 점근적으로 평가한다. 상수/하드웨어/캐시의 영향은 실무에서 크지만, 알고리즘 비교의 1차 기준은 여전히 Big-O다.
spdlog 기반 로깅, Logdy 연동 실시간 모니터링 환경 구축 실제 프로젝트 업무에서 spdlog 기반 로깅 체계를 도입하고 Logdy 서버와 연동한 실시간 모니터링 환경을 구축했다. 에이전트와 테스트 모듈을 통해 장비 로그를 수집·전송하며, Aging 테스트 및 Watcher를 결합하여 장비별 동작을 실시간으로 검증할 수 있도록 했다. 이를 통해 운영 환경에서 로그 분석 속도를 개선하고 문제 대응 체계를 강화했다.
직무경험 Featured 자체 CI/CD 시스템(Jenkins 유사) 설계·적용, 테스트 자동화 신입 온보딩 프로젝트로 자체 CI/CD 시스템을 설계부터 구현까지 단독으로 수행했다. Bitbucket과 연동하여 특정 브랜치·커밋 단위로 자동 빌드가 이루어지고, 장비별 패키지 생성 후 기본 테스트가 실행되도록 구성했다. 결과는 알림으로 제공되어 개발 효율성과 품질 관리 체계를 동시에 강화할 수 있었다.
직무경험 Wireshark 커스텀 디섹터 개발 및 V2X 패킷 분석 Windows 환경의 Wireshark에 SAE J2735 해석을 위한 커스텀 디섹터를 적용하고, V2X 트래픽을 분석하는 업무에 참여했다. 소스 빌드·플러그인·Lua 포스트디섹터 등 다양한 방식으로 디섹터를 구성했으며, 표준 규격 범위 내에서 패킷 해석 품질을 높였다. 본 문서에서는 제품·고객 정보를 노출하지 않도록 보안 가이드를 준수하는 한에서 직무 경험을 정리했다.
직무경험 Featured V2X-EE 차량용 보안 모듈 개발 주니어 개발자로서 AutoCrypt V2X-EE 제품 개발에 참여하였다. 모던 C++ 기반 보안 모듈 일부 기능을 구현하고, PKI 기반 인증서 관리 기능 및 보안 프로토콜 테스트를 지원했다. 또한 국제 표준 검증 과정에 참여하며 차량용 보안 통신의 실무 경험을 쌓았다.
대외활동 경북 테크노파크 소프트웨어인재양성사업 참가 경북 테크노파크 소프트웨어인재양성사업에 선정되어 참가하였다. 현대자동차 계열사의 현직자로부터 직접 멘토링을 받으며 산업 현장의 시각과 실무 경험을 배울 수 있었다. 이를 통해 진로 탐색과 전문성 개발에 큰 도움을 얻었다.
졸업연구 Featured V-SLAM과 EndToEnd Driving을 결합한 카메라 기반 자율주행 시스템 개발 본 프로젝트는 Visual SLAM과 End-to-End Driving 기술을 결합하여 자율주행 소프트웨어 성능을 개선한 연구이다. 카메라를 활용해 환경을 인식하고, 주행 경로와 속도를 결정하는 과정을 학습시켜 실제 도로 주행을 수행했다. 이를 통해 딥러닝 기반 자율주행 기술의 성능 한계를 극복하고 발전 가능성을 확인했다.
산학연구 LIDAR SLAM으로 얻은 Trajectory를 기준으로 Visual SLAM 성능 평가 본 프로젝트는 LiDAR SLAM으로 얻은 Trajectory를 활용하여 Visual SLAM의 성능을 평가한 연구이다. LOAM SLAM을 통해 생성된 Trajectory와 Visual SLAM의 결과를 비교 분석하였으며, APE와 ATE 지표를 활용해 성능을 검증하였다. 이를 통해 SLAM 알고리즘에 대한 이해도를 높이고 자율주행 기술에 적용할 수 있는 기반을 마련하였다.
산학연구 PilotNet을 활용한 카메라 기반 자율주차 소프트웨어 개발 본 프로젝트는 PilotNet 딥러닝 네트워크를 활용하여 카메라 기반 자율주차 소프트웨어를 개발한 연구이다. 데이터셋 불균형과 오버피팅 문제를 해결하기 위해 다양한 데이터 구성과 모델 최적화를 수행하였고, 시뮬레이션을 통해 성능을 검증하였다. 이를 통해 정확도와 일반화 성능을 향상시키며 자율주행 소프트웨어의 활용 가능성을 확인하였다.
산학연구 Featured SIFT Descriptor 를 이식한 Cubemap SLAM 성능 평가 CubemapSLAM의 성능을 개선하기 위해 ORB Feature 기반 알고리즘을 보완하고, 어안렌즈 카메라 Calibration 및 SIFT Descriptor를 적용하여 공인기관 인증까지 획득한 프로젝트.