본 게시물은 대학교 학부 수업 및 참고 교재인 '이제 시작이야! 컴퓨팅 사고력으로 인공지능까지 파이썬 - 전수진, 박주연, 김수환 공저 / 연두에디션' 을 토대로 필자가 이해한 내용을 정리했습니다.
수 많은 액션 영화에서 빼놓을 수 없는 격투 씬. 잘만든 격투 씬을 보면 나도 모르게 야인시대의 안재모가 된 듯 가슴 한 구석이 뜨거워진다. 여기서 보면 무지성 진흙탕 싸움이 아닌 대부분 격투의 승리 뒤에는 치밀하게 짜여진 전략이 존재했다. 그 중 대표적인 전략은 상대방의 패턴을 파악하는 것. 상대방의 습관, 주로 쓰는 무술 등에 대한 정보가 이러한 패턴에 해당되는 것이 아닐까.
복싱에서도 오소독스냐, 사우스포냐에 따라 상대방에 포커싱 해야 하는 관점이 조금 달라지듯이 어떠한 문제를 해결하기 위해서는 그 문제의 패턴을 파악하는 것이 우리가 어려운 문제를 해결해 나가는 것이 매우 쉬워질 것이다. 꼭 무투가 아니어도 우리 일상 속에서도 패턴은 쉽게 찾을 수 있다.
아침에 일어나면 아침을 먹고, 점심 시간이 되면 점심을 먹으러 식당에 가지 않는가? 아 물론.. 아침에 밥보다는 잠을 선택하는 사람도 많을 것이다. 하지만 이것또한 우리는 매일 진행한다. 그것이 패턴이 아니고 무엇이겠는가.
그래서 패턴이란, 어떠한 것들이 반복적이고 규칙적으로 나타나는 것.
프로그래밍도 그러하다. 컴퓨터 프로그램은 우리의 삶을 이롭게 하기 위해 탄생했다. 단순 노동부터 복잡한 업무까지 자세히 들여다보면 패턴은 대부분 숨어있더라. 이를 프로그램의 자동화(automation)을 적용하면 우리의 문제 해결 속도는 눈에 띄게 빨라질 것이다.
일상에서도 패턴을 쉽게 찾아볼 수 있듯이 학문에서 패턴은 많은 문제 해결에 상당히 중요한 키 또는 힌트가 될 수 있다.
- 수학자 : 파이값(3.141592...)과 소수(1, 3, 5, 7, 11)의 패턴을 찾으려고 노력한다.
- 천문학자 : 수세기동안 100% 정확한 달력을 만들려고 시도한다.
- 유전공학자 : 어떤 질병에 대한 원인을 찾기 위해 유전자에서 패턴을 찾고 있다.
여기서 볼 수 있듯, 패턴을 찾는 것은 매우 중요하다.
1. 패턴을 이용하면 우리의 작업이 간단해 진다.
2. 패턴을 발견하고 공유하면, 동일한 패턴이 나타날 때만다 동일한 해결책을 사용할 수 있다.
3. 우리가 더 많은 패턴을 찾아서 저장하고 있다면, 문제 해결의 속도는 더 쉽고 빠르게 될 것이다.
패턴 찾는 방법에는 여러가지가 있다.
1. 규칙성 찾기
가렌더 패턴을 예를 들어보자. 그 하나하나의 깃발을 보다 보면 어떠한 색들이 반복되고 있음을 알 수 있다. 이것을 통해 규칙을 찾아 우리는 프로그램에서 명령어로 구현할 수 있을 것이다.
2. 대상 간 공통점 인식하기
외형적 공통점 -> 원이 포함되어 있다.
기능적 속성 -> 회전하거나 축을 중심으로 돌아간다.
3. 대상 간 유사성 인식하기
우리가 쇼핑을 가면 옷 스타일을 찾으면 그에 맞는 옷 디자인을 가게 사장님이 찾아주신다. 셔츠라던지, 어떠한 옷의 컬러라던지 등의 요소들의 유사성을 파악한 것이다.
그렇다면 패턴을 어떻게 문제 해결에 쓰일 수 있을까?
문제를 분해하여 작은 문제들을 보았을 때 그 작은 문제에서 패턴을 발견할 수 있을 것이다.
수학에서는, 일반화된 수학적 규칙을 발견하여 공식, 원리로 발전했다.
이렇게 이전 관계를 통해 패턴을 찾은 피보나치 수열이 그 예가 될 것이다. 이 외에도 짝수, 홀수 패턴 연산 기호를 통해 사칙연산 계산 패턴, 도형들 변과 각을 공식화 등등 모두 패턴을 인식하는 것이다.
천문학에서는, 관측적 데이터 간의 규칙성을 바탕으로 패턴을 찾고 추론을 통해 예측한다.
유전공학에서는, 어떤 질병에 대한 원인을 찾기 위해 유전자에서 패턴을 찾아 질병을 진단하고, 치료 방법을 개발한다.
또한 통계학에서는, 스포츠 경기, 날씨, 주식 시장 등의 결과를 예측하기 위해 빅데이터를 분석하여 패턴을 찾고 추론과 예측 결과를 내놓는다.
그렇다면 컴퓨팅에서는 어떨까.
우리가 프로그래밍을 하다보면 코드의 반복 혹은 함수의 형태로 패턴이 나타나는 것을 흔히 발견할 것이다.
하지만 이전에도 언급하였듯.. 우리의 삶을 크게 바꿔놓은 인공지능은 이 패턴을 최대한으로 이용한 기술이 아닐까 싶다. 그 인공지능은 우리의 검색을 더욱 편하게 만들었다. 그들이 맥락과 추론을 하게 되면서 더 우리가 원하는 정보가 무엇인지를 컴퓨터는 빨리 인지할 수 있게 되었다.
사람들이 Britney Spears에 대한 Google 검색에 사용한 빈도를 통계를 내었다. 그리고 그 패턴을 분석하여 가장 정확한 철자가 어느 것인지 판단한다. 우리가 네이버만 검색해도 맞춤법을 알아서 맞춰주지 않았던가!? 그 뒤에는 인공지능 형님의 저런 노력이 있었던 것이다.
이 패턴 인식을 통해 우리는 주차장 자리를 더 쉽게 찾게 되고 비어있는 화장실을 빨리 찾아 고속도로위 급똥을 해결할 수 있게 됐으며, 도서관에서 열람실 빈자리를 바로 찾아 앉을 수 있게 되었다.
어쩌면.. 우리가 늘 단조로운 일상을 살 수 있는 것은 보이지 않은 누군가가 이 인공지능처럼 보이지 않는 문제를 해결해주고 있어서 그런 것이 아닐까? 나 또한 그런 사람이 될 수 있기를
'COMPUTER SCIENCE > Computational thinking' 카테고리의 다른 글
컴퓨터의 성장 스토리.. 들어보실래요? (5) | 2024.06.17 |
---|---|
조회수, 알고리즘의 은총 (0) | 2024.06.17 |
프로그래밍, 너 T발 C야? (0) | 2024.06.16 |
문제가 생기면 해결을 해야지 (0) | 2024.03.24 |
컴퓨터를 배우기 위한 마인드셋(Mindset) (0) | 2024.03.21 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!