본문 바로가기

(비정기) Dlbo's Post

프로그램을 만들어 가는 과정. 3. 그냥 만들면 섭하지 -_-

흐음. 이거 뭔가 좀 날로 먹는 기분이 드는군요 ㄱ-

------------------------------------------------------------------------------------------------

자, 간단하게 구구단을 기준으로 한번 생각해봅시다.

우리가 한 줄에 한 개의 곱씩 구구단을 표현하려 하면, 가장 단순한 코드는 아래와 같이 되지요.



단순하지요?

i를 2부터 9까지,

j를 1부터 9까지 돌리면서 각각 i, j에 대한 곱을 구해 출력하니까요.

그런듸 ㅡ,.ㅡ

여기서 갑자기 디립따

"구구단 말고 원하는 곱 구하는 기능도 넣어봐."

라는 요청이 들어왔다고 합시다.

.....

요청자한테 돌던지지 마세요.

-_-;

코드를 처음부터 새로 갈아엎어야 하지요.

그.리.하.여

아예 처음부터 코드를 확장성이 용이하게 만들면 어떨까?

하여 아래와 같은 코드로 새로 구성할 수 있습니다.



흐음.

오히려 지저분해진 모양이지요?

더 지저분하게 고쳐보지요.



....

정말 지저분해 보이는군요.

하지만 어느정도 이런 변덕스러운 요청에 익숙한 프로그래머라면

오히려 깔끔하다고 하지요.

왜냐구요?

여기서 아까 저 까탈스러운 요청자의 내용을 추가해 봅시다.
 


 오호라, 쉽게 추가되는군요.

해당 함수만 새로 만들어서 케이스에 연결해 넣음 되지 않습니까?

대략 최초의 코드를 비유하자면 아래와 비슷하네요.

사용자 삽입 이미지

.......

잘 꽂으면 저렇게 되겠지만...

반복하면 깨지겠죠? -_-?

반면, 이후의 코드들은 레고와 같습니다.

언제든 덧붙이고 약간의 수정만을 통해 원하는 코드로 변형이 가능한것이지요.

프로그램 분석 포스트에서 띄운 것 처럼, 혹은 이전 포스트에서 소개한것처럼

Load&Initialize와 Control, Save, 정리의 4개 파트로 나누어 코드를 구성한다면

언제든 내부 확장이 용이해 집니다.

거기에 내부 함수들도 반복적으로 모듈분해화 시킬 경우 코드가 지속적으로 유지관리가

용이해집니다.

-_- 어때요, 참 쉽죠?

------------------------------------------------------------------------------------------

WoC W-Day 포스트는 좀 늦을듯 합니다.

디카가 집에 있는데 지금 집이 아닙니다 ㄱ-