brunch

You can make anything
by writing

C.S.Lewis

by 정경문 Apr 21. 2022

07 인공지능 부려먹기 역량

데이터 활용에 필요한 논리적 문제 해결 방법

컴퓨팅 사고력은 과학자뿐만 아니라
모든 사람이 갖춰야 하는 기본적인 역량이다.


인류발전에 크게 기여한 기술 하나를 꼽으라면 무엇이 있을까요? "인쇄술"을 들 수 있습니다.

15세기 인쇄술의 발명은 사람들에게 글과 책을 선사했습니다. 책이 대량으로 공급되면서 인류의 읽기와 쓰기 능력이 보편화되었습니다. 이때부터 정보와 지식의 대중화가 시작되었습니다.


마찬가지로 오늘날 인터넷, 모바일, 클라우드 등 "IT기술"은 인류의 삶을 획기적으로 변화시켰습니다. 특히 보다 많은 사람들에게 양질의 콘텐츠 그리고 데이터를 신속하게 공급해주고 있습니다. 신인류는 이것들을 고 쓰고 다루는 능력, 즉 컴퓨팅 사고력을 보편적으로 가지게 될 것입니다. 아니, 이미 우리도 모르는 사이에 갖춰가고 있습니다.


컴퓨팅 사고력이라는 개념은 2006년 카네기 멜론 대학의 지넷 윙(Jeannette Wing) 교수의 발표에서 등장했습니다. 읽기, 쓰기, 셈하기와 같이, 모든 사람들이 배워서 활용할 수 있는 보편적인 기술이며, 갖춰야 할 역량이라고 했습니다.



# 하나. 컴퓨팅 사고력(Computional Thinking)이란?


컴퓨터는 우리가 문제를 해결하는 데 도움이 될 수 있습니다. 하지만 모든 문제를 컴퓨터로 해결할 수 있는 것은 아닙니다. 우리가 가장 먼저 해야 할 일은 '문제가 무엇인지?'와 '어떻게 해결할 것인지?' 생각하는 것입니다. 컴퓨팅 사고력은 문제의 본질에 대해 접근하도록 합니다.


'컴퓨팅'이라는 단어 때문에 혼동하는 부분이 있습니다. 컴퓨팅 사고력은 컴퓨터처럼 생각하거나, 컴퓨터 과학자처럼 생각하는 것이 아닙니다. 컴퓨터는 생각할 수 있는 능력이 없기 때문에 "컴퓨터처럼 생각한다"는 말 자체가 어울리지 않습니다. 그보다는 컴퓨터에게 무엇을 하라고 정확히 지시할 수 있는 능력입니다. 이것이 바로 컴퓨터 그리고 인공지능과 공존하는 시대에서 우리가 갖춰야 할 생존능력이죠.


문제들은 항상 언뜻 보기에 복잡해 보입니다. 컴퓨팅 사고력은 이 복잡한 문제를 작고 처리하기 쉬운 문제들로 나누는 것부터 시작합니다 (①분해). 다음으로 그 작은 문제들과 유사한 문제들이 이전에 어떻게 해결되었는지 파악합니다 (②패턴인식). 그 후  중요한 사항에만 초점을 맞추고, 관련이 작거나 없는 세부 정보는 무시하고 단순하게 볼 수 있습니다 (③추상화). 마지막으로 이 문제들을 해결하기 위한 절차나 규칙을 세울 수 있습니다 (④ 알고리즘).


이렇게 컴퓨팅 사고력은 크게 4가지 요소로 구성됩니다. 다음 단락에서부터 각 요소를 알아보고 활용할 수 있는 능력을 길러보도록 하겠습니다.


컴퓨팅 사고력의 4가지 구성요소

출처 : https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1



# ① 나눠서 생각하기

(분해, Decomposition)


뭉치면 어렵고, 흩어지면 쉽다


데이터 분석에서 데이터를 '분석' 한다는 뜻이 무엇일까요?

 한 덩어리를 나누고 쪼개서 개별적인 요소로 나눈다는 의미입니다. 우리에게 주어진 문제를 작은 부분으로 나누고, 나눠진 부분은 필요하다면 다시 해결 가능한 부분으로 잘게 나누는 과정이 바로 분석인 것이죠.


분석(分析)은 한자로 나눌 분(分), 쪼갤 석(析)입니다. '나누어 쪼갠다.'라는 뜻


감이 안 오신다고요?

그럼 지난 시간에 배운 "벚꽃여행"을 계속 예로 들어보겠습니다. "여행 계획" 처음으로 할 일은 무엇을 해야 하는지 리스트를 만들고 문제를 나누는 것입니다.


깔끔하고 적절한 가격의 숙소를 예약하고, 기차로 갈지, 차로 이동할지 교통편을 결정할 것입니다. 도착한 첫째 날에는 지역 맛집에 가서 저녁을 먹고, 둘째 날에는 벚꽃 명소에 가서 사진을 찍기로 합니다.  


