옵션 |
|
print 함수가 쉽다 ?
프로그램 처음 배우시는 분들이 많이 하는 생각이 'print 명령어' 가 쉽다고 한다.
print("Hellow World!!"); : Hellow World!! 가 화면에 나오게 되는 실행 명령이다.
동작이 이해하기 쉽고, 결과가 눈에 보이기 때문에 쉽다고 생각한다.
여기서 한발 더 나아가 보라.
어떻게 하면 이런 결과를 만들까?
따옴표 안에 어떤 글자든지 모니터에 나오게 하려면, 어떤 과정을 거칠까?
글자가 아니라, 점하나는 어떻게 모니터에 표시 되는가?
점의 위치는 모니터에서 어떻게 정해지는가?
컴퓨터는 어떻게 해석하고, 모니터로 어떻게 보내야하나?
머리가 아파질 것이다.
결론적으로 프로그램 명령어 중에 이해하기 어려운 명령어가 print 명령어다.
우리는 단순하게 따옴표안에 글자가 화면에 나온다로 생각하여 쉽다고 생각한다.
이것을 다른 명령어에 적용해보는 것이 어떨까?
어려운 것도 쉽게 하는데, 다른 쉬운 것은 더 쉽지 않을까?
이것을 이해하는 것이 모듈과 인터페이스다.
내부 동작은 모르지만, 내가 어떤 입력을 주면, 원하는 결과를 얻는 것이다.
단순동작들이 모여서 하나의 큰 단위의 동작을 무리 없이 하게 하려는 것이, 모듈과 인터페이스 설계이다.
너무 친숙하게 많이 들어온 단어여서, 쉬운 단어라고 생각하시는데, 막상 특급 개발자들도 이해 못한 경우를 종종 본다.
경험을 이야기 하면,
멀티미디어 플래폼 개발을 하려고, 새로운 팀에 뒤늦게 합류한 적이 있느데, 경험 있는 개발자 한 분이 모듈과 인터페이스로 나누어서 설계를 하고 있었다.
당시 다른 특급 개발자들은 뭐라고 하는지 이해안된다고 하며, 그 분과는 같이 이야기 하지 않아도 된다고 나에게 충고를 했다.
그 분의 설명을 직접 들어 보니, 합리적이며 논리적인 좋은 설계였다.
'다 이해 했냐?'는 질문에 "모듈과 인터페이스 개념으로 이해 했습니다."라고 답변 주었다.
간단히 적어서 당시 상황이 전달이 되지 않는데, 당시 상황은 진정한 특급개발자가 그렇지 않은 사람들에게 왕따를 당하고 있는 것이었다.
그 이유는 "자신들이 이해하지 못한다."였다.
무늬만 특급인 것이다.
모듈과 인터페이스는 쉬운 말로 많이 생각하는데, 그건 간단한 개념일 뿐이고, 실제 설계에서는 가장 어려운 것 중 하나이다.
철학에서 말하는 '상호존중'이 쉬운 말이나, 현실에서 복잡하게 따지면 어려워 지는 것과 같은 원리이다.