분할 컴파일 (Modular Compilation)
C++에서 하나의 파일에 모든 코드를 작성하면 규모가 커질수록 유지보수가 어렵고, 컴파일 시간도 길어진다. 이를 해결하기 위해 여러 개의 소스 파일(.cpp)로 분리해서 작성하고, 필요한 선언만 헤더 파일(.h)에 담아 관리하는 것이 분할 컴파일이다.
분할 컴파일의 이점
- 컴파일 속도 개선 (변경된 파일만 재컴파일)
- 파일 간 기능 분리 및 코드 관리 용이
- 재사용성 향상 (여러 프로젝트에서 동일한 모듈 사용 가능)
// math.h
int add(int a, int b);
// math.cpp
#include "math.h"
int add(int a, int b) {
return a + b;
}
// main.cpp
#include <iostream>
#include "math.h"
int main() {
std::cout << add(2, 3);
return 0;
}
헤더 파일이 필요한 이유
헤더 파일은 함수나 클래스의 선언부만 따로 모아놓은 파일이다. 구현부와 분리하여 작성함으로써 컴파일러에게 인터페이스를 미리 알려줄 수 있다.
사용하는 이유
- 중복 선언 방지 - 여러 파일에서 같은 함수를 사용할 수 있도록 함
- 인터페이스 제공 - 구현을 숨기고 인터페이스만 외부에 노출
- #include로 편하게 가져오기
// math.h (헤더)
#ifndef MATH_H
#define MATH_H
int add(int a, int b);
#endif
※ 위처럼 include guard를 넣어 중복 포함을 방지해야 한다.
오늘의 깨달음
- 모든 코드를 한 파일에 쓰는 건 비효율적이다.
- 파일을 나누고 인터페이스를 정의하는 습관이 유지보수를 쉽게 만든다.
- 헤더 파일은 약속이다. "이 함수는 이렇게 생겼어!"라고 컴파일러에게 말해주는 약속.
'UE5 부트캠프(TIL)' 카테고리의 다른 글
[TIL] Unreal C++ - 이동, 거리, 이벤트 시스템 (0) | 2025.06.18 |
---|---|
[TIL] 도서관 기능 구현 (5) | 2025.06.13 |
[TIL] 템플릿과 STL 개념 정리 및 Vector Lib 구현해보기 (1) | 2025.06.11 |
[TIL] 상속 익숙해지기 (1) (1) | 2025.06.09 |
[TIL] C++ class OOP(객체지향 프로그래밍) (1) | 2025.06.05 |