이것을 분할해보면 숙소, 교통편, 맛집, 즐길거리(벚꽃 명소 등) 크게 4가지로 나눌 수 있습니다. 이렇게 문제를 작은 단위로 쪼개 놓으니 아내와 남편이 일을 나눠서 할 수 있어 부담도 훨씬 줄어들었습니다.

 


이렇게 문제를 나눠서 푸는 방식을 좀 더 컴퓨터 과학적인 용어로는 분할 정복(Divide and Conquer)라고 합니다. 하나의 문제를 하위 문제로 나눠가면서 쉽게 풀 수 있는 작은 단위로 나눈(divide) 후, 이를 정복 (conquer)하고, 다시 이를 합쳐서(combine) 해결하는 개념입니다.


간단한 예를 하나 더 들어보겠습니다. 오늘 학교에서 수학 숙제 5문제를 받았습니다. 그렇다면 5명의 친한 친구들이 한 문제씩을 푼 다음, 합쳐서 하나의 정답지를 완성하는 것이 분할입니다. 이처럼 분해는 문제를 나눠 여러 개의 작은 문제로 쪼개고, 작은 문제들의 해결방안을 생각하는 과정입니다.


하나의 복잡한 문제를 잘게 쪼개어 문제를 이해하고 해결하면 다음과 같은 장점이 있습니다.


① 문제가 작은 단위로 나눠집니다.

② 작은 문제는 쉽게 처리가 할 수 있어집니다.

③ 나눠진 문제들은 보다 전문적인 지식이 있는 팀이나 사람이 맡아서 협업이 가능합니다.



# ② 유사한 문제 찾아보기

(패턴인식, Pattenrn Recognition)


다른 사람들은 어떻게 갔다 왔데?


어떤 문제에 직면했을 때 그 문제를 가장 빨리 푸는 방법은 "비슷한 문제를 어떻게 해결했는지 확인" 하는 것입니다. 우리가 경험했던 문제 중에 유사한 문제가 있었다면 가장 좋겠죠. 그렇지 않다면 유사한 경험이 있는 사람에게 물어보거나, 그 경험들을 찾아볼 겁니다.


그러면 그 과정에서 비슷한 요소들을 가지고 있는 문제를 찾고,  해결책을 찾을 수 있을 겁니다. 이처럼 문제에서 일정한 패턴이나 반복되는 규칙, 유사점과 공통점을 찾아내는 과정을 "패턴인식"이라고 합니다.


벚꽃여행을 위해 우리는 4가지 작은 문제로 나누는 데까지 성공했습니다. 이때부터 우리는 데이터 가 필요합니다. 기존에 유사한 시간, 장소, 일정으로 여행을 갔던 사람들의 후기를 찾습니다. 그중 만족스러웠던 숙소, 맛집, 즐길거리에 대한 유사 패턴이 보일 겁니다.


내가 찾은 데이터 중에서 4가지 요소인 숙소, 교통편, 맛집, 즐길거리에 대해 나의 스타일과 가장 유사한 패턴을 찾아냅니다. 그리고 그 패턴에서 공통점과 차이점을 인식하면서 문제는 해결책에 다가서게 됩니다.

예를 들어, 내가 가고자 했던 위치 경주에 대해서 다음 요소들을 고려해볼 것입니다.


1. 숙소 : ★★★★ 성급 이상 호텔

2. 교통편 : 낭만이 있는 기차를 선호

3. 맛집 : 아기의자가 비치된 한정식 위주

4. 즐길거리 : 유모차가 이동할 수 있는 벚꽃거리


공통점과 차이점을 파악할 수 있는 능력은 사람들의 핵심 아이디어 및 개념의 기억을 도와줍니다.


또 다른 예로, 곱셈구구에서 5단의 경우, 5x1=5, 5x2=10, 5x3=15, 5x4=20에서 정답은 1의 자리가 5와 0을 반복하고, 십의 자리는 두 자리마다 바뀌는 패턴을 가지고 있습니다. 벚꽃과 구구단의 예에서처럼 어떠한 문제에 대해 분할된 조각의 유사한 점과 차이점을 찾아낸다면 보다 쉽게 해결방안에 접근할 것입니다.



# ③ 단순하게 생각하기

(추상화, Abstraction)


뭐 이리 복잡해 단순하게 생각해


추상화란 무엇일까요?

내가 정말로 필요한 내용과 생략해도 되는 내용을 구분해 내는 것입니다. 우리가 원하는 일에 집중하려면 불필요한 특성은 생략하고, 핵심에 집중하여 단순하게 만드는 과정이 필요합니다. 흔히 일기예보에서 해 그림으로 맑은 날씨를 추상화하여 나타내고, 와이파이 서비스전파가 확대되는 기호를 추상화해서 사람들에게 개념을 전달합니다.


저는 벚꽃 감성이라서 계속 벚꽃의 예를 들어보겠습니다. 벚꽃은 꽃잎 색이 핑크색이고, 잎이 5개이며, 가운데 부분에 짙은 분홍색의 수술 등과 같은 특징이 있습니다.


