본문 바로가기
그냥 코딩글

0003. 코딩의 개념

by 보초코더^_^;; 2023. 1. 3.
반응형

1. 기술 없이 눈치로 연명하는 사람

필자는 코딩을 아예 해본 적이 없다. 그래서 어려운 용어나 뭔가 알지 못하는 글이 잔뜩 있는 상황은 이해 자체를 하고 싶지가 않았었다. 다만, 필자는 눈치가 매우 빨라서 처음 보는 일도 어떻게든 뭔가를 해오긴 했다. 세상만사 다 이치가 비슷한 것인지 코딩을 배우지 않더라도 약간의 눈치로 약간의 변화는 줄 수 있었다. 아주 하찮은 변화라서 공개하는게 맞나 싶을 정도지만 말이다.

 

F12를 누르면 나오는 개발자 도구. 현재 보고 있는 홈페이지가 어떻게 만들어졌는지 나온다.

이전에 인터넷을 사용하다가 뭔가 키를 잘못 눌러서 엄청 복잡한 영어들이 나온 적이 있었다. 바로 위의 화면이다. 뭔가 잘못 건드리면 안 될 것 같은 느낌이 매우 강하게 들었었다. 그런데 알고 보니 매우 많은 정보가 담겨있었다. 적어놓고 보니 아주 당연한 얘기다;;

카페 같은 데서 F12(개발자 도구)를 눌러놓으면 왠지 으쓱할 수 있다.

 

오늘의 포스팅은 저 많은 정보들을 약간 고친 정도의 얘기라고 할 수 있겠다.

 

 

 

2. 그래서 코딩이 뭔데?

시작하는데 있어서 가장 큰 문제는 코딩코딩 얘기를 많이 들었지만 대체 '코딩'이라는 녀석이 뭔지 몰랐다는 거다.

책에서는 코딩을 Code+ing의 합성어로 코드를 작성하는 것, 컴퓨터가 이해할 수 있는 언어로 프로그램을 작성하는 것이라고 정의하고 있다. 그런데 이것보다 훨씬 쉬운 개념이 나무위키에 있었다.

출처 : 나무위키 '코딩'

 

부연설명 없이 제일 이해하기 쉬운 개념은 '코딩 = 컴퓨터 프로그램을 만드는 행위'라고 이해하면 된다.  프로그램의 정의는 설명하긴 어렵지만 뭔가 대충 아는 느낌은 있으니 이 정도의 정의가 가장 이해하기 편할 것 같다. 그래도 뭔가 찜찜해서 내친김에 프로그램의 정의도 찾아보았다.

 

출처 : 나무위키 '프로그램'

코딩의 진입장벽을 보여주는 가장 좋은 사례가 바로 위의 상황이 아닌가 싶다. 개발자 입장에서 매우 쉽게 쓰인 글은 일반인 눈에는 도통 무슨 말인지 모를 글들이다. 위의 글도 가볍게 읽기 시작했지만 뒤로 갈수록 점점 미궁에 빠지는 기분이다. 사실, 각잡고 읽으면 이해야 할 수 있겠지만 필자는 약간의 집중을 놓치면 이해를 못 하는 사람이라서 그동안 이해하려고 노력해 본 적이 없다.

 

그래서 갑자기 이 글을 보시는 개발자분들께 양해를 구하자면, 코딩이나 컴퓨터 관련된걸 가르쳐주실 때는 우리를 유치원생이라고 생각하고 가르쳐 주시면 안 된다. 유치원생(5~7세)이 아니라 그보다 더 어린 어린이집(1~4세) 영아들을 가르친다고 생각하고 한글 처음 가르칠 때 ㄱ, ㄴ, ㄷ을 배우는 것과 같은 레벨로 가르쳐 주셔야 할 것 같다. 

우리를 영아라고 생각하시면 될 것 같다.

(여담이지만 이 글을 쓰면서 유아, 영아 개념을 몰라서 찾아봤는데 신생아, 영아, 유아, 소아, 청소년 등 어린 개념도 다양했다. 세상에 쉬운 게 하나도 없다)

 

결론적으로 영아 수준으로 컴퓨터 프로그램을 설명하면 '프로그램 = 컴퓨터에게 일 시키려고 쓴 글로 컴퓨터를 일하게 만드는 것'정도로 이해하면 될 것이다. 

 

 

3. 그래서 뭘 어쩌라고

