추상화

정은경·2020년 3월 6일
0

IT Terms

목록 보기
6/22

Abstraction 추상화 (2019-12-20)
Abstract, 추상적
Top > 기술공통 > 공통/유사어(ㅊ~ㅎ)
1. 추상화 (抽象化, Abstraction)

ㅇ 실세계의 복잡한 상황을 간결하고 명확하게 단순화/간추리기/일반화/개념화 ↔ 구체화
- 이를 통해 모델링을 할 수 있게 됨

ㅇ 추상화 특징
- 응용에 따라 대상을 보는 관점이 다르므로,
- 다양한 형태 및 계층/레벨별로 추상화가 이루어질 수 있음

ㅇ 추상화 표현
- 현상의 본질 만을 남겨두고 축약시켜, 다루기 쉽게 표현토록 함
- 이때, 보통의 사람들이 이해할 수 있는 언어나 그림 등을 사용하여 이를 표현하게 됨

  1. 추상화 과정

    ㅇ 통상, 구체적인 사항은 되도록 생략하고 핵심이 되는 요소/원리 만을 추구함

    • 즉, 불필요한 세부사항을 제거하여 복잡도를 낮추는 것

    ㅇ 한편, 프로그래밍 의도를 추상화시켜 컴퓨터에 전달하는 도구는, ☞ 프로그래밍 언어 참조

    • 대상물의 동작/특성들을 추상화를 통해 모델링하여 추상적 모델을 만들고,
    • 이에의한 구체화(구현) 과정을 위해,
    • 수식/절차(알고리즘),프로그램(코딩),컴퓨터 내부언어(컴파일) 등으로 변환하게 됨
  1. 추상화 방법

    ㅇ 일반화 (Generalization)
    ㅇ 집단화 (Aggregation)
    ㅇ 연관화 (Association)

    ㅇ 때론, 추상화를 이루기 위한 기초 작업으로,

    • 전문화 또는 세분화 또는 상세화 (Specialization)도 포함하기도 함
  1. 추상화 계층/레벨

    ㅇ 추상화는, 수많은 계층/레벨들이 있음

    • 즉, 하위의 개념들을 결합하여 상위의 고급 개념들을 만들어가는 단계/계층/레벨 등이 있게 됨

    ㅇ 통상, 말이 통하지 않는다 라고 함은,

    • 지적 추상화 레벨이 다르기 때문에 일어나는 경우가 대부분 임

    ㅇ 컴퓨터는, 하드웨어로부터 소프트웨어 구현까지, 수많은 추상화 계층을 둠

    • 즉, 항상 더 높은 추상화를 통해 하위 세부사항들을 일일이 신경쓰지 않고 간결하게 취급케 함
    • [참고용어] ☞ 컴포넌트, 추상자료형, 부프로그램, 모듈, 패키지, API 등
  1. [프로그래밍] 프로세스데이터의 추상화 : 추상 자료형

    프로세스/제어/연산/실행의 추상화 (Procedural Abstraction)

    • 복잡한 실행 절차를 구분짓고 묶어 단순화시키는 것
      . 例) 부프로그램/함수 등

    • 과거 초창기 고급 프로그래밍언어부터 도입된 제어 추상화 例로는,
      . 제어 구조(반복문,조건문 등),함수 등이 있음
      .. 이들은 상황에 따라 프로그램 실행 경로/순서를 수정하는 성질을 추상화시킨 것

    데이터/자료의 추상화 (Data Abstraction)

    • 여러 자료형을 하나로 묶어 단순화하는 것
      . 例) 사용자 정의 자료형으로써 구조체(Structure) 등

    ※ 위 둘을 하나로 묶음 => 추상 자료형 (Abstract Data Type, ADT)

    • 자료연산을 모두 하나의 단위로 묶고,
    • 외부로부터 내부 자료를 함부로 접근 못하게함
      . 이를두고, 캡슐화(Encapsulation) 또는 정보은닉(Information Hiding) 라고도 함
    • 항상, 인터페이스 만을 통해 접근토록 함

출처: 정보통신기술용어해설(http://www.ktword.co.kr/abbr_view.php?m_temp1=3026)

더 살펴보기

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글