본문 바로가기
Programing/Knowledge

[CS] Abstraction

by 꾸압 2022. 12. 2.

 

<설명>

  - Abstraction(추상성, 추상화) 는 보통 큰 Size의 Data Set에서 Related(관계형) 정보를 추출하는걸 일컬음.

    ==> 엔지니어나 다른 이들이 Codebase를 더 간략하게 하도록 도움.

 

  - (BBC 피셜) 문제 해결에 필요한 일반적인 특성을 인식하는 Process 에서 필수가 아닌 정보를 걸러냄.

 

  - (Valuable Dev 피셜) Process 혹은 Artifact 를 단순하게 함.

 

  - (대충 정리) Process 등의 작업을 간략하게 정리하거나, 필요한 정보만 가져오는 것. (Keyword : 정수 추출)

 


 

< Abstraction이 적용된 예시>

  (1) OOP (Object-Oriented Programming)

    - Code 내 객체들의 사용을 통해 Abstraction이 종종 일함.

      ==> 이런 객체는 Attribute 및 반복 가능한 Code 구조를 Portable(이식가능)한 Container로서 , Functional 하게 동작하거나 Linear하게 동작 가능함.

 

  (2) Class

    - 객체의 Class 는 재사용성 원리와 자동화된 Code의 분열증식을 더 Stratify(계층화) 함.

      ==> 모든 Code를 작성하는게 아닌 Invoke(호출) 하여 같은 결과에 대해 less work 함. (물론 성능은 날코딩보다 떨어지기 쉬움)

 

  (3) API (Application Programming Interface)

    - API는 외부 제3자가 내부 Code에 대해 많이 알 필요없도록 하기(숨기기) 위한 목적으로, Abstaraction 정보를 제공하는 핵심 방법. 

  - Abstraction을 통해 Code 기반 정보가 외부 시스템에 표현되는 방식을 단순하게 하여, Code 기반 정보를 보다 더 다양하게 만드는 과정.

 


 

<참조 1> https://www.techopedia.com/definition/3736/abstraction-computer-science

<참조 2> https://www.noodle.com/articles/what-is-abstraction-in-computer-science-mscs

<참조 3>

 

 

'Programing > Knowledge' 카테고리의 다른 글

[CS] Cyclic Dependency  (2) 2022.12.04
[CS] Batch  (0) 2022.12.03
[CS] Memoization  (0) 2022.11.30
[CS] Return Statement  (2) 2022.11.28

댓글