처음 코딩하는 나를 만난다면

Bob Hwang
10 min readDec 10, 2019

--

처음 코딩 시작할 때 누군가 나에게 이야기해주었으면 하고 바랐던 내용 몇 가지를 정리했다. 취미 생활로서의 자바스크립트 이야기다. 자바스크립트를 취미로 하는 사람들이 늘어났으면 좋겠다. 무료 정보와 도서관 책들이 많아서 시작하는데 부담은 없다. 새로운 서비스를 시험하거나 작은 프로그램을 만들 때 자바스크립트는 좋은 친구가 될 수 있다.

재미를 찾는 것이 더 좋다

코딩을 하여 높은 연봉을 받는 프로그래머가 되거나 이름이 알려진 저자가 되는 것을 상상하는 것은 가끔 그 자체가 스트레스로 다가올 수 있다. 내가 선택한 방법은 느려도 즐기겠다는 것이다. 자세를 바꿨다. 짧은 시간에 고급 개발자로 만들어줄 무언가를 찾고 있다면 그런 무공 비급은 찾기 힘드니 그러지 말고 잠시 쉬었다 가자고 말하고 싶다. 지름길은 없지만 배우는 길은 많으니 자신에게 맞는 방법을 찾기 위해 조금씩 접해 보는 것이 좋다. 빨리 하려고 하면 지친다. 나를 잘 성장시켜주는 서비스가 어딘가에 준비되어 있으면 좋겠지만 찾기 힘들다. 재미있는 것을 찾는 것이 더 쉬운 방법이다. 이 재미있는 이야기를 들어줄 주변 사람도 함께 찾자. 한 명 정도는 있는 것이 좋다. 피드백을 받으면 지칠 때 큰 위로가 된다.

배우는 내용을 정리하자

적어야 한다. 자신의 기억을 너무 믿으면 안 된다. 글로 적지 않으면 생각을 되돌리기가 너무 힘들다. 적으면 나와 남이 볼 때 명확하다. 문서와 소스 코드를 만들어서 기록으로 남겨야 한다. 후에 내가 만든 내용을 참고할 수도 있다. 비밀 내용이 없다면 모두가 볼 수 있는 방법으로 공개하는 것을 추천한다. 이런 과정은 그 자체가 이력서다. 블로그에 글을 쓰고 인터넷에 코드를 올리면 된다. 꾸준히 코딩하는 자세를 보여줄 수 있어서 좋다. 하루 배워서 조금씩 정리하는 방법이 좋다. 그 사람이 먹는 것과 그 사람이 읽는 책으로 그 사람이 만들어진다고 생각한다. 내 생각의 목록은 나를 다른 사람에게 표현하는 것이라고 생각한다. 개인 광고라고도 볼 수 있다. 진부한 표현이지만 일석이조다.

모르는 것은 문제가 아니다

다들 그렇듯이 친구 집에서 컴퓨터를 처음 보았는데 키보드 사용해서 문자를 입력하면 단색 모니터에 움직이는 블록들이 보였다. 나도 하고 싶어서 컴퓨터 잡지에 있는 알 수 없는 알파벳을 입력했는데 동작하지 않았다. 한 글자라도 틀리게 입력하면 동작하지 않는다는 사실을 그땐 몰랐다. 컴퓨터가 이해할 줄 알았다. 지금도 안 되는 것을 그 옛날에 될 것이라고 생각했다. 물어보는 기술이 조금 어설퍼도 괜찮다. 만약 당신이 코딩을 하려고 마음먹었다면 아주 조금만 궁금해도 물어봐야 한다. 다 알 수 없으니 아는 사람에게 물어보는 것은 정말로 당연한 것이다. 이상한 질문이라도 좋으니 멈추지 말길 바란다. 모르는 문제를 이해하는 과정 자체가 즐거워야 오래 배울 수 있다고 생각한다. 말이건 글이건 부드럽게 물어보길 바란다. 당장 물어볼 사람이 없다면 나중에 물어볼 것을 대비해서 적어 놓아야 한다. 간혹 스스로 답을 찾기도 할 것이다. 그 질문들은 소중함으로 잊지 말자.

자바스크립트 개발자?

