최원태
가입: 2006년 9월 16일 올린 글: 369
|
올려짐: 2008년10월2일 21:36 주제: |
|
|
1.
glue-array-from-tree 계열에서는,
타입이 맞지 앉는 입력이 들어오면 에러를 내는 것이 맞습니다.
2.
상위레벨의 감싸는 부분은 하위레벨의 자세한 구현을 모르므로,
converting함수를 만들어서 쓰는 수 밖에 없겠죠.
자신이 좋아하는 방향으로 converting해도 좋습니다.
3.
converting을 어디까지 써야 하나?
아직 고민하지 않으신 분은 읽지 마세요.
이미 과제의 규모가 꽤 커져서,
어느 경우 정확하게 허용되고 어느 경우 정확히 허용되지 않는다고
case by case로 말씀드리기는 어렵습니다. 약간 우회적으로 설명할께요.
TACP 씀: |
기획자 A씨와 프로그래머 B씨, C씨 세 사람이 있습니다.
A씨는 "무늬를 표현하는 언어"와 "무늬를 심사하는 프로그램"을 원합니다.
아름답다는 것이 무엇인지 고민하다 보니 답이 금방 나오지 않을것 같더랍니다.
일을 빨리 긑내기 위해 "무늬를 표현하는 언어"를 먼저 만들고 계속 고민해야겠다 생각하지요.
필요할 것들을 정리해서 B씨와 C씨에게 각자 일을 시키고 본인은 고민을 계속합니다.
A씨가 아름다움을 고민하는 사이에 B씨와 C씨는 각자의 언어 구현을 마쳤습니다.
고민이 덜 끝났지만 A씨가 돌아와보니 B씨와 C씨는 엄청난 무늬를 각자의 언어로 만들고 있었습니다.
구현 자체는 질적으로 차이가 없는데, 둘이 만들어 놓은 무늬가 둘다 탐나더랍니다.
A씨는 B, C씨에게 주문합니다. "양쪽에서 만든 자료를 둘다 받아들이는 래핑을 만들어주세요"
B와 C씨는 열심히 래핑을 만들고 A씨는 고민을 계속합니다.
래핑도 완성되고 고민고 끝나서,
A씨는 드디어 "아름다운지 판단하는 프로그램"을 만들게 되었습니다.
만들려고 보니, 무늬에서 몇가지 성질을 추가적으로 뽑아내야 될 것 같더랍니다.
그래서 B,C씨에게 주문합니다 "이런 함수를 래핑에 추가해주세요"
B,C 두 사람은 각자의 하위 구현체에 함수를 추가하고 래핑에도 추가해주었습니다.
그것들을 가지고, 구현체에 신경쓰지 않고
A씨는 "아름다운지 판단하는 프로그램"을 완성할 수 있었습니다.
|
훈훈한 이야기지요?
여러분이 하는 과제의 추상화 레이어가 나타날 수 있는 시나리오입니다.
프로그램을 만들다보면 비슷한 일이 자주 일어납니다.
언어 정의만 있을 때, 실행기와 분석기를 동시에 만들어야 한다던지.
추상화된 DB위에서 돌도록 프로그램을 만들고 여러 DB와 물리게 중간계층을 설치한다던지.
이 정의를 구현하는데 저 정의를 사용해도 될까?
이 정의가 어느 추상화에 속해 있는지, 저 정의는 어느 추상화에 속했는지
아니면 두 추상화 단계의 자연스러운 연결고리인지. 구현상에 나타나는 뒷구멍인지.
A는 이것을 알아야할까? B가 이것을 사용할까?
이런 질문을 해 보세요. 사용해도 될지 명확해 질 겁니다. |
|