GoogleTest: 실수하기 쉬운 GTest 코드 패턴
🔁 테스트 코드 리팩토링: 실수하기 쉬운 GTest 코드 패턴 ⚠️ 문제 1: 테스트 중복 코드 여러 테스트 함수에 같은 초기화 코드가 반복된다면 Test Fixture를 활용해 중복 제거하세요. 🔴 나쁜 예: TEST(MyTest, Case1) { std::vector<int> v = {1, 2, 3}; EXPECT_...
🔁 테스트 코드 리팩토링: 실수하기 쉬운 GTest 코드 패턴 ⚠️ 문제 1: 테스트 중복 코드 여러 테스트 함수에 같은 초기화 코드가 반복된다면 Test Fixture를 활용해 중복 제거하세요. 🔴 나쁜 예: TEST(MyTest, Case1) { std::vector<int> v = {1, 2, 3}; EXPECT_...
GoogleTest: 실무에 바로 쓰는 GTest & GMock 가이드 단위 테스트는 코드 품질과 유지보수성 확보에 필수입니다. 이 글에서는 실무에서 자주 쓰는 GoogleTest 매크로와 Test Fixture, Mock 사용법까지 중급 테스트 작성법을 다룹니다. 📌 1. 자주 쓰는 GoogleTest 매크로 정리 GoogleTest...
GoogleTest 설치부터 첫 테스트까지 C++ 프로젝트에서 단위 테스트는 코드의 안정성과 유지보수를 위한 필수 도구입니다. 이 글에서는 GoogleTest(GTest)를 설치하고 간단한 테스트 코드를 작성하여 실행하는 방법까지 단계별로 소개합니다. 📦 1. GoogleTest 설치 방법 GoogleTest는 GitHub에 공개된 오픈소스 ...
Jenkins Pipeline 사용법 가이드 Jenkins Pipeline은 CI/CD 흐름을 코드로 정의하여 더욱 효율적이고 일관성 있는 자동화 작업을 가능하게 합니다. 이 문서에서는 Pipeline 플러그인의 역할, 기본 구조, 주요 기능, 예제까지 자세히 소개합니다. ✅ Jenkins Pipeline이란? Pipeline은 Jenkins...
Jenkins 설치 가이드 Jenkins는 오픈 소스 기반의 자동화 서버로, CI/CD(지속적 통합 및 배포) 파이프라인을 구현할 때 가장 널리 사용되는 도구 중 하나입니다. 이 포스트에서는 Ubuntu 기반 리눅스 환경에 Jenkins.war 파일을 이용하여 설치하는 방법을 소개합니다. 1. Java 설치 Jenkins는 Java 기반 애플리...
valgrind 사용법과 메모리 누수 잡기 — 실습 가이드 C 프로그램을 작성할 때 가장 흔한 실수 중 하나는 메모리 누수(memory leak)입니다. 이 문제를 자동으로 찾아주는 강력한 도구가 바로 valgrind입니다. 이번 글에서는 valgrind 사용법과 메모리 누수 예제 분석을 실습 중심으로 다룹니다. 🔧 valgrind 설치 ...
내가 자주 쓰는 gdb 명령어 모음 + 단축키 정리 gdb는 강력한 디버깅 도구지만, 명령어가 많아 처음엔 어렵게 느껴질 수 있습니다. 이 글에서는 제가 실무와 학습 중에 자주 사용하는 gdb 명령어와 단축키를 정리해 봤습니다. 필요할 때 빠르게 찾아보고 바로 쓸 수 있도록 구성했어요! 🛠️ 기본 디버깅 명령어 ...
gdb로 C 메모리 구조 분석하기 — 실습 중심 튜토리얼 C 언어를 사용하다 보면 어느 순간 마주하게 되는 Segmentation Fault, 버퍼 오버플로우, 메모리 누수. 이럴 때 진짜 무기를 꺼내야죠 — 바로 gdb입니다. 이 글에서는 gdb로 Stack / Heap / 전역 변수 등을 직접 추적하며 시각적으로 메모리를 분석하는 방법을 단계별...
C에서 메모리 구조(stack/heap/static)를 시각적으로 이해하기 C 프로그램은 실행될 때 운영체제에 의해 여러 영역으로 나뉜 메모리를 사용합니다. 이 메모리 구조를 잘 이해해야 포인터, 메모리 할당/해제, 버그 원인 파악에 능숙해질 수 있습니다. 📦 C 메모리 구조 요약 위 구조는 프로세스 메모리 공간의 대표적인 구성입니다...
signal 핸들링과 trap — C에서 프로세스를 안전하게 제어하기 리눅스에서 실행 중인 프로세스는 다양한 “신호(Signal)”를 받을 수 있습니다. 사용자가 Ctrl+C를 눌렀을 때, 또는 잘못된 메모리에 접근했을 때 발생하는 이 신호들을 적절히 핸들링(handle) 하면, 프로그램이 갑작스레 종료되는 상황을 막고, 로그 저장, 자원 해제 같은...