본문 바로가기
소소한 빅데이터 이야기

Print [Hello World!] 가 뭐 그렇게 중요하다고..

by 레비스탈(Levistyle) 2023. 1. 28.

Python이나 R같은 코딩을 처음 접하면서 몇 권의 책을 사 봤는데 처음은 늘 같은 내용이었다. 

 

Print [Hello World] 명령어.

 

이 명령어를 입력하고 엔터를 치면 Hello World라는 글자가 밑에 줄에 나온다.

즉, Hello World라는 내용을 프린트 해 줘! 라는 명령어인 것이다. 

이 명령어를 자주 접하면서 나는 영어를 처음 배웠을 때의, “I am a boy”, “You are a girl”, 

“How are you?” “Fine thank you, and you?”라는 고전적인 대사들이 떠올랐다.

 

코딩이라는 용어의 영단어를 구분해 보면, Code+~ing다. 코드를 가지고 뭔가를 하는 것 쯤으로 해석하면 된다. Marketing도 Market+~ing고 Branding도 Brand+~ing다. 마케팅은 시장에서 뭔가를 하는 것이고, 브랜딩은 브랜드를 가지고 뭔가를 하는 것이다.

그러면 다시 코딩으로 돌아가서 code는 무엇일까. 컴퓨터 언어다. 컴퓨터와 대화를 할 수 있는 언어가 코드다. 그러니까, 코딩도 언어니까, 영어를 배울 때처럼 “I am a boy”에 해당하는 뭔가가 필요하다. 그게 Print [Hello World]다.

 

그렇게 생각하면 아무 문제가 없을 것 같은데, 

우리가 성인이 되어서 다른 나라의 언어를 배울 때 어떻게 배우는지 한 번 생각해보자. 

 

성인이 되어서 다른 나라의 언어를 배우는 것은 (물론 취미삼아 배우는 경우도 있지만) 그 언어를 당장 사용하고 싶은 욕구가 있기 때문이다. 여행을 간다던가 하는 것 말이다. 여행을 가서 사용해야 할 생존영어를 익히려는 것이다. 생존영어를 익히는데 “I am a boy”부터 언제 시작하고 있는가? 바로 레스토랑에서 주문하는 영어를 배워야 하지 않을까?

 

코딩도 마찬가지다. 중고등학교 때 배우는 취미생활이 아니라면, 대학에 컴퓨터공학과로 입학한 게 아니라면 우리가 배우는 코딩은 ‘생존코딩’이다. Print [Hello World]를 연습하고 있을 시간이 없다는 말이다.

 

그래서 나는 유튜브와 블로그로 코딩을 배우기 시작했다. 코딩이라는 용어의 의미를 모르던 시기부터 무작정 프로그램을 설치했고, 설치한 다음부터는 내가 원하는 크롤링, 마이닝, 그리고 필요에 따라 회귀분석, 상관분석, 클러스터링 등 내가 원하는 분석 기법에 대한 코드들을 하나씩 따라해보며 익혔다. 

 

물론 유튜브 강의 영상을 보더라도 거의 Print [Hello World]가 빼놓지 않고 등장은 했지만, 나에게는 ‘Skip’이나 ‘10초 뒤로’같은 무기가 있었다. 내 생각에 유료 강의와 달리 무료 강의를 진행하시는 분들은, 어떻게 하면 독자들을 좀 더 오래 묶어 둘 수 있는지 잘 아시는 분들 같았다. 내가 지루할 때쯤, 그들 역시 재빠르게 다음 단계로 넘어가는 걸 보면 말이다.

 

이렇게 코딩을 배우면 내가 원하는 분석 방법들을 바로 확인할 수 있으니 정석으로 공부하는 것보다 조금은 덜 지루해 할 수 있게 된다. 물론 나는 빅데이터 분야로 이직하기 전에도 여론조사 같은 데이터를 다뤘었기 때문에, 데이터 분석에서 통용되는 몇몇 통계 분석 방법에는 익숙해 있기는 했다. 그래서 내가 알고 있는 통계 분석 방법이 코딩을 통해 어떻게 구현되는지만 확인하면 됐다.

 

