기존에는 header 파일에 선언부를, cpp 파일에 구현부를 작성을 했습니다. 다만 template의 경우에는 컴파일 타임 때 코드를 생성해야하다보니 결과적으로 header에 모든 코드가 들어가야 하는 등의 묘한 부분이 있었습니다.
C++ 20으로 넘어오면서 "모듈"이라는 개념이 생겼습니다. 근데 간단하게 따지고 들면 사실 header가 하는 일이나 module이 하는 일은 크게 다릅니다.
하지만 가장 큰 차이점은 header는 정말로 h파일에 있는 내용을 물리적으로 복사한다는 점이고, module의 경우에는 한번 만들면서 binary 파일로 만들어버리게 됩니다. 그렇다보니 헤더 파일을 복사하는 과정이 필요하지도 않고, binary를 바로 link 해버리다보니깐 기존의 C++에서의 precompile 과정과 linkage 과정에서의 시간이 많이 절약이 됩니다.
결과적으로 header가 원래 이상적으로 했어야 하는 부분들을 모듈이 해내지 않았나 싶습니다. export module d...
원문 링크 : C++20] 모듈과 헤더, 그리고 template