
추상화는 여러 군데에 적용될 수 있습니다.
추상화의 처음은 객체 지향 프로그래밍을 시작하며 가장 먼저 생성하는 클래스(class)에서부터 시작됩니다.
클레스 설계 시에 추상화 (= 모델링)가 사용되기 때문입니다.
개발자는 클래스를 설계하기 전에 "내가 만들고자 하는 애플리케이션은 어디에서 사용될 것인가?" 를 생각하고, 그에 알맞게 '병원', '은행', '스포츠' 등으로 정하게 됩니다.
이러한 애플리케이션 경계(Context)가 무엇인지에 따라 그냥 '사람'으로 정하는 것보다는 더욱 목적에 맞게 관심 있는 특성만을 추출해서 표현하는 것이 바로 '추상화' 개념입니다.
현업 개발을 하게 되면, 어떻게 모델링하느냐가 얼마나 중요한지 알게 될 것입니다.
이러한 모델링(= 추상화)은 객체 지향에서 클래스를 설계할 때 필요한 기법이고 또한 데이터베이스의 테이블을 설계할 때 필요한 기법입니다.
추상화가 무엇인지는 알았지만, 실제로 어떤 기준으로 적용되어야 '추상화 레벨이 높다' 라고 할 수 있을까요?
구체적인 세부사항으로부터 멀어질수록 추상화의 레벨은 높아지며, 반대로 세부사항에 가까워질수록 추상화의 레벨은 낮아집니다.
ex)
"운송 수단"이라는 개념은 자동차, 자전거, 비행기 등을 포괄하는 높은 수준의 추상화 입니다. 여기서는 구체적인 운송 수단의 종류나 작동 원리보다는 이동 수단으로서의 공통적인 기능에 초점을 맞춥니다.
ex)
"전기 자동차의 배터리 관리 시스템"은 더 낮은 수준의 추상화 입니다. 이는 저기 자동차라는 특정 운송 수단에 속하며, 배터리 관리라는 구체적인 기능에 관한 세부 사항을 다룹니다.
참고