불필요한 복잡성을 제거하는 것은 예술이다.
Albert Einstein
본 게시물은 대학교 학부 수업 및 참고 교재인 '이제 시작이야! 컴퓨팅 사고력으로 인공지능까지 파이썬 - 전수진, 박주연, 김수환 공저 / 연두에디션' 을 토대로 필자가 이해한 내용을 정리했습니다.
우리는 부모님께 어렸을 적, 원하는 것이 생겼을 때 진정 하고 싶은 말은 빼고 그것에 대한 부연 설명만 줄줄 늘어놓는다. 결국 부모님은
"그래서 하고 싶은 말이 뭐야?"
를 듣고 진정 원하는 답을 했을 때.. 그 뒤 엔딩은 해피엔딩이었던 적이 몇 번 없었다...
우리가 일을 하면서도, 지인들과의 대화에서도 중요한 것은 핵심. 즉 주제 이다. 어쩌면 다른 부연설명이 없어도 핵심 문장 몇 줄만 있어도 우리는 대부분의 글들을 이해할 수 있을 것 같다. 우리는 수능 국어 영역을 공부하면서 '두괄식 문장'을 배웠을 것이다. 중요한 핵심 문장을 초입에 제시하면 그 뒷이야기는 더 쉽게 읽히지 않은가.
프로그래밍도 그렇다. 프로그래밍은 문제 해결에 필요한 조건, 정보 만을 필요로 한다. 그 누구보다 이성적인 친구니까. 그래서 우리는 프로그래밍 언어를 배우면 이 컴퓨터라는 친구에게 핵심만 딱! 중요한 것만 딱! 전달해 주어야 원하는 결과를 얻을 확률이 높을 것이다.
그래서 우리는 추상화(Abstraction)에 대해 이해할 필요가 있다.
위 퀵드로우라는 프로그램은 해당 단어가 의미하는 부분을 보고 무슨 그림인지 추론하는 머신 러닝이다.
즉, 자동화하기 위하나 필수 요소를 찾아내야 하는 것이 추상화 라고 할 수 있겠다.
다른 분야에서도 물론 추상화의 개념은 존재한다. 수학에서는, 자연물들의 모양에서 패턴을 찾ㅈ고 이를 일반화 하여 원, 사각형, 삼각형 등의 기본 도형으로 추상화 한다. 숫자 기호 등을 통해서 셈을 하거나 측정 하거나 계산할 때 사용하는 수식들도 실세계를 간단하게 추상화 한것이다.
또 다른 예로 비행 시뮬레이션이 있다.
실제 비행하는 것과 비슷한 효과를 나타내기 위해서 실제 있는 여러 핵심적인 부분들을 모델링 한 것이라 볼 수 있다. 보편적인 비행 상황이나 비행기의 작동 기능 등의 중요한 요소들만 추출해서 모방했다.
과학에서는, 생태계 피라미드 처럼 복잡한 자연 현상을 핵심적인 흐름을 바탕으로 표현하기도 하는데 이것또한 추상화라고 볼 수 있다.
컴퓨터 과학에서의 추상화는 그럼 무엇일까?
이처럼 눈에 보이지 않고 복잡한 실제 컴퓨터 내부에서 일어나는 많은 동작들을 추상화한다.
컴퓨터 과학에서 추상화는 크게 두 가지 의미를 가진다.
1. 넓은 의미의 추상화
- 문제 이해에서부터 알고리즘에 이르기까지의 사고 과정
- 프로그래밍 과정에서 지속적으로 사용되는 요소
2. 좁은 의미의 추상화
- 문제 해결을 위한 자동화 과정에서 핵심요소를 추출하고 단순하게 표현하는 것
다시 말하자면, 추상화는 실생활에 복잡한 문제를 분해하고 패턴을 통해 문제를 대표하는 하나의 모델을 만드는 것이다.
추상화의 예로는 기하학을 볼 수 있다.
기하학에서 점과 선, 삼각형 등의 개념도 모두 추상적이다.
- 점 : 면적이나 색을 가지지 않고 오직 위치만을 가진다고 정의
- 삼각형 : 3개의 꼭지점과 3개의 선분, 3개의 각도를 가진 도형으로 추상화
컴퓨터는 2진수를 이용하여 10진수 연산을 우리에게 제공한다. 이미지나 사운드가 본질적으로는 2진수로 표현되지만 추상화 계층을 이용하여 사람이 보기에 편한 방법으로 표시된다.
그렇다면 핵심요소를 추출해보자
어쩌면 추상화는 일정한 규칙을 일반화하는 것도 추상화로 볼 수 있다. 패턴인식부터 추상화까지 최대한 효율적인 과정을 만들어내야 빠르게 결과를 만들어내는 알고리즘을 만들어 낼 수 있다. 누구보다 빠르고 정확하기 위해 태어난 컴퓨터니까.
'COMPUTER SCIENCE > Computational thinking' 카테고리의 다른 글
컴퓨터의 성장 스토리.. 들어보실래요? (5) | 2024.06.17 |
---|---|
조회수, 알고리즘의 은총 (0) | 2024.06.17 |
뻔하다 뻔해!! 다 보인다고 (1) | 2024.06.16 |
문제가 생기면 해결을 해야지 (0) | 2024.03.24 |
컴퓨터를 배우기 위한 마인드셋(Mindset) (0) | 2024.03.21 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!