세부적으로 수술의 개수가 몇 개인지, 꽃받침의 색이 초록인지 갈색인지는 추가적인 정보입니다. 이러한 세부사항은 걸러낼 수 있는 정보인 것이죠.



그렇다면 추상화는 왜 중요할까요? 문제를 풀 때, 우리는 그 문제를 둘러싼 세부사항들을 함께 만나게 됩니다. 문제에는 아까 벚꽃잎의 분홍, 5개, 가운데 수술과 같은 "핵심특성"이 있고, 또 꽃수술의 개수나 꽃받침의 색과 같은 "세부 특성"이 있습니다.


이 과정은 문제 해결에 도움이 되지 않는 세부 특성과 같은 패턴을 없애줍니다. 벚꽃을 단순화해서 그림으로 그린 것처럼, 우리 앞에 주어진 문제에서 본질만을 남기고 나머지는 생략하도록 하는데 도움을 줍니다.



# ④ 머릿속에서 순서대로 상상해보기 (알고리즘 Algorithm)


어르신들 키오스크 주문 어려워


코로나로 인해 일상생활에서 크게 바뀐 점이 있다면 바로 식당에서 키오스크를 통해 주문하는 방식이 그중 하나일 것입니다. 키오스크는 사람 대신 주문, 결제 등의 기능을 하는 터치스크린 방식의 무인 단말기입니다.


한 조사단체에 따르면 70세 이상 고령소비자 5명을 대상으로 직접 실험해본 결과,  5명 모두 패스트푸드점의 키오스크에서 주문을 완료하지 못했다고 합니다.(출처 : 매일경제)



키오스크는 주문을 받는 사람과 주문을 하는 사람의 의사소통 절차를 그대로 컴퓨터로 옮겨놓은 방식입니다. 예를 들어 키오스크의 주문 절차를 살펴보겠습니다.


① 화면을 터치하세요 →  ② 메뉴를 선택하세요 → ③ 수량을 선택하세요 → ④ 포장/매장 선택하세요 → ⑤ 결재방식을 선택하세요 →  ⑥ 주문번호가 호출되면 상품을 가져가세요

의 순서로 표현할 수 있습니다.


또 다른 예로 우리는 요리를 할 때, 머릿속으로 그려봅니다. 저녁 메뉴는 된장찌개입니다.


① 필요한 재료인 된장, 두부, 애호박, 양파, 마늘을 떠올립니다. ② 냉장고를 열어 없는 재료를 먼저 사야겠죠. ③ 그리고 머릿속에서 재료들을 손질해보고, ④ 물도 끓여놓고, ⑤ 순서대로 재료를 투입합니다. 이처럼 음식 레시피는 훌륭한 알고리즘의 하나입니다.


요리법, 키오스크 사용법처럼 어떤 일의 순서 또는 프로세스를 컴퓨터 과학에서는 '알고리즘'이라고 합니다. 알고리즘이 한번 설계가 되면 된장찌개 요리와 키오스크 주문처럼 무한반복을 통해서 실행이 가능한 하나의 시스템이 되는 것입니다.


알고리즘은 한 번에 완벽한 형태가 되기 어려울 때가 많습니다.  된장찌개 끓이기에서는 갑자기 가스가 들이지 않는 돌발상황이 생길 수 있습니다. 그리고 키오스크에서는 모바일 쿠폰으로 주문하고 싶은 고객도 있을 겁니다. 또 벚꽃여행에서는 하루 종일 비가 내리는 경우도 생기겠죠?


이렇게 예기치 못한 상황을 설정해서 다시 알고리즘을 설계해야만 합니다. 이처럼 디버깅은 실수와 잘못으로부터 배우는 것을 "디버깅"이라 말합니다. 디버깅이란 의도치 않은 에러가 발생했을 때 조치하는 행위입니다.



읽고 쓰고 말할 수 있다면 누구나 할 수 있습니다.


앞선 시간에 배운 코딩 교육의 열풍은 '프로그래밍 언어'를 사용하는 능력입니다. 반면 컴퓨터 사고력은 우리 일상생활의 문제를 해결하기 위해, 우리의 창의적 사고방식을 컴퓨터 기술과 결합하는 융합의 과정입니다. 결론은 "창의적인 일은 인간이 하고, 반복적인 일은 컴퓨터에 시킨다"입니다.


인문학, 과학, 예술 분야 등 우리 주변의 다양한 분야에서 컴퓨팅 사고력을 사용하고 있습니다. 여러분들의 전문분야에서의 지식(Human Intellignce)에 컴퓨팅 사고력을 더하면 기존에 해결하지 못했던 문제를 창의적으로 해결할 수 있을 것으로 기대합니다.


컴퓨팅 사고력은 컴퓨터에 있는 것이 아니라 여러분 안에 있습니다.

매거진의 이전글 06 데이터 분석보다는 활용
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari