요즘 나의 취미는 프로그래밍이다. 시작한 지 1년이 훌쩍 지났으니까, 이제는 좀 취미라 할만한 수준이 된 거 같다. 처음에는 그냥 내 아이폰에 내가 만든 앱 하나 깔아보자는 단순한 생각에서 시작했다. 아이폰용 앱을 만드는 플랫폼은 애플에서 제공하는 Xcode다. 사실, 나는 이거만 깔면 예전에 나모웹에디터로 홈페이지 흉내 내듯 앱도 만들 수 있는 줄 알았다. 그런데 Xcode로 'Hello world'라도 아이폰 화면에 나오게 하려면, objective C 언어를 배워 코딩이라는 걸 해야 한다

'그래 그까짓 거. 고등학생도 학교 공부하며 앱 만들어 배포하던데, 나라고 못할 건 뭔가.' 

이 생각으로 Objective C 책 한 권을 샀다. 



(바로, 이 책이다. 혹시, Objective C를 처음 공부하려고 책을 고민한다면, 이 책은 사지 마라. 별로 도움 안 된다. 번역 수준도 열악해서 읽다 보면, 영어 원문이 어떤 내용인지 궁금해진다.)



막상 프로그래밍 공부를 Objective C로 시작해보니, C언어 문법을 전혀 모르는 상태에서 objective C를 공부하는 건 덧셈은 건너뛰고 곱셈 배우는 격이더라. 결국, 다시 'C언어'부터 공부를 시작했다. 다행히 C언어 문법은 많이 어렵지 않았다. 자신감이 생겨 몇 주 만에 C와 Objective C까지 일독을 마쳤다. 그런데 다시 Xcode를 열어봐도 내가 할 수 있는 건 아무것도 없었다. 연애를 책으로 배운 남자가 여자를 처음 만난 상황 같았달까. 결국, 실무형 Xcode 강의를 해주는 인터넷사이트에 유료로 가입했다. 강의를 들으니, 이제 좀 눈이 떠지는 느낌이었다. 


(http://www.iphonestudy.co.kr/?_pageVariable=SPECIALCOURSE&cIdx=801

이 사이트다. 강의는 좋다. 그런데 업데이트가 전혀 이루어지지 않는다. 유선상으로 문의해본 결과, 강사가 건강상의 문제로 잠수를 탄 상황이란다.)



이즈음 나는 정말 눈만 떴다.

강의가 워낙 오래된 버전의 Xcode 기반에서 이루어지다 보니, 강의 내용을 따라 해보면, 제대로 구동되지 않는 코드가 대부분이었다. 나는 결국 다시 업데이트가 제대로 이루어지는 외국 사이트의 영문 교과서를 유료로 구매했다. 


