PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2017/12/12 19:36:48
Name 시드마이어
Link #1 https://brunch.co.kr/@skykamja24/97
Subject [일반] 독학으로 프로그래밍
피지알과 관련된 이야기라 브런치에 올린 글을 피지알에도 공유해봅니다.

------------------------------------------------------------------------------------------------------

저는 친구가 별로 없었습니다.
어쩌면 컴퓨터를 그렇게 좋아하게 된 계기도 혼자 있는게 편했기 때문이 아닌가 싶습니다. 처음 배우기 시작한건 부끄럽지만 친구 컴퓨터를 해킹해 장난치고 싶어 리눅스 책을 샀을 때입니다. 그땐 초등학생 때라서 인터넷에서 검색해서 들은 내용이 리눅스만 있으면 해킹을 배울 수 있다는 거였습니다. 그렇기에 리눅스 책은 해킹의 정수를 담은 바이블로 믿었습니다. 하지만 너무 컴퓨터가 안 좋았기에 책에 들어있는 리눅스 CD는 어떻게 해도 설치할 수 없었습니다. 용돈을 모아 한 권에 5만원씩 하던 레드햇과 페도라를 담은 책을 여러번 샀며 실패했지만 그래도 해킹에 대한 마음은 사라지지 않았습니다.
lBhVVHHCaCceazlv36SmW5opbq4.jpg10년만에 들어가도 같은 모습인 해커스쿨
그러던 중 해커스쿨이라는 인터넷 사이트를 알게 되었습니다. 현재도 그렇지만 해커스쿨은 자체적인 털넷을 통해 모의 해킹을 배울 수 있었습니다. vi 에디터가 뭔지도 모르는 초등학생 때 털넷에 들어가서 남들이 알려준 코드를 복사해서 붙여넣기하며(터미널 환경은 붙여넣기 방법도 몰랐지만) 한 단계씩 나아갔습니다. 딱히 노트가 없어서 다 쓴 농협 달력 뒷편을 찢어다가

ls : 디렉터리 내부 보기
cd : 다른 곳으로 가기

이런식으로 적으며 공부했습니다. 하지만 안타깝게도 해커스쿨에서도 깊게 배우진 못했습니다. 답안지를 보지 않고선 뚫을 수도 없었고, 수 백 페이지의 리눅스 책은 해커스쿨의 문제를 풀기엔 너무도 방대했습니다. 그렇게 중학생이 되었고, 리눅스와 해킹을 포기한 저는 우연한 계기로 웹을 배웠습니다.
8NsXOuqUM48B3Prq0k6QnEdRCDY.jpg10년이 지나도 한결같은 올드함이 느껴지는 피지알

저는 10년 이상 PGR21이라는 사이트를 이용해왔습니다. 이 사이트는 굉장한 아재 사이트라 저처럼 어린 사람은 별로 없지만 중학교 2학년쯤 되었을 때 한가지 아이디어를 발견했습니다. 당시엔 스타크레프트는 점점 사람들이 떠났지만 리그 방송은 꽤나 잘 나갔습니다. 그러던 중 하마치라는 프로그램을 알게되었는데, 이 프로그램을 사용하면 로컬로 렉 없이 밀리 게임(일반적인 1:1)을 할 수 있었습니다. 스타크레프트의 배틀넷은 렉이 심했기에 정말 고수들은 제대로된 경기를 즐기기 어려웠습니다. 하마치는 이걸 해결해줄 수 있었는데 한가지 단점이 있었습니다. 그건 서로 같은 채널에 들어가야 한다는 점이죠.

이 점에 착안해서 하마치로 게임도 즐기고, 채널을 서로 만들면 그 안에서 커뮤니티를 만들 수 있을 거라 생각했습니다. 그래서 이 커뮤니티를 만들기로 구상하고, 직접 방법을 검색하기 시작했습니다.

생각을 구현하기

웹을 제작하는 방법은 당시에 몇 가지 방법이 있었는데, 많은 한국의 커뮤니티들은 제로보드(현 Xpress)를 사용했습니다. 게시판과 댓글 위주의 홈페이지를 만들기에 최적화 되어있고, 무엇보다도 쉬웠습니다. 제로보드를 사용해서 웹서비스를 만드는건 예나 지금이나 어렵지 않은 일이었고, 아무것도 모르는 중학생도 할 수 있는 수준이었습니다. 그 덕분에 며칠만에 사이트를 만들었고 피지알에 홍보글도 남겼습니다.

사이트의 이름은 피마치(피지알 하마치의 줄임말)였습니다. 게임 게시판에 글을 올리니 사람들이 속속 들이 들어와서 금새 장사진을 쳤습니다. 처음 만들어진 커뮤니티라고 해서 컨텐츠를 자발적으로 올리시는 분들도 많았습니다. 저는 기세등등 해져서 피지알 운영진 분들에게 제 사이트 링크를 추가해달라고 건의도 보냈죠. 하지만 너무 잘됬기 때문인지 필연인지 피마치는 망했습니다.

