shurain

Harmless stuff is for the weak.

추상화 레벨을 넘나들기

Nov 26, 14

복잡한 개념/시스템은 여러 겹의 추상화 레벨로 이루어진다. 그렇기에 복잡한 개념 혹은 시스템을 잘 다루기 위해서는 추상화 레벨을 넘나들 수 있어야 한다. 흔히 나무를 보지 말고 숲을 보라는 식으로 표현하지만 제대로 된 방법은 (당연하게도) 시각을 바꿔가며 나무도 보고 숲도 보는 것이다.

프로그래밍은 추상화 레벨을 자주 옮겨가며 작업해야만 한다. 개별적인 함수의 구현 등을 봐야 하고 함수 및 객체 사이의 관계를 생각할 때는 그보다 더 높은 추상화 레벨을 다루게 된다.1

개념을 공부하는 것도 크게 다르지 않다. 개념이 조금만 복잡해져도 이는 다양한 상하위 레벨의 추상화된 개념과의 관계로 많은 부분이 설명된다. 때로는 큰 그림을 그려보고 때로는 세부적인 것들을 살펴보며 추상화 레벨을 넘나들어야 개념의 이해가 더 빠르게, 더 단단하게 된다.


  1. The psychological profiling [of a programmer] is mostly the ability to shift levels of abstraction, from low level to high level. To see something in the small and to see something in the large.