보통 어떤 개발자냐고 물으면 자바스크립트 개발자라고 말한다. 사용하는 프로그래밍 언어를 말하는 것이다. 사용하는 툴, 프레임워크, 라이브러리 등을 대신 말하기도 한다. 나는 C 언어를 사용했고 잠깐 Java를 경험한 개발자였다. 5년 전에 자바스크립트 언어를 주로 사용하기로 마음먹고 갈아탔다. 디바이스 드라이버 개발자라거나 안드로이드 개발자 혹은 웹 프로그래밍 개발자라고도 말할 수도 있다. 지금은 간단하게 자바스크립트 개발자다. 물론 이런 제목은 누가 달아주는 것이 아니고 스스로 만드는 것이다. 브라우저에서 동작하는 것을 만들면 프런트엔드 개발자라고 부르고 서버에서 자바스크립트를 사용한다면 대부분 Node.js 개발자라고 부른다. 이름은 계속 만들어지고 바뀌고 유행을 타서 그리 중요하지 않다. 무엇을 사용해서 무엇을 만든다고 말한다면 충분히 구체적이다. 이력서에 제목으로 써도 된다. 두리 뭉실하게 소프트웨어 엔지니어라고 해도 된다.

무엇이 재미있는가?

재미난 것은 주변에서 찾는 것이 좋다. 불편했던 소프트웨어, 웹 서비스, 하드웨어 장치, 매일 하는 게임을 예로 들 수도 있다. 전체가 아닌 일부분을 개선하기 위해 상상하자. 상상하는 내용을 한 장의 종이에 그리고 도움을 받을 사람을 찾아 이 그림을 보여주고 의견을 듣자. 부정적 의견을 들으면 불편할 수 있다. 세상 내 맘 같지 않다. 다 듣고 마음속에 잘 새기지만 결국 내가 결정하는 것임으로 불편한 마음 괘념치 말자. 그렇게 고른 재미난 일에 코딩이 포함되어 있다면 당신은 이제 즐거운 코딩 거리를 찾은 것이다.

도구가 필요하다.

맨손으로 나무를 깎아서 의자를 만들 수 있지만 그렇게 하는 것은 오버다. 목수는 도구 탓을 하는 것이 맞다고 생각하고 도구를 잘 구해야 한다. 당연한 이야기지만 코딩에는 컴퓨터가 필요하다. 컴퓨터에 어떤 소프트웨어를 설치해서 사용할지는 개인의 취향이다. 나라면 익숙한 컴퓨터에 익숙한 소프트웨어를 설치하겠다. 만들 것을 기준으로 도구를 선택하는 방법이 좋지만 우선 아무것도 모르겠다면 누군가 적어놓은 개발자 환경 만들기 같은 글을 읽는 것도 도움이 된다. 기초를 알려주는 프로그래밍 책 중에서 두꺼운 책을 고른다면 그 안에서 많은 개발자자 사용하는 좋은 툴들에 대한 내용을 읽을 수 있다. 이런 툴들은 계속 바뀔 것임으로 처음 고를 때 너무 공들이지 말자. 우선 시작하는 것이 중요하다.

툴은 언제든지 변경할 수 있다.

만들고 싶은 것을 결정해야 사용할 툴을 더 잘 결정할 수 있다. 어떤 언어든 프로그래밍을 하려면 코드를 입력할 수 있는 툴이 필요하다. 웹 게임을 만든다고 가정하고 세 가지 조건을 만족하는 툴을 찾았다. 자바스크립트 프로그래밍을 할 수 있어야 하고 여러 운영체제에서 동작하고 최근 6개월간 릴리즈가 있어야 한다는 조건이다. 그래서 마이크로소프트웨어에서 개발하고 동작하는 Visual Studio Code를 사용하기로 결정했다. 무료이며 여러 컴퓨터에서 동작한다. 간단한 툴이라도 선택할 때는 왜 선택하는지 목록을 만들 필요가 있다. 이 목록은 내가 다시 볼 수도 있고 팀원들이 볼 수도 있다. 결정할 때 생각했던 이유를 정리하는 것은 앞으로도 참으로 쓸모가 많다. 그냥 프로그램 아이콘이 맘에 들어서라고 적어도 된다. 이런 툴의 모든 기능을 사용할 필요는 없지만 나중에는 모든 기능을 알아야 한다. 급하면 우선은 몰라도 되지만 오래 사용할 예정이라면 당장 사용하지 않을 기능이라도 매일매일 조금씩 확인하는 자세가 필요하다. 코드를 입력하는 도구를 에디터라고도 하고 IDE라고도 한다. 어느 것이나 사용 방법과 장점을 자세히 설명한다. 이런 툴의 홈페이지를 통해 사용법을 직접 읽는 습관을 들어야 한다. 책을 읽는 것은 그다음이다. 영어로 된 사이트라고 불편해할 필요 없다. 구글 번역기를 사용하면 된다.