큰 이유가 있었습니다. 바로 돈입니다. 사람들이 들어오고, 컨텐츠를 볼 때마다 트레픽이 발생하는데 제가 쓰는 트레픽은 한 달에 2만원이었습니다. 이 정도면 몇 백명이 왔다갔다만 해도 사라지기 때문에 하루 천 명 이상이 들어오는 사이트로는 부적합했습니다. 사이트가 매일 차단되니 사람들은 너무 트레픽이 적다고 쪽지를 보내기 시작했습니다. 그렇다고 중학생으로 돈도 없던 저는 부모님께 돈을 더 받을 수도 없었습니다. 이로써 수익모델이 없는 비즈니스의 아픔을 느끼며 피지알에서도 닉변하고, 사이트도 폐쇄할 수 밖에 없었습니다.

현실을 직시하기

이후의 삶은 열심히 공부하는 고등학생과 진로를 고민하는 대학생의 삶을 살았습니다. 그러나 그때 수 많은 사람들이 해준 응원을 기억하고 있고, 또 잠도 안자면서 공부했던 기억이 계속 살아있습니다. 그래선지 저는 시간이 생길 때마다 이런저런 프로젝트를 시작했습니다.

워드프레스를 이용해서 유튜브를 만드려고 했고, 과학 기술을 다루는 포럼을 제작했습니다. 물론 한 달간 36번 정도의 조회수만 있었을 뿐이지만 말이죠. 그러면서도 삶에선 진짜 바라는걸 전력으로 하진 못했습니다. 대학원에 가야한다는 고민도 있었고, 풀리지 않던 군대도 있었죠. 동아리에서 답을 찾아보려고도 했고, 교회에서 삶의 대부분을 보내기도 했습니다. 이런 방황을 하면서 살다보니 내가 어떤 사람이고 무엇을 바라는지 알겠더군요. 그래서 어플리케이션을 만들게 되었습니다.

대학원이 해결해 줄 수 있던 여러 삶의 이유들을 덮어버리고 하고 싶은걸 하기로 결정했습니다. 어플리케이션을 만들자. 2달 안에 만들자라고.

열심히 배웠습니다. 이제는 달력종이가 아니라 쓰던 노트에 필기했고, 얼마 안되는 용돈을 모아 안드로이드 책을 샀습니다. 컴퓨터는 느려서 안드로이드 스튜디오를 돌리면 버벅대며 괴로워했습니다. 대학원도 때려치고 백수로 군대도 안간 아들을 바라보는 부모님께 죄송해서 하루종일 성장하지 않으면 안됬습니다. 적게 하면 8시간, 보통 12시간씩 공부하고 프로그래밍을 반복하면서 자바의 1도 모르다가 안드로이드 어플리케이션을 만들게 되었습니다.

그러던 중 도저히 부모님의 얼마 안되는 돈을 뺏어서 사는게 불편해 아르바이트를 하면서 프로그래밍을 했습니다. 당시 피씨방에서 일하면서 틈틈히 밤에 쓴 코드를 보면서 하루를 보냈습니다. (그 당시 글) 그리고 총 6개월쯤 지나고 저는 '월스트리트:블락 딜' 이라는 게임을 거의 완성하게 됩니다.

bhS6zyOB56CAMLfrcc9SND7V83Y.jpg

게임을 거의 완성했을 무렵 저는 프로그래밍을 근본부터 배우지 않았음을 후회하게 되었습니다. 이유는 제가 만든 이 게임은 굉장히 유동적인데, 정적인 방식으로 제작되었기 때문입니다. 주식 시장과 같이 거래 가격이 지속적으로 변동하는 게임은 서버와의 통신이 무엇보다 중요합니다. 제가 사용한 기술들과 그 백그라운드에는 매우 정적인 서비스에 적합하게 구조화 되어있었습니다. 즉 사용자가 한 명 한 명 늘어나게 되면 서버에 엄청난 부하가 걸리게 되는 구조였습니다.

저는 크게 좌절했습니다. 몇 달간 고생하면서 만든 서비스를 제대로 출시하지도 못했습니다. 마지막 튜토리얼과 이펙트 정도를 수정하면 되는 단계였지만 정신적으로 완전히 탈진했기 때문입니다. 그렇게 보름쯤 지나면서 잘 될지 안될지, 그리고 온갖 문제가 산적해 있는 게임이 아니라 정말 쓸모 있는 일을 해보자고 마음을 먹었습니다. 하지만 제게 남은 시간이라곤 입대까지 4개월 남짓이었습니다.


