선언과 정의.
선언( declaration )
선언이 프로그래밍 언어에 존재하는 이유는 세상속에서 선언이 갖는 가치와 같다.
구체화 하지 않은 수많은 약속들을 사람들 사이에 알리기 위해 우리는 선언을 활용한다.
예를 들자면, 만난지 한 시간도 안된 여성에게 다가가,
우리 사귀자! ( 동사를 바꾸면 19금 가능 )
이런 경우겠지.
공감할 컨텍스트가 있는 경우엔 ( 여성도 어지간히 외로웠다든지 ) 그게 또 통하는 경우가 있다.
특히 이런 상황은 어린 아이들 사이의 놀이에서 자주 등장한다.
우리 소꿉놀이하자!
구래!
내가 아빠고 네가 엄마야!
구래!
뭐 이런.
유치하지 않은가?
선언은 작위적이다.
하지만 효과적으로 협동할 수 있는건 사실이다.
당연히 배경지식이 거의 없는 바보 멍탱구리 컴파일러에게 협동을 요구할 때도, 선언은 유용하게 된다.
정의( definition )
상대방도 협력의 의사를 표해 올 경우 ( 구래! ) 역할과 책임의 범위에 대한 정의가 필요해진다.
군데 아빠는 뭘 하는거고 엄마는 뭘 하는거야?
라는 질문에 답하지 않으면 아무것도 할 수 없다. ( 데꿀멍? )
이에 필요한 구체적인 사항들을 명백히 하는 것이 정의다.
하지만 막상 정의를 해 보면 그 정의 안에서도 수 많은 다른 개념들을 차용해야 한다.
이 때, 정의 안에서 또다른 세부 정의를 풀어쓰는 것 보다는,
선언된 다른 개념을 활용하는 것이 ( 호출 ) 효과적이라는 것.
아빠는 요리 재료를 찾아올테니까, 너는 요리를 해!
앙~ 군데~ 요리가 뭐야?
( 슈발~ )
이래서 수준에 맞는 애랑 놀아야 된다.
그러니 다시 한 번 말하지만,
컴파일러에게 니 생각을 일일이 가르치기 귀찮으면 프레임웍을 써라.
여러분이 살면서 얼마나 세련된 문장을 생활속에서 사용하는가?
밥 먹자.
고마 자자.
공부 하자.
개소리 그만해라.
수준이지?
프로그래밍도 별반 다를 바 없다.
우리는 크게는 명사와 동사, 작게는 주어, 목적어, 동사 에만 집중해도 대부분의 일을 할 수 있다.
약간의 수식어가 필요한 경우도 있지만 말이다.
좋은 글 감사합니다
좀더 공학적으로 써주시믄 안댐? 너무 인문학적임
남녀공학적으로 썼다고 생각합니다.
이 예시도 제법 구체적인데 흠냐. 어차피 C++ 에서 정의와 선언들이 쏟아져 나오니까, 여기서 설명한 내용을 기억해서 다음 강좌들을 읽어주시면 됩니다.
C++ 강좌에 예시를 보이기에 앞서 좀 일반화를 건 것이라서요.
추천 드렸습니다