왜 만드는가?

당신 마음을 모르기 때문에 자바스크립트로 게임 만들겠다고 마음먹었다고 상상한다. 왜 자바스크립트 게임을 만들겠다고 생각했는지 마음속에 그린 다음에 “어떻게” 만들지도 생각하면 좋다. 어떻게 만들 것인가? 무엇을? 왜? 결국 생각이 돌아온다. 왜 만드는지 생각하는 것이 먼저다.

  • 만들지 않고 문제를 해결하는 것도 한 방법이다.
  • 이미 만들어진 코드를 찾는 것이 더 좋지 않을까?
  • 왜? 자바스크립트를 사용하는가?
  • 왜? 게임을 만드는가?

코드 조금 테스트 조금

왜? 가 정리되었다면 다음 단계로 넘어가자 다른 사람의 서비스를 사용해보자 종류도 많고 사용한 프로그래밍 언어도 여럿일 것이다. 자바스크립트 언어로 만들었으며 코드가 오픈되어 있는 것을 찾자. 주의할 점은 인터넷의 모든 데이터는 소유가 있다는 것이다. 코드 건 그림이건 글이건 마구 사용하면 안 된다. 라이선스를 파일을 읽어야 한다. 이 파일이 없다면 더욱 주의해야 한다. 여러 방식으로 해석될 여지가 있기 때문이다. 그렇지만 자신의 컴퓨터에서만 사용하고 삭제할 예정이라면 라이선스 파일은 좀 천천히 읽어도 된다. 다른 사람의 코드를 받았다면 아무것도 수정하지 말고 실행해 본다. 잘 동작하는가? 중요한 점은 조금 수정하고 실행해 보는 것이다. 자바스크립트 코드는 텍스트 파일이다. 보통 브라우저가 해석한다. 해석한다는 말은 자바스크립트 코드 텍스트 파일을 읽고 거기에 정의된 동작을 실행한다는 말이다.

  • 코드를 실행한다.
  • 수행한다.
  • 돌려본다.
  • 브라우저에서 띄워본다.

다 비슷한 말이다. 브라우저가 자바스크립트 텍스트 파일을 읽어서 그 코드 그대로 명령을 수행한다 라고도 할 수 있다.

브라우저

자바스크립트 파일을 수정하거나 만들기 전에 어느 브라우저에서 읽을지 결정해야 한다. 브라우저는 여럿이다. 잠깐 아래 링크에서 인기 있는 브라우저를 한번 보고 가자

https://browsehappy.com/

당신이 만들 자바스크립트 코드를 수행할 브라우저를 선택해야 한다. 자바스크립트 코드는 모든 브라우저에서 동작해야 하는 것이 아닌가? 아니다. 브라우저 만드는 곳에 따라 다르다. 당신이 만든 자바스크립트 코드가 이 브라우저에서는 동작하고 저 브라우저에서는 동작하지 않을 수 있다. 당신 책임이다. 그렇면 어떻게 알아야 하는가?

표준

모든 브라우저는 어떤 표준을 따른다고 자기 자신을 설명한다. 자바스크립트 표준도 마찬가지다. 알아야 할 것이 한두 개가 아니다. 컴퓨터에 관련된 모든 구성 요소는 변하기 마련이다. 변화를 표시하는 기준으로 버전을 사용한다. 주로 숫자로 표시되는데 시간에 따라서 변경된 내용을 기술할 때 사용된다. 자바스크립도 마찬가지로 버전이 있다. 지원하는 자바스크립트의 버전을 브라우저 설명에서 찾을 수 있다. 여기서 또 다른 질문 “그렇다면 표준은 누가 만드나?” 유명한 몇몇 단체명을 나열하겠다.

