포털:고등학교/정보·통신 계열 전문 교과(2015)/컴퓨터 시스템 일반/추상화
추상화
편집추상화의 과정
편집추상화는 문제 해결 과정 도중 문제를 단순하게 분해하고 중요한부분을 끌어올려 문제를 단순화하고 쉽게 변환하는,현실의 복잡한 상황을 간결하고 명확하게 컴퓨터가 추리할 수 있는 형태로 문제와 해결책을 표현하는 사고 과정이다. 복잡한 문제의 핵심만 추려 복잡한 문제를 단순화하는 추상화(abstraction)인데, 일련의 규칙과 절차에 따라 문제를 해결하는 알고리즘 기법 등을 사용하여 사람과 컴퓨터 모두가 문제를 처리할 수 있는 형태로 표현한다. 추상화는 응용에 따라 대상을 보는 관점이 달라서, 다양한 형태로 이루어질 수 있다는게 특징이다. 추상화는 일반적으로 보통의 사람들이 이해할 수 있는 언어나 그림으로 표현하게 된다.
추상화 과정
편집추상화는 보통 구체적 사항은 생략하고 핵심이 되는 요소/원리만을 추구한다,즉 불필요한 세부사항을 제거하여 복잡도를 낮추고 간단히 해결하는 것이다.
추상화 방법의 종류
편집ㅇ 일반화 (Generalization)
ㅡ상대적으로 하위의 데이터 개념을 보다 상위의 개념으로 대체하여 요약하는 방법
ㅇ 집단화 (Aggregation)
ㅡ 유사성과, 같은 어떤 개념을 바탕으로 데이터를 몇 가지의 다발로 분류하는 방법
ㅇ 연관화 (Association)
ㅡ관련있는 개념끼리 연관지어 분류하는 방법
ㅇ 때론, 추상화를 이루기 위한 기초 작업으로, 전문화 또는 세분화 또는 상세화 (Specialization)도 포함하기도 한다.
중요성
편집추상화를 적절히 사용할 시 코드의 재사용성, 가독성을 높이고, 결국 생산성, 에러의 감소와 같은 영향을 보이게 된다. 프로그래머들은 개발에 투자하는 시간보다 유지 보수, 버그 해결에 많은 시간을 쓰는 경우가 많다는 것을 감안하면, 추상화의 중요성을 인식할 수 있다 그외에도 중요한 세부 정보만 사용자에게 제공하므로 응용 프로그램 또는 프로그램의 보안 향상에 도움을 줄 수 있다는 장점이 있다.
주변에서의 추상화
편집지하철 노선: 역과 역의 이어지는 부분만을 특징으로 잡아 일반화시켜 조기 편하게 나타냄 달력: 달력에 있는 날짜를 '요일'이라는 것으로 묶어 특정 정보를 취하기 편해짐