쉬우면서 또 어려운 일
저는 컴퓨터를 배우는게 무엇보다 쉬우면서 어렵다고 생각합니다. 어플리케이션을 몇 달간 독파하면서 게임을 개발했지만, 근본적으로 잘못 만들었다는걸 몰랐습니다. 만약 제가 그걸 알았다면 데이터베이스를 NoSQL을 활용해서 더 느슨하게 만들었을테고, 서버도 비동기식으로 가볍게 제작할 수 있었을 겁니다. 하지만 바로 앞에 있는 것만하다보니 많은 부분이 허사가 된게 아닌가 싶습니다.

그러나 분명 할 수 있는 일입니다. 시간이 여유가 된다면 기존의 코드를 갈아엎고, 만들었던 데이터베이스를 바꾸고, 다시 시작할 수 있습니다. 기본이 탄탄하지 않았기에 발생한 어쩔 수 없었습니다. 저는 이 일들을 쉽게 이룰 수 있었던 이유를 세가지라 생각합니다.
GQL2Y0i806fQs6TqDPpBShCMuAY.jpg현재 에어데스크(크롬 확장 프로그램)첫째는 두려워하지 않습니다. 저는 새로운 기술에 두려움이 없습니다. 프로그래밍을 10년을 이미 했던 사람이라도 새로운 언어와 새로운 프레임워크는 계속 나타납니다. 프로그래밍의 세계는 기본적으로 진화하지 못하면 도태되는 정글과 같습니다. 그런 곳이기에 자신이 모른다고 겁먹을 필요도 없고, 누군가 안다고 해서 자신만만하기도 어렵습니다.
mwdx1r1MO9hIIJ-t7G33OOb7BSA.png첫번째 프로그램(오로라 플래너)의 아이디어 스케치두번째는 생각을 실현합니다. 많은 프로그래머 학부생들이 있지만 저는 적극적으로 오픈소스와 여러 프로젝트에 참여하는 개발자를 많이 보지 못했습니다. 학부에서 배운 지식들을 바탕으로 해커톤에 참가하고, 오픈소스에 기여하면서 자신의 역량을 늘리는 개발자는 소수입니다. 즉 대부분은 자신의 스킬을 발전시키기보단 회사에서 필요로 하는 정도로 많이 사용하고, 그 이상으로는 발전하지 못하는 모습을 보았습니다. 제 친구가 일하는 곳에선 10년은 된 프로그램을 수정해서 쓰느라 이제는 쓰지 않는 프레임워크를 계속 쓰고 있다고 합니다. 생각을 구현하고, 실패를 자주 경험하면 무엇이 가능하고 무엇이 하기 어려운지 빠르게 학습할 수 있을 겁니다.

세번째는 해커적 마인드입니다. 해커는 들어가지 못하는 곳을 침투합니다. 남들이 안된다고 하는 걸 합니다. 현재 조건으로는 막막해보입니다. 군대 사지방에는 깔 수 있는 프로그램도 얼마 되지 않습니다. 컴퓨터 사양은 거의 최저 수준입니다. 사용할 수 있는 시간도 제한적입니다. 그럼에도 답을 찾아낼 수 있습니다. 마찬가지로 서버를 운영할 돈이 없다면, 서비스를 무료로 하기 어렵다면 답을 찾아내서 만들면 됩니다. 이런 공격적이고 해커적인 마인드로 자신을 성장시키는게 무엇보다 중요합니다.

저는 생각을 매우 실제적이고 공격적으로 합니다. 아이디어가 생긴다면 무조건 노트에 그립니다. 또한 스토리텔링을 하고, 그것이 세상에 미치는 영향을 생각해봅니다. 현재 그걸 이룰 수 있는 스킬이 없다고 해도 말입니다. 그리곤 백그라운드가 되는 기술을 조사합니다. 제가 굳이 개발하지 않아도 되는 요소가 있는지 오픈소스와 무료API들을 찾습니다. 또한 실현하는 방법을 조사합니다. 웹서버가 필요한지, 혹은 프로그램을 짜서 만들지, 혹은 어플이 편할지. 제가 제작하고 있는 에어데스크는 사실 확장 프로그램으로 만들기보다 어플리케이션으로 구현하기 더 쉬운 부분이 잇습니다. 그러나 군대라는 특수한 환경이 어플이 아닌 확장 프로그램을 선택하게 된 배경이 되었습니다.