당신이 사용하는 기술에 따라서 살펴봐야 할 표준 단체도 변경된다. 어느 브라우저에서 특정 버전 자바스크립트 코드를 해석한다고 설명한다면 우선 믿고 사용한다. 그렇지만 확인은 개발자가 해야 한다. 대부분의 프로그래밍 언어가 그렇듯이 자바스크립트도 텍스트 파일로 만드는데 파일을 브라우저가 읽도록 도와주는 것은 우리 책임이다. 이 방법을 정하는 것도 자바스크립트 개발자가 할 일이다. 내 하드 드라이브에 있는 자바스크립트를 다른 컴퓨터에 있는 친구의 브라우저에서 간단하게 읽을 수 있는 방법은 없다.

자바스크립트 사전

자바스크립트 명세를 설명한 사전이 있다. ECMAScript라고 하는데 이 문서를 모두 봐야만 자바스크립트 개발을 할 수 있는 것은 아니다. 브라우저 만드는 사람들이 자바스크립트를 해석하는 기능을 추가하기 위해서 이 사전을 참고한다. 처음에는 이런 딱딱한 사전보다는 투토리얼이라고 불리는 문서를 보는 것이 좋다. 구글 검색으로도 쉽게 찾을 수 있다. 온라인이 불편하면 책을 보면서 따라 하는 것도 좋다. 조금씩 배우는 것을 권한다. 책 값이 불편하면 동네 도서관을 이용하는 것도 좋은 방법이다. 나의 경우 2군데 도서관에서 14권의 책을 약 3주간 빌려본다. 이 정도 보았는데도 부족하다면 그때 책을 사면된다.

  • 인터넷에서 자바스크립트 투토리얼 문서 보고 따라 하기
  • 인터넷에서 자바스크립트 동영상 보고 따라 하기
  • 도서관에서 자바스크립트 책을 빌려서 보기

처음에는 무료 서비스를 이용하다가 책을 사거나 유료 동영상 강좌를 듣는 것을 권한다. 무료 자료만 하더라고 한참을 보게 될 것이다. 그만큼 자료가 넘쳐난다는 말이다. 조금씩 배우는 것도 좋은데 오래 기억하려면 결과물을 남기면서 배워야 한다. 연습한 코드가 흔적으로 남아야 한다. 인터넷에서 공개적으로 무료로 코딩 흔적 남길 수 있는 GitHub라는 사이트가 있는다. 사실은 대단한 사이트여서 많은 개발자가 여기서 여러 서비스를 만들고 있다. 이 사이트에 가입해서 남기는 나의 코드는 나중에 회사를 결정할 때 이력서처럼 사용될 수 있음으로 얼른 시작하는 것이 좋다.

무료 서버

서비스를 무료 서버에 올리고 싶다면 heroku (or openshift) 서비스를 사용하면 된다. 여러 종류의 서버를 지원함으로 웹 서버든 노드 서버든 선택해서 사용할 수 있다. 비용을 더 지불하면 원하는 만큼의 서버를 제공받을 수 있다. Heroku 무료 계정을 만들고 github에 코드를 올리고 heroku 계정에서 github 코드를 연결하면 yourapp.herokuapp.com과 같은 주소로 접속하여 결과를 확인할 수 있다. https 접속은 덤이다. 무료 heroku 계정은 가끔 서버 로딩에 10초 정도 걸릴 수 있지만 테스트하기엔 좋다. 딱 한 번만 올릴 내용이 아니라면 heroku와 github를 연결하는 것이 편하다. 웹 주소가 마음에 들지 않는다면 도메인만 하나 사서 변경할 수 있다. 또, heroku 서비스가 마음에 들지 않는다면 다른 서버로 갈아타서 github만 연결하면 된다. 대부분의 클라우드 서비스들은 github 연결을 지원한다. 개발자를 구할 때 기술 블로그나 github 계정을 요구하는 회사들도 늘고 있음으로 코드를 github에 두길 바란다.

--

--