추상화란 구체적인 것에서 핵심만을 간추려 내는 것이다.
구체와 추상은 상대적인 것이기 때문에 추상화에서도 수준이 생기게 된다.
1) "문서를 출력한다."
2) "문서를 프린터를 이용해 출력한다."
3) "문서를 와이파이 방식의 프린터 이용해 출력한다"
1) "문서를 편집한다"
2) "문서를 텍스트 에디터를 이용하여 편집한다"
3) "문서를 클라우드 서비스를 이용해 텍스트 에디터를 이용하여 편집한다"
1,2,3 순으로 추상화 수준이 점점 낮아진다. 1에서 더 추상화할 수 없다. 따라서 여기까지만 하면 된다.
우리가 작성하는 코드를 보았을 때 1,2,3이 순서대로 나오는가? 아니면 1,2는 없고 3만 나오지는 않는가?
1,2을 건너뛰고 3의 코드를 우리가 본다면 핵심이 무엇인지, 무엇(what)을 하는지 알기 위해 코드를 보고 추론해서 찾아내야 할 것이다.
따라서, 구체적인 how를 숨기고 what을 먼저 보게 할 수 있는 코드를 작성하는 것이 생산성에 큰 도움이 된다.
따라서 코드를 작성하는 과정에서 어떻게 하는지에 대한 세부적인 내용들을 다 읽어야만 코드를 이해할 수 있다면 추상화 수준을 높이는 것을 고려해보자.
'프로그래밍언어 > 프로그래밍 지식(programming knowledge)' 카테고리의 다른 글
소리치는 아키텍쳐 (0) | 2022.04.18 |
---|---|
value object(값 객체) (0) | 2022.04.17 |
dependency(의존관계) (0) | 2022.04.17 |
abstraction(추상화) (0) | 2022.04.17 |
separation of concerns(관심사 분리) (0) | 2022.04.17 |