기술이 세상을 빠르게 바꾸고 있다. 기술을 직접 개발하지 않는다 하더라도 각자의 영역에서 필요한 만큼의 기술에 대한 이해가 필요한 세상이 되었다. 학생은 미래의 직업을 선택하기 위해서 그리고 이미 직업을 가진 사람은 각자 직업의 미래를 예상하기 위해서 세상을 바꾸는 기술에 대해서 이해해야만 한다. IT조선은 [이학무의 테크리딩]을 통해서 기술을 이해하기 위한 기초 다지기와 이를 기반으로 필수적인 기술 이해 방법을 제공한다.<편집자주>

코딩은 하나의 답이 정해진 것이 아니다. 같은 결과를 만들어 내기 위해서 수많은 방법이 존재한다. 물론 그 중에서 좀 더 최적화된 방식이 있기는 하다. 하지만 수학처럼 최적화된 방식만이 답은 아닌 것이다. 단지 좀 더 좋은 방법이 있고 좀 덜 좋은 방법이 있을 뿐이다.

그러기에 처음부터 최적의 방법으로만 코딩을 하는 것은 진정으로 코딩을 배우지 못하는 것이다. 컴퓨터와 같은 방식으로 생각하고 이를 구현하는 것이기에 각자가 이해하는 방식이 중요한 것이다. 주입식 교육이 가장 맞지 않는 것이다.

앞서 예로 들었던 엘리베이터 운행 프로그램의 경우에도 언급한 방법 말고도 요청층을 중심으로 한층 위에 엘리베이터가 있는지 찾고 없으면 한층 아래층에 엘리베이터가 있는지 찾고 또 없으면 2개층 위에 엘리베이터가 있는지 찾는 방식으로 반복해 가면서 찾는 것도 방법이 될 수 있다. 위 아래로 한층씩 한층씩 찾으니까 젤 먼저 찾아진 엘리베이터가 가장 가까운 엘리베이터가 될 것이고 이 엘리베이터가 어디로 운행 중인지 체크해서 다시 판단하고 그 이전에 그 층이 10층보다 더 높은 층이거나 1층보다 더 낮은 층이 아닌지 체크도 해야 한다.

아이클릭아트
아이클릭아트
더 챙겨야 할 사안이 많아서 앞서 들었던 방식보다 훨씬 복잡해 보이지만 이런 방식으로도 구현은 가능하다. 실지로 상업적으로 구현을 할 때는 다양한 방법 중에서 가장 최적의 방법으로 구현을 해야 한다.

하지만 배울 때는 다르다. 내가 생각한 방식으로 끝까지 진행해서 그 방식으로 마무리 해보는 것이 더 중요하다. 우리가 코딩을 배우는 목적이 컴퓨터가 일하는 방식을 이해하는 것에 가장 우선이 있기 때문이다. 이와 같은 과정을 통하고 그리고 누군가의 더 좋은 방법을 듣고 비교해보면 더 확실히 컴퓨터가 일하는 방식을 배울 수 있게 된다.

따라서 코딩은 실력이 있는 선생님한테 배워야 한다. 그것도 꼭 직접 질문 하면서 배울 수 있는 환경에서 배워야 한다. 수 없이 많은 경우의 수 중에서 하나를 구현하는 방식을 동영상 등에서 배우거나 또는 그 방식 하나 밖에 모르는 선생님한테 배우면 스크래치의 테크닉만 배우는 것이다.

우리의 목적은 코딩을 통해서 기술을 이해하는 방법을 배우는 것에 있기 때문에 다수의 시행착오를 통해서 나만의 방식을 만들어 가는 것이 필요하다. 그 과정 속에서 컴퓨터가 일하는 방식을 좀 더 정확하게 이해할 수 있는 것이다. 눈으로만 본 것은 내 것이 되지 않는다. 직접 해보고 고민해야만 진정으로 내 것이 되는 것이다.

대학원 졸업 논문을 위한 실험을 할 때 1000줄 이상의 코딩을 했던 것으로 기억한다. 코딩을 하고 프로그램을 돌렸을 때 수도없이 에러가 떴었다. 에러의 이유는 다양하다. 심지어는 점 하나를 잘 못 찍어도 에러가 나고 동작이 안된다. 1000줄이 넘는 코드를 다 들여다 보면서 어디가 잘 못 되었는지 찾고 고민하는 그 시간에 배운 것이 많았다.

물론 찾아낸 에러의 이유는 점 하나일 지라도 그 사이에 수없이 많은 고민을 하게 되고 그 과정에서 컴퓨터를 조금씩 더 이해해 가는 것이다. 따라서 내가 고민하고 그 고민을 같이 해줄 수 있는 선생님에게 배워야 우리가 현대 시대에 코딩을 배우는 목적을 이룰 수 있다.

내 아들의 코딩 선생님을 찾을 때 현실적인 어려움이 있었다. 프로그래머가 너무나 많은 곳에서 필요하기 때문에 실력 있는 코딩 선생님을 구하기 어렵다. 경제적인 측면에서만 봐도 학원에서 코딩을 가르치는 것보다 소프트웨어 회사에서 프로그래머로 일하는 것이 훨씬 더 높은 급여를 받을 수 있다.

이같은 이야기를 하는 이유는 코딩을 배울수 있는 좋은 선생님을 찾기가 어려우니 힘들게 좋은 선생님을 찾았으면 충분한 비용을 지불하고 배울 것을 권하기 때문이다. 비용만 생각해서 동영상을 보고 코딩을 배우면 테크닉만 일부 배울 수 있지 코딩을 통한 기술을 이해하는 방법까지 얻기는 어려울 것으로 생각된다. 다음 편부터는 관심을 가져야할 기술들에 대해서 하나씩 어떻게 접근하고 이해할 수 있는지를 이야기 할 것이다. 그리고 코딩을 배운 것이 어떻게 연결되고 활용될 수 있을지에 대해서 구체적으로 이야기 나눠 볼 예정이다.

이학무 미래에셋증권 통신서비스 애널리스트 leehakmoo@gmail.com

※ 외부필자의 원고는 IT조선의 편집방향과 일치하지 않을 수 있습니다.

이학무 미래에셋증권 애널리스트는 반도체, 핸드폰, 디스플레이 등 IT 산업뿐아니라 전기차, 배터리 및 신재생에너지 산업까지 다수의 성장산업을 분석한 신성장 산업 분석 전문가다. 공학을 전공하고 비즈니스를 20년간 분석한 경험을 바탕으로 세상을 이끄는(lead) 기술 읽기(read)를 제공한다.


관련기사