삽질중 의문점 하나.

C로 작성된 어떤 오픈소스 프로그램이 있습니다(어떤 프로그램인지는 비밀입니다).

그 프로그램에는 20개를 넘는 소스 파일과 헤더 파일이 있습니다.

이 20개를 넘는 소스 파일과 헤더 파일의 내용을 하나의 소스 파일로 전부 합친 다음 컴파일하고 실행해 보았습니다.

잘 돌아갑니다. 더 나아가서는 실행 파일 크기가 20개를 넘는 그 상태에서 컴파일했을 때 크기의 4분의 1 정도가 되어 있습니다.

이쯤 되니 궁금해졌습니다. 이 프로그램도 그렇고 다른 프로그램들도 그렇고 왜 파일을 저렇게 몇십 개로 쪼개서 프로그램을 만드는 걸까요?

상용 프로그램이 아니라면, 그래서 굳이 다른 사람들이 소스 내용을 알아보기 어렵게 할 필요가 없다면 그냥 파일 하나로 해도 될텐데 말입니다.

파일을 하나로 하면…
나중에 고칠 때 알아보기 어렵습니다. ㅡ_ㅡ;;
제가 지금 하는 프로젝트가 파일이 70개가 넘는데… 그게 다 합쳐져 있다면… 생각하기 싫습니다.

유지보수를 쉽게하기 위해서라고 이해하시면 되겠습니다.
실제로 큰 클래스를 작게 쪼개는 방법이 나와있을 정도이니까요.
적당히 쪼개져 있으면 개개의 성능에 더 집중할 수 있고
고칠 때도 그 파일만 고쳐서 그 오브젝트만 다시 컴파일하고 결합하면 되니까요.

모듈화는 프로그래밍의 기본이죠.

특정 기능/함수 별로 파일을 따로 만들어

기능/함수가 잘못되면 그 파일만 다시 고치면되요

그뿐아니라 make 파일같은거 보시면 아시겠지만 그런 구조이면 컴파일할때도 시간을 많이 절약할 수 있습니다.

남들은 안볼 내 옷장이지만
착착 개어서 놓고, 웃옷은 웃옷끼리, 바지는 바지끼리
속옷은 속옷끼리 정리하는 거랑 비슷하지 않을까요?

필요할때 찾기 쉽고, 정리해두면 공간도 저장됩니다.

프로그램도 소스파일로 여러개 쪼개 놓으면
class나 function call을 이용해서 tab 사용을 최소화해서
프로그램의 한줄당 79~80 char 제한에 문제가 없고
큰놈만 볼때 편하며, 작은 놈은 필요할때 찾아보면되니
그렇게 나눠 놓지 않나… 생각해봅니다.

하지만 기능이 별로 안되거나 소스가 몇줄 안되면(500줄 내)
저는 그냥 뭉텅이로 짜놓습니다. :D
(귀찮잖아요… :? )