(http://www.raywenderlich.com - 업데이트도 빠르고, 이곳에서 정말 많이 배웠다. 워낙 많은 강의가 무료로 오픈되어 있지만, 유료로 판매하는 교과서는 역시 돈값을 하더라.)



이곳에서 몇 달을 놀며 지냈더니, 드디어 나의 아이폰 앱이 완성되었다. 애플 개발자 사이트에 유료 회원으로 가입해서 아이디를 만들고 내 아이폰에 내가 만든 앱을 처음 깔았을 때의 그 감격이란... 그런데 그 감격은 그리 오래가지 않았다. 나의 아이디어는 성층권을 지나 화성을 향해 가는데, objective C언어와 Xcode만으로 만들 수 있는 앱은 게시판도 제대로 없는 개인홈페이지 수준이었다.



결국, 아이폰용 앱 개발 실력만 갖추고는 큰 그림을 그릴 수 없다는 걸 깨달았다. 그리고 '서버'라는 큰 그림이 그제야 보이기 시작했다. 아이폰(클라이언트)들의 구심점이 되는 서버를 이해하지 않고서는 여러 유저와 정보를 주고받으며 작동하는 앱을 만들 수 없다. 나는 울며 겨자 먹기로 서버도 공부해보기로 결정하고, 나의 맥에 일단 가상머신으로 우분투(Ubuntu) 서버를 설치했다. 그리고 이십 년 가까이 잊고 살았던 CLI(command line interface: 검은 바탕화면에 흰색 글씨 그리고 하얀 커서만 깜빡거리는)와 다시 조우했다. 알록달록 예쁜 GUI(graphic user interface)에 완전히 길들었던 내가 Finder(나는 맥 유저다. 파인더는 맥에서 쓰이는 윈도탐색기라고 생각하면 된다.) 없이 명령어로 폴더를 찾아다니며 느꼈던 당혹스러움이란. 여기에 더해 한없이 멍청한 vi editor와 씨름하며 날을 세울 수 있었던 건, 순전히 자기 주도적 학습이었기 때문에 가능했으리라. 만약, 학부 수업이나 먹고 살기 위해 시작한 일이었다면, 이쯤에서 상콤(?)하게 접었을 거다.



어쨌거나, 재미로 시작한 일이니 서두르지 말고 끝까지나 가보자는 마음으로, 우분투 서버에 아파치(apache) 웹서버를 깔았다. 일단은 웹서버와 클라이언트의 관계를 이해해야지 싶었다. 그랬더니, 이번에는 HTML과 CSS가 장벽으로 다가왔다. 나는 평소 웹디자인과 웹 개발에는 전혀 관심이 없었다. 스마트폰이 대세를 이루는 요즘 PC 인터넷 기반 웹 서비스는 언젠가 모두 아이폰앱과 안드로이드앱으로 대체될 거라는 게 나의 생각이었다. 모바일웹페이지는 아무리 봐도 구리니까. 그런데 이건 나의 크나큰 오산이었다. 앱이든 웹이든 인터페이스의 차이일 뿐, 결국 서버로부터의 데이터를 유저에게 전달한다는 의미에서 둘은 공생 관계다. 결국, 처음에는 전혀 관심도 없었던 HTML과 CSS의 문법을 공부하기 시작했다. 다행히 HTML과 CSS에 대한 내용은 인터넷에 좋은 자료가 많아서 공부가 쉬운 편이었다. 하지만 이게 또 끝이 아닐 줄이야. 웹페이지를 통해 사용자가 서버와 데이터를 주고받는 동적 설계를 위해서는 또 다른 프래그래밍 언어를 공부해야 했다. 이런 젠장. OTL... 우분투 서버에 이번에는 PHP를 설치했다. PHP는 HTML 안에 동적 기능을 부여하기 위한 프로그래밍 언어다. 여기까지가 요즘 나의 진도다.



(PHP 기본문법은 '오픈튜토리얼스(http://opentutorials.org)' 홈페이지에서 egoing 님의 동영상 강좌를 보며 배우고 있다. egoing님은 가히 아마추어 개발자를 위해 하늘에서 내려오신 천사 같은 분이다.)



이렇게 머리 빠개지게 복잡한 취미 생활을 하면서 내가 느낀 점은 다음과 같다.


1. 개발자님들 연봉은 지금보다 두 배 이상 올라야 한다. 프로 개발자가 되려면 지금 내가 한 공부보다 배는 더 해야 할 텐데, 현재 개발자들의 연봉은 불합리하다. 프로그래밍 공부는 내가 배운 의학에 비해 절대 적은 양의 공부가 아니다. 그럼에도 학습을 마친 뒤, 지금 정도의 대우밖에 기대할 수 없다면, 우리나라 소프트웨어 업계의 미래는 어둡다. 자원이 부족한 우리나라의 상황을 고려할 때, 무에서 유를 창조하는 고부가가치 산업의 단초를 소프트웨어 개발에서 찾아야 하는 건 너무 당위적이지 않는가. 


2. 프로그래밍을 공부하면서, 컴퓨터 에러에 무척 관대해졌다. 내가 만드는 수준의 단순한 앱도 버그 하나 잡는 데 일주일씩 걸리는데, 요새미티나 윈도우 같은 덩치 큰 프로그램이야 더 말해 무엇하랴. 버그가 있으니 컴퓨터다. 


  1. BlogIcon 도플파란
    2014.11.17 15:29 신고

    그러게요... 개발자 처우는 정말 개선해주었으면 해요 ㅠㅜ

  2. BlogIcon BARK
    2014.11.17 16:19 신고

    버그가 있으니 컴퓨터다 라는 말이 참 와닿네요ㅎ

  3. BlogIcon JunkMan
    2014.11.17 16:24 신고

    개발자 처우보단, 에러에 대해서 너무 각박하게 욕하고, 뭐라하는 댓글들도 어떻게 해줬으면 하는 마음입니다.
    에러나면, 일단 알려주고 대처해달라고 한 다음에 약속한 기간이나 이야기에서 맞춰서 욕을 하든 뭐하든 하면 모르겠는데, 그냥 안된다고 욕을 해버리는 것보면, 한편으론 떼쓴다고 생각이 들면서 화가 나고 한편으론 얼마나 중요하길래 그런거지 라고 생각이 반반인...

    • BlogIcon 김종엽 깜신
      2014.11.20 10:49 신고
      댓글 주소 수정 및 삭제

      유저들은 프로그래밍을 한 번도 해보지 않아서 그래요. 어쩌겠어요. 역지사지가 세상에서 가장 힘든 일인걸요. 저 같이 개발자 분들 이해하는 유저도 있으니까, 힘내세요. 화이팅~

  4. BlogIcon 조아하자
    2014.11.17 23:58 신고

    공감가는 부분이 많네요. 저는 웹디자인 쪽에서 시작해서인지 html css를 먼저 공부했고 그 다음에는 php공부하다가 어려워서 기초가 있어야 하겠구나...라는 생각에 c배우고 순서였던 듯 합니다.^^;

  5. BlogIcon tucan.dev
    2014.11.18 23:27 신고

    아이폰 개발자입니다
    어제 앱 배포하고 오늘 버그 찾았습니다(흑흑)
    포스팅 재밌게 잘 봤어요 ㅎㅎ

  6. BlogIcon ㅁㅁㅁ
    2014.12.19 08:36 신고

    1. 상상하시는 것처럼 열심히 공부하는 개발자는 드뭅니다. 대충 학원 몇개월 옆자리 아가씨와 잡담이나 하면서 다니다가 "자칭" 개발자가 되는 분들이 너무 많습니다.
    2. 고용자는 "자칭" 개발자들을 구분할 수 있는 능력이 없습니다. [사실 이게 원인이죠]
    2. 이러다 보니 공급이 너무 많습니다. 시장원리에 따라 급여는 계속 내려갑니다.

  7. BlogIcon 안형우
    2015.01.21 11:37 신고

    vi는 멍청하지 않아요 ㅋ
    글 재밌게 봤습니다. 멋지세요!

  8. BlogIcon 익명
    2015.04.28 19:37 신고

    힘들 게 한 것에 비해 수익이 나질 않으니... 우리 나라를 포함한 it 인프라 구조 개혁이 절실히 필요한 듯...

  9. BlogIcon 수리
    2016.01.10 18:52 신고

    반가워요 저고 프로그래밍 취미로 공부하는데 에러 정말...ㅡㅡㅋ 저는 자바쪽 공주했고 안드로이드 좀 하다가 웹과 서버의 필요성을 절실히 깨닫고 공부하고 있습니다 근데 워드프레스 구조도 파악이 힘드네요ㅠㅠ 하면 할 수록 해야할 공부가 나와서 심심할 여지가 없다는게 장점ㅋ 더불어 강제 영어공부도 된다는 장점이 있네요ㅎㅎ