아직 최고의 자리에 못올라갔기에 그 이상의 이야기는 할 수 없습니다. 그렇기에 저보다 뛰어난 프로그래머들의 글을 참고하는데 그 중에서 큰 도움이 된 링크를 얼마간 남기고 글을 마치겠습니다.


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/12/12 19:46
수정 아이콘
해커스쿨, 하마치... 기억 저편에 있던 단어들 오랜만에 들어보네요.흐흐
시드마이어
17/12/12 20:04
수정 아이콘
저도 글쓰면서 생각하니까 잊고 지낸게 많은거 같아요. :)
치열하게
17/12/12 19:54
수정 아이콘
해커스쿨이 w3스쿨이나 코드아카데미 같은 곳인가요?
시드마이어
17/12/12 20:03
수정 아이콘
해커스쿨은 저도 유치원 정도밖에 못나왔지만 w3나 코드아카데미랑은 완전히 다른 성격인거 같습니다.
자마린
17/12/12 22:00
수정 아이콘
해커스쿨 ftZ.... 추억이 새록새록
17/12/12 22:57
수정 아이콘
항상 열심히 배우고 뭔가를 만들어 보려는 노력이 대단하십니다. 저도 조금 더 어렸을때 열정적이었는데 안정을 주변에 갖추고 나니 지난 열정이 사그러든 느낌이네요. 시드마이어님 글은 언제나 자극이 됩니다. 화이팅입니다.
17/12/13 09:16
수정 아이콘
제로보드로는 댓글기능이 쉽나보군요. 자바로 만들려니까 힘들어죽겠네..
YORDLE ONE
17/12/13 12:14
수정 아이콘
다시 한번 배움의 뽐뿌가 옵니다 감사합니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
공지 [일반] [공지]2024년 4월 총선을 앞두고 선거게시판을 오픈합니다 → 오픈완료 [53] jjohny=쿠마 24/03/09 27966 6
공지 [정치] [공지] 정치카테고리 운영 규칙을 변경합니다. [허들 적용 완료] [126] 오호 20/12/30 249979 0
공지 [일반] 자유게시판 글 작성시의 표현 사용에 대해 다시 공지드립니다. [16] empty 19/02/25 326113 8
공지 [일반] [필독] 성인 정보를 포함하는 글에 대한 공지입니다 [51] OrBef 16/05/03 449031 28
공지 [일반] 통합 규정(2019.11.8. 개정) [2] jjohny=쿠마 19/11/08 319353 3
101354 [일반] 삼성 갤럭시 S팬의 소소한 기능 [2] 겨울삼각형227 24/04/27 227 0
101353 [일반] (락/메탈) Killswitch Engage - My Last Serenade (보컬 커버) Neuromancer380 24/04/27 380 0
101352 [일반] 5년 전, 그리고 5년 뒤의 나를 상상하며 - 얘야, 원래 인생이란 [6] Kaestro871 24/04/27 871 1
101351 [일반] 키타큐슈-시모노세키-후쿠오카 포켓몬 맨홀 투어 [5] 及時雨2052 24/04/26 2052 6
101349 [일반] 인텔 13,14세대에서 일어난 강제종료, 수명 문제와 MSI의 대응 [57] SAS Tony Parker 6844 24/04/26 6844 9
101348 [일반] [개발] re: 제로부터 시작하는 기술 블로그(完) Kaestro3131 24/04/26 3131 3
101347 [일반] 테일러 스위프트 에라스 투어 도쿄 공연 후기 (2/7) [5] 간옹손건미축4200 24/04/26 4200 12
101346 [일반] 민희진씨 기자회견 내용만 보고 생각해본 본인 입장 [323] 수지짜응17579 24/04/25 17579 10
101345 [일반] 나이 40살.. 무시무시한 공포의 당뇨병에 걸렸습니다 [50] 허스키8365 24/04/25 8365 10
101344 [일반] 고인 뜻과 관계없이 형제자매에게 상속 유류분 할당은 위헌 [40] 라이언 덕후6378 24/04/25 6378 1
101295 [일반] 추천게시판 운영위원 신규모집(~4/30) [3] jjohny=쿠마18291 24/04/17 18291 5
101343 [일반] 다윈의 악마, 다윈의 천사 (부제 : 평범한 한국인을 위한 진화론) [47] 오지의5094 24/04/24 5094 12
101342 [정치] [서평]을 빙자한 지방 소멸 잡썰, '한국 도시의 미래' [19] 사람되고싶다2776 24/04/24 2776 0
101341 [정치] 나중이 아니라 지금, 국민연금에 세금을 투입해야 합니다 [61] 사부작4187 24/04/24 4187 0
101340 [일반] 미국 대선의 예상치 못한 그 이름, '케네디' [59] Davi4ever9534 24/04/24 9534 4
101339 [일반] [해석] 인스타 릴스 '사진찍는 꿀팁' 해석 [20] *alchemist*5144 24/04/24 5144 13
101338 [일반] 범죄도시4 보고왔습니다.(스포X) [45] 네오짱7124 24/04/24 7124 5
101337 [일반] 저는 외로워서 퇴사를 결심했고, 이젠 아닙니다 [27] Kaestro6668 24/04/24 6668 17
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로