어쨌든 남들이 잘 정리해 놓은, 혹은 무료 강의로 풀어놓는 코드들을 따라하며 숙지하는 건 의외로 간단했다. 그런데 정작 문제는, 그들이 올려놓은 코드가 내 컴퓨터에서 작동하지 않을 때다. 오류 메시지도 영어로 나와서 감이 없으면 무슨 문제인지 도통 알기가 어렵다. 그리고 이럴 때 코딩에 대한 기초 지식이 없다는 것이 얼마나 무서운지 깨닫게 된다.

 

코딩은 작성하는 것보다 오류를 수정하면서 더 많이 배우게 된다. 오류 메시지를 네이버와 구글에 그대로 복붙해가며 그 수많은 불완전한 정보들을 제치고 내가 원하는 해답을 찾을 때까지 몇 시간이고 매달려 있어야 한다. 그리고 컴퓨터의 오류를 해결할 때와 마찬가지로 하나의 오류 메시지를 해결하는 방법도 상황에 따라 여러가지가 있기 때문에 모르는 입장에서는 하나씩 다 해봐야 겨우 잡을 수 있다. (이럴 때 코딩이 컴퓨터 언어라는 것이 실감난다.) 문제를 해결했다는 블로그 게시물들을 보면 몇 시간씩 고생했다가 겨우 해결했다는 얘기가 적지 않게 올라오는 게 이 때문이다. 그래서 코딩 실력은 오류를 잡는 경험에 비례해 성장한다.

 

그래서, 이런 상황이 되면 Print [Hello World]부터 시작되는 책들을 찾아보게 된다. 부족한 기초지식을 습득하는 절차이다. Print [Hello World]를 배우는 것이 불필요하다는 얘기를 하는게 아니라, Print [Hello World]부터 '먼저' 공부할 필요가 없을 수도 있다는 얘기를, 결국 하고 싶었던 거다. 

 

예전에 해외여행을 갔을 때 한국인 가이드 한 분을 만났는데 이분이 현지 사람들과 대화는 다 하면서도 유독 글씨를 쓰거나 읽지를 못했다. 그때만해도 그게 너무 신기해서 이유를 물으니 생존을 위해서 자연스럽게 언어가 늘기는 했는데 체계적으로 배우지는 않아서 글자는 모른다는 것이다. 글자를 모르면 답답하지 않냐고 했더니 대화가 되기 때문에 괜찮다고 했다. 

하지만 덧붙이신 말이, 본인은 이제 어느 정도 연세가 되셔서 그렇게 해도 상관이 없었지만, 만약 젊은 사람들이 본인과 같이 언어의 한 쪽 면만을 배우면 안된다고 하셨다. 그 나라에서 살려면 대화만 가지고는 일정 수준 이상의 직업을 얻을 수 없다는 것이다. 당연한 얘기겠지. 대화가 되더라도 읽고 쓰기가 안되면 직업이 제한될 테니까.

 

어느 분야나 그렇지만 코딩 역시 마찬가지다. 나처럼 원하는 분석에 맞는 코드들만 '필사'하면서 익히더라도 결국 어느 단계가 되면 기본적이고 원론적인 훈련이 필요하다. 그러면 왜 처음부터 단계별로 가지 않고 분석 코드를 필사한 뒤 원론을 공부할까. 내 경우에는 원론부터 배워서 분석까지 이르는 과정을 기다릴만큼 시간이 많지 않았다. 그리고 시간이 있었다고 하더라도 나에게는 한없이 지겨운 시간들이 되었을 것이다. 지겨워서 포기했을 것이다. 작심삼일이라고 하지 않던가. 어차피 하다가 중간에 포기할 것이라면 원론부터 하지 말고 필요한 부분부터 하고 포기하는 게 훨씬 낫다고 생각했다. 그래야 그나마 한가지라도 해보고 포기하게 될 테니까. 물론 결국 코딩을 포기하지는 않았다. 그건 직업을 포기하는 것과 같았으니까.

 

한 가지 더, 

코딩을 배울 때 유튜브, 블로그, 책들 중에 어떤 컨텐츠를 더 추천하는지 물어보는 사람들이 더러 있는데, 내 생각에는 각각의 장단점이 있다. 그래서 모두 하는 것이 좋다. 다만 본인 취향에 따라서 우선순위를 정하면 될 일이다. 영상으로 익혀야 빠르게 습득하는 컨텐츠가 있고 책으로 익혀야 빠르게 습득하는 컨텐츠가 있다.

 