독자분들께 시비 거는 게 아니다. 코딩을 처음 배운다고 했을 때 필자가 느꼈던 감정이다. 이제 간신히 코딩이 뭐고, 프로그램이 뭔지 단어의 의미만 알았기 때문에 뭘 어떻게 배워야 하는지는 전혀 다른 세상의 이야기였다. 그런데 그중에서도 가장 많이 들리는 단어는 바로 '언어'였다. C언어, C++, 자바(JAVA), 파이썬(Python) 같은 말은 들어보기만 했지만 정확한 개념은 몰랐다. 물론 지금도 모른다는 건 함정

 

예전에 개발하던 친구와의 대화가 생각이 난다. 친구가 이력서를 쓰는 도중에 갑자기 필자에게 이런 질문을 던진다.

친구 : 이력서 언어(language) 란에 수준을 어떻게 써야 되지?

필자 : 웬만하면 본인 수준보다 높여서 써. 어차피 사람마다 기준이 달라서 그러려니 할 거야.

 

여기까지는 매우 평범했다. 그런데 이력서 언어 란에 이렇게 쓰여있는데 아닌가.

  • 언어(Language)
    영어(중급), 중국어(중급), 파이썬(고급), JAVA(중급), C(중급)

이걸 보고 필자는 파이썬, 자바, C를 왜 저기에 쓰냐고 했고 개발자 친구는 황당하다는 표정을 지었다.

필자 : 저기 언어는 영어, 중국어 같은 걸 말하는 거야

친구 : 파이썬은 왜 안돼?

필자 : 외국인이랑 소통하는 언어가 아니잖아

친구 : 나 파이썬으로 외국인들이랑 소통하는데?

필자 : 아니 일반적으로 소통하는 방법이 아니잖아

친구 : 왜 일반적이 아니야? 전 세계에서 영어보다 많이 쓰이는 게 파이썬인데?

필자 : 그래 네 말이 맞다.

 

문득 떠오른 짤

다시 한번 개발자 트롤에 대한 트라우마가 떠오르는 순간이었다.

그런데 나중에 알고 보니 이건 아주 유명한 개발자들 유머라고 한다. ㅎr...

(물론 저 개발자 친구는 유머가 아니었다는 게 유머라면 유머였다.)

 

 

4. 그래서 언어가 뭔데?

그런데 사실 생각해보면 친구 말도 맞다. 언어라는 것은 소통하기 위해 만들어진 것이기 때문에 파이썬과 같은 프로그래밍 언어도 언어라고 볼 수 있을 것이다. 다만, 영어, 중국어와 같은 언어와 프로그래밍 언어를 배우는 목적의 차이는 아래와 같은 것이다.

 

  • 영어, 중국어 : 언어가 다른 사람 - 사람끼리 소통하려고 배움
  • 자바, 파이썬 : 언어가 다른 사람 - 컴퓨터가 소통하려고 배움

 

즉, 프로그래밍 언어, 컴퓨터 언어라고 하는 것은 사람과 컴퓨터가 소통하려고 만들어진 것이다. 그리고 컴퓨터와 소통할 때 목적에 따라 효율적으로 소통할 수 있도록 다양한 언어가 존재하는 것이다. 5개 국어를 원어민처럼 하는 외국인이 있으면 우리가 목적에 따라서 언어를 바꿔가면서 적합한 언어를 사용해서 소통하는 것과 마찬가지인 것이다.

예를 들면, 욕은 한국이 선진국이기 때문에 강렬하게 표현할 땐 한국 욕을 쓰는 게 일본어 욕(빠가 : 바보, 칙쇼 : 닥쳐) 보다 훨씬 감정 전달하기가 용이할 것이다. 

출처 : 신서유기4에서 송민호가 강호동에게 '요즘 욕'을 했었다.

 

5. 세 줄 요약

  1. 코딩은 컴퓨터 프로그램을 만드는 행위이다.
  2. 프로그램은 컴퓨터를 일하게 만드려고 컴퓨터의 언어로 쓴 명령들이다.
  3. 프로그래밍 언어는 사람과 컴퓨터가 소통하려고 만든 것이고 목적에 따라 적합한 언어를 사용한다.

 

 

※ 제가 배운 내용을 기술하다 보니 설명이 부족하거나 틀린 내용이 있을 수 있습니다.

의견 주시면 적극 반영하겠습니다.

감사합니다^_^

반응형