프로그래밍을 할 줄 아냐시면... 배울 수밖에
회사에 입사해 전략기획 부서에 배치받고 1주 정도 지났을 때다. 선배가 물었다.
- 프로그래밍 같은 것 좀 할 줄 알지?
- 모릅니다.
- 아니 막 거창한 거 말고 그냥 데이터 읽고 시각화하는 정도만 하면 돼.
-..??
-..?? 몰라? 허허 그렇군.
선배도 나도 당황했다. 요즘 주니어들 기본 소양으로 파이썬 정도는 장착하고 온다고 생각한 나의 선배. 엑셀이면 됐지 문과쟁이한테 뭘 바라나 생각한 나. 파이썬 같은 근사한 무언가를 다루는 모습은 내가 상상했던 게 아니긴 한데.
그렇게 시작됐다. 금융회사 주니어의 코딩 분투기.
마케팅, 기획 등 데이터베이스를 다루는 직군의 주니어 관점에서 코딩을 다룰 예정이다. 코딩 분투기의 목표는 '파이썬으로 데이터 시각화하기'다. 구체적으로는 시각화된 정보가 필요할 때 '찾아가며' 파이썬을 사용해 결과물을 만들어내는 것.
일단 나는 개발자가 아니다. 수많은 프로그래밍 언어 중 파이썬 말고는 잘 모른다. 이 글을 읽는 당신이 필요한 게 뭔지 난 알지 못하고, 데이터 시각화의 다양한 도구 역시 모두 알지는 못한다. 상사가 데이터 시각화를 요구했을 때, '비전공자이지만 겁내지 않고 파이썬에 접근할 수 있는 것', '프로들이 유튜브 강의, 블로그 찾아보며 아름아름 따라 할 수 있는 것' 딱 그 정도가 우리의 목표다.
목표에 도달하기까지 주 2회 4주, 8단계 정도를 예상하고 있다.
우리는 프로그래밍이 뭔지, 코드는 또 뭔지, 이게 왜 필요한지 그리고 왜 하필 파이썬인지 아직 모른다. 오늘 글이 마무리될 때 즈음 여러분들이 이 질문에 대답할 수 있게 되길 바란다.
우리가 해야 할 프로그래밍. 여기서부터 문제다. 'Program + ing', 프로그램을 ing한다는 것 같은데, 프로그램이 무엇인지에서부터 시작해 보자.
내가 프로그램에 대해 갖고 있는 대략적인 인상은 이랬다. '특정 기능을 사용하기 위해 컴퓨터로 복작복작 만들어놓은 무언가' 정도.
사전을 찾아보면 '어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문 집합'이라고 프로그래밍을 정의한다. 와닿지는 않는다.
좀 더 직관적인 이해를 위해 과거 내 선생님의 표현을 인용하자면 이렇다. '컴퓨터에게 특정 일(비즈니스적 문제해결)을 시키는 문장의 집합'. 예를 들어.
상사가 나에게 주문한다. 통계청에서 특정 자료를 뽑아 매일 예쁘게 도표로 가공해서 메일로 보내줄 것. 나는 이걸 컴퓨터가 알아들을 수 있는 언어로, 컴퓨터에게 시킨다. 그 과정에서 내가 한 일이 프로그래밍(프로그램 만들기)다.
프로그래밍이 프로그램이라는 책을 쓰는 과정이라면, 코딩은 그 책을 구성하는 문장(코드) 쓰기라고 이해하면 좋겠다. 코드는 컴퓨터가 알아들을 수 있는 문장(명령문)을 뜻한다.
'일을 시킨다고? 말로 하면 됐지 코드는 또 뭐냐'가 내가 다음으로 품었던 의문이다. 결론은 컴퓨터와 인간이 다르기 때문이다. 이진법을 언어로 쓰는 컴퓨터와 우리는 기본적으로 말이 안 통한다.
컴퓨터한테 'hello world'를 출력하라고 명령한다. 이때 "write 'hell word' in my terminal"이라고 주문하면 컴퓨터는 알아들을 수 없다. 그렇다고 우리가 "0101010010100010"이라고 말해주기는 조금... 그렇다. 대신 print('hello world') 라고 컴퓨터에게 말해주면, 이건 알아듣는다.
컴퓨터도 적당히 알아듣고, 인간도 적당히 알아듣는 언어의 합의점이 프로그래밍 언어, 그 언어로 쓴 문장이 코드다.
자 그럼 앞으로 우리가 해나갈 일을 퉁쳐 '코딩'이라고 부르면 되겠다. (우리가 할 수준의 데이터시각화는 거창하게 책을 쓸 일 없다. 문장 몇 개만 잘 쓰면 된다. 프로그래머가 될 필요는 없고 코더 정도 하면 되겠다.)
프로그래밍이 뭔지, 코딩이 뭔지 우리는 이제 알았다. 근데 코딩을 왜 하는지는 아직 모른다. 사실 매우 간단한 이유다. '신속', '정확'.
위에 통계청 예시로 돌아가보자. 통계청의 수만 데이터에서, 내 상사가 원하는 데이터를 찾고, 그걸 가공해서, 메일로 보내야 한다.
일단 귀찮고, 오래 걸리며, 인간이 하는 일이라 실수가 있을 수 있는데, 그 보고가 부서장, 대표, 그룹사까지 올라간다고 생각해 보면 벌써 아찔하다. 대신 컴퓨터한테 일을 시키면 길어야 몇 분 안에 끝나고, 잘못될 일도 없다(코딩을 똑바로 했다면).
그렇다면 왜 파이썬인가? 이것도 간단하다. 우리 문과쟁이들이 다루기 아주 쉽기 때문이다.
프로그래밍 언어는 다양하다. 한 번쯤 들어봤을 C언어서부터 COBOL, C++, Java, Javascript, Assembly.... 그중에 파이썬은 우리가 아는 영어와 꽤 닮았다. 직관적이고 배우기 쉽다.
C언어와 비교해 보면 크게 와닿을 것이다. hello, world를 컴퓨터에 출력한다.
C언어
#include <studio.h>
void main(int argc, char[][] argv) {
printf("hello, word");
}
..??
vs
Python
print("hello, world");
흠. 마치 영어로 글쓰기 vs 아랍어 글쓰기 정도랄까? 고마워요 파이썬.
오늘은 여기까지다. 글의 서두에서 네 가지 질문을 이야기했었다. 프로그래밍이 뭔지, 코딩이 뭔지, 이걸 왜 하고, 왜 하필 파이썬을 쓰는지. 내 설명이 부족했을지 모르겠으나, 여러분 나름의 고민과 대답을 찾았길 바란다.
다음 글에서는 함께 파이썬을 설치해 볼 것이다. 이후 '출력', '변수', '기본데이터 타입', '연산'이라는 기본적인 개념들을 비전공자적 관점에서 풀어보려고 한다.