나는 통계를 배울 때 영상을 반복적으로 보면서 원하는 답을 빠르게 얻었고, 부족한 부분들은 책으로 채우는 과정으로 학습했다. 책도 처음에는 교양서적처럼 대중적으로 이해하기 쉬운 내용들을 먼저 접했고 점점 전문 서적으로 이동하는 방식이었다. 코딩은 앞에서 말한 것처럼 원하는 분석에 맞는 코드들을 먼저 익힌 뒤에 다양한 오류를 해결해 나가며 자연스럽게 보충학습을 했고, 원론적인 부분을 공부할 때는 이런 저런 책들을 사서 소설 읽듯이 읽었다. 

내가 산 책들 중에는 제목과 일부 내용만 달랐지 큰 줄기에서는 비슷한 책들도 꽤 많았다. 그래서 어느 정도 지난 후에는 중고로 되팔기도 했고 다시 중고로 사서 보기도 했다. 비슷한 책들을 사더라도 뒤적이며 읽었던 것 같다. 그게 한 권을 여러 번 보는 것보다 나에게는 나은 방법이었다. 공부에 정석은 없는 것 같다. 공부를 하기 위해서 가장 먼저 할 일은 나에게 맞는 방법을 스스로 찾아내는 것이다. 나에게 맞는 방법을 찾으려면 우선 나를 먼저 알아야 한다. 나를 먼저 알려면 남이 가르쳐 주는 “아주 쉽다는” 방법을 따라가지 못한다고 해서 자책하지 않는 게 1원칙이다.

 

지금 내가 얘기하는 방법 역시 꽤 괜찮다고 생각해서 따라했다가 실패하더라도 개념치 않았으면 좋겠다. 여러분에게는 여러분에게 맞는 방법이 기다리고 있으니까. 내가 어렸을 때도 이어폰을 끼고 공부하는 학생들이 많았는데 부모님과 자녀 사이에는 늘 이어폰을 끼고 공부가 되냐는 주제가 논쟁 거리가 되었다. 이어폰으로 음악을 들으면서 하면 음악을 듣느라 공부에 집중을 하지 못한다는 것이다. 그런데 얼마 지나지 않아 해외에서 이어폰을 끼더라도 공부에 집중하는 게 가능하다는 취지의 연구 결과가 나왔다는 얘기를 들었다. 실제로 그런지 아닌지는 알 수 없지만 그 역시 왠지 ‘사람마다 다르다’는 게 정답일 것 같다. 그래서 요즘은 백색소음이라는 단어도 대중적으로 쓰이지 않는가.

 

나는 집에서 일할 때 가끔 백색소음 차원에서 유튜브로 정치 뉴스를 틀어 놓는다. 다른 사람들이 드라마를 정주행하는 것처럼 나는 실시간 보이는 라디오나 '100분 토론' 같은 것을 틀어 놓는다. 가장 큰 이유는 유튜브임에도 드라마 1편 분량처럼 1시간 내외로 길어서 빈번하게 다른 콘텐츠를 클릭하지 않아도 된다는 안도감이 있고, 한 두 마디로 정리될 얘기를 부연 설명한답시고 길게 얘기하는 게 오히려 집중해서 듣지 않아도 되는 환경을 만들어준다. 

 

코로나 이후로 영상 컨텐츠에 대해 '몰아보기', '틀어놓기' 같은 수요가 과거의 '정주행' 만큼이나 인기를 끌었다. 몰아보기, 틀어놓기를 할 때는 내가 집중하지 않아도 흘려 들을 수 있는 언어로 된 영상이어야 하고 심각하지 않은 주제여야 한다. 그래서 2020년 이후에 국내 영화, 드라마가 많이 소비되었으며, 정치 관련 유튜브 방송 역시 나 같은 사람들 덕분인지 꾸준한 인기를 끌었던 것 같다.

 

얘기가 조금 샜던 것 같은데, 어쨌든 다른 사람들의 경험담에 너무 의미를 부여하지 않았으면 좋겠다.