조금 큰 규모의 프로그램 읽기는 올림피아드 문제를 푸는 것과는 조금 다른 양상을 띄게 됩니다. 올림피아드 문제를 푸는 과정은 코드도 길지 않기 때문에 메인 루프를 찾고 코드의 동작 방식을 파악하면 어렵지 않게 코드의 동작 결과나 의도하는 바를 예측할 수 있습니다. 그러나, 실제 현장에서 사용하는 조금 큰 규모의 프로그램을 읽기 위해서는 해당 코드를 빌드(Build)하여 완성된 프로그램으로 실행되는지 확인할 필요가 있고 구체적인 세부 기능들을 동작시켜서 실제로 접해보는 것이 선행되어야만 합니다. 프로그램을 동작시켜서 기능들이 실제로 어떻게 동작하는지 맛보았다면 코드를 읽는 과정에서 알고리즘의 작성 배경과 실행 결과를 예측할 수 있기 때문에 좀더 명확한 프로그램 읽기에 도움이 될 수 있습니다. 큰 규모의 프..
이번 글에서는 함수가 코드의 핵심 역할을 하는 문제들을 골라 보았습니다. C언어를 기반으로 프로젝트를 수행하다보면 개인적으로 자주 적용하는 프로그래밍 기법 중에 하나가 바로 모듈화 프로그래밍입니다. 모듈화 프로그래밍은 기능 단위로 코드를 나누어 작성하는 것으로 개별 기능을 함수 단위로 나눌 수도 있고 소스 코드 자체를 분할 할 수도 있습니다. C++과 같은 OOP(객체지향프로그래밍) 언어에서는 클래스를 사용해서 기능과 데이터등도 분리하여 묶을 수 있지만 C언어 에서는 데이터를 바라보는 범위(Scope)가 함수 내부인가 외부인가로 단순하게 나누어 지고 함수 외부의 경우 같은 소스인가 아닌가 정도로 나뉘어 지므로 C언어에서의 모듈화는 함수로 기능 나누기가 그 시작이 될 수 있습니다. 실제로 프로그램 작성 과..