'개발'에 해당되는 글 2건

  1. 2007.10.14 개발 이야기, 그리고 이것은 내가 컴맹인 증거 19
  2. 2006.04.08 syncronized irc client

나는 컴맹이다.

컴퓨터학원에 다니면서 MSX와 XT, GW-BASIC을 배우긴 했지만, 그건 초등학교 4~5학년때 일이다. 1년 정도 다녔었던가... 그것 말고는 따로 컴퓨터에 대해서(컴퓨터라는 어휘를 쓰는게 좀 모호하긴 하지만) 따로 배워본 경험은 없다. 학교에서 교양수업으로 EDPS와 HWP 등을 배우긴 했지만, 어디까지나 서너시간 안에 모든 과정이 끝나버리는 어처구니없는 커리큘럼이었으니까.

그래도 모자란 실력으로나마 이것저것 프로그래밍(보다 정확히 표현하자면 그냥 끄적거림) 해 보는것을 재밌어 했드래서 종종 키보드를 두드리고는 한다.

너무 간단하거나, 활용도가 떨어지는 결과물 때문에 기억에 남지 않는 것들을 제외하고, 내 기억에 남는 가장 첫 프로그래밍은 바코드배틀러. 오오, 이름은 멋지다. 어떤 제품이든 붙어있는 바코드를 토대로 특정한 능력치를 가지고 있는 캐릭터를 만들어내어서, 서로 전투하는 방식의 게임이었다. Quick BASIC으로 만들었었고, 바코드 인식하는 부분은 당연히 스캐닝할 수 없던 시절이었으니, 바코드 밑의 숫자를 손으로 입력하는 방식으로 만들었었다. 같은 바코드라면 같은 숫자를 가지고 있고, 같은 숫자라면 같은 결과물(캐릭터)을 뱉어내는 형식이다. 꽤나 애착을 가지고 업데이트했던 기억이 난다. 전투의 룰은 ENIX사의 Dragon Quest와 비슷한 형태였고. 마지막 버젼에서는 마법도 쓸 수 있던것 같다. 자세히는 기억나지 않는다. 그게 90년대 중후반 일이니.

프로그래밍에 재미를 붙인건 Visual Basic을 접하고 나서부터이다. 정말 마우스로 드래그 몇번 하고 소스 좀 쳐주면, 원하던 프로그램이 뚝딱 생겨났으니, 정말 매력적이라고 할 수 있다. 게다가 고급 언어 답게 문법도 간단하고. VB를 처음 접해본건 allm에서 알바를 하던 시절이었다. 당시 인터넷 개인방송국인 KiRi라는 서비스를 운영하고 있었는데, 개발이사형이 어느날 "Ra야. 방송 듣기툴 만들어봐라."라고 언지한게 시작이었다. 당시에는 ocx나 dll을 만들 능력이 안되었드래서, RealPlayer의 ocx를 붙여다 썼던게 생각난다. 그러다 Fred라는 독일 친구가 입사하고, ActiveX로 뚝딱 듣기툴을 만들어냈다. 역시 개발자는 다르구나.. 하고 생각했었다.

HTML도 당시까지는 전혀 모르고 지냈었다. 2000년 초에 컴퓨터학원 강사를 하던 시절에 한 학생이 "선생님, 저 HTML 가르쳐주세요"라고 말한게 발단이었다. 태그가 뭔지도 모르는 상태에서 "응? 응..응.."하고 대답해버렸기 때문에 나름대로 진도를 조절해가며 나도 공부하고 학생도 가르치는 어처구니없는 선생님이 되어버렸다. 그나마 회사에서 일하면서 javascript도 만져보고, css도 만져보고 하면서 많이 배웠드랬지.

학교다니던 시절에는 정말 이상한것들을 많이 만들어댔었다. RSS 개념이 없던 시절에, 일정 시간마다 소켓을 열어 웹페이지를 불러들이고, 내용의 일부를 파싱해서 로컬에 저장하는 프로그램도 있었다. 이걸 html형식으로 만들어놓고 이 로컬에 있는 html을 시작페이지로 설정해놓으면, 매일매일 그날의 날씨나 업무내용(KiRi의 질문게시판에 올라온 최근 질문글이라든지..)을 확인할 수 있어서 매우 편리했었다.

한참 Diablo2를 하던 시절에는, 서버상태를 알아보는 프로그램도 만들었었다. 사실 이건 BattleNet에 접속해서 긁어오는건 아니고, 소켓으로 irc에 접속해 #디아블로 채널의 topic을 긁어내 파싱하는 방식이었다. 게임방에 갈때마다 유용하게 썼던 기억이 난다.

참여했던 프로젝트 중에서 가장 큰 건은 핸드폰게임을 만드는 일이었다. 비록 타이밍을 놓쳐버려서 제대로 출시도 못하게 되었지만. Mobile C라는 언어로 3만여 라인을 쳐냈다. 핸드폰이라는 플랫폼 특성 상 메모리 제한이 있어서 변수도 마음대로 못쓰고, 배열도 마음대로 안되고, 더군다나 컴파일 뒤 파일 크기 제한 때문에 소스를 줄이고 줄이고 하는 과정이 정말 골치아팠던 녀석이었다. 조금이라도 처리속도를 개선하기 위해서 연산도 가능하면 bit-wise로 했었고.

그리고 또 커다란 프로젝트라고 한다면, allm의 사내 인트라넷을 만들었던 건이다. 매일 밤을 미친듯이 삽질하던 웃지못할 작업이었다. asp와 javascript로 만들어서 그나마 다행이었지만. 지금도 잘 쓰고있을런지 모르겠다. 아직도 SQL은 나에게 익숙치 않다.

그다지 큰 작업은 아니었지만, Lunia 戰記stage design을 script로 만들어낸 작업도 있었다. 듣보잡 스크립트였는데, 꽤나 유명한 플랫폼이라고.. 문법은 C와 비슷해서 배우는데 큰 어려움은 없었다. 다만 상용 서비스를 대비해서 작업하던것이었기 때문에 "생각지도 못한 상황이 벌어지는 경우"를 만들어내서, 그 상황을 테스트하기가 여간 까다로운게 아니었다. "흐흐흐. 분명 유저들 이 부분에서 골치 좀 썩힐꺼야"라고 생각했던 부분은 30초만에 휙휙 지나가는 부분이 되어버렸고, "이부분에서 이런 처리가 발생한다면, 유저들은 살아남기 위해 되돌아 가겠지?"라고 생각했던 부분은 "그냥 무시해서 한 몫 죽고 뚫고 간다"의 유저패턴으로 무시되었다. 정말 심열을 기울여 만든 스테이지는 아무도 다시 찾지 않는, 그냥 지나가는 스테이지 중 하나로만 여겨지는 스테이지가 되어버렸고.... 님들하, 전기 1-2, 2-1, 2-2, 2-3, 2-8, 2-10좀 재밌게 해주셈.

mIRC script는 간간히 무언가를 만들어내고 있다. me2irc라든가, 최근 버닝하고 있는 마피아게임이라든가. 내가 써본 언어 중에서 가장 쉽고도 간편한것 같다. 도움말도 잘 되어있고. 다만, 플랫폼이 종속적이라서 범용적이지 못하다는 단점은 있긴 하지만 말이다.

 

내가 컴맹이라는 이야기를 할 때 마다 사람들은 믿질 않는다. 하지만 같은 개발 작업을 하더라도 정식 개발자가 손댄다면 1시간이면 끝낼 일을, 나는 하루가 넘게 걸린다. 맨땅에 헤딩하고, 끊임없이 삽질하고, 그렇게 하루를 소비해서 만들어낸다. 퀄리티는 당연히 정식 개발자의 그것 만 못할 것이고. 컴맹인 다른 사람 같은 경우에는 그냥 포기하고 말지만, 나는 이런 삽질들이 재밌고 즐거워서 멈추질 않는다. 사람들은 이런 결과물만 보고 컴맹이 아니라고 하지만, 나는 그저 노력을 많이 할 뿐, 컴도사는 아닌것이다.

 

 

그래서, 한줄요약 : 난 컴맹. 믿어주셈 쫌.

,

syncronized irc client

Free 2006. 4. 8. 17:40
만들고 싶은 어플 하나를 메모.

hanirc.org도 그렇고, dankun.net도 그렇고, 3개 이상의 클라이언트가(ip로 구분하여) 서버에 접속하면 마지막 접속을 kill-line시키게 된다.(이에 관한 내용의 페이지가 있기는 한데, 지금 안열리네.) 요즘, 공유기로 3대 이상의 pc 사용하는 집도 없진 않으니. 그래서... 한개의 mIRC만 서버에 연결되고, 다른 클라이언트가 이 mIRC에 소켓으로 접근하여 서버쪽으로 데이터들을 대신 push하게 만드는 어플.

소켓만 뚫리는 언어라면 뭘로든 만들 수 있을 것 같은데... 중개 역활을 해주는 mIRC에서는 DCC Server의 Chat의 Listen을 enable시키고, on chat과 on text를 이용해, =$nick 에게 프로토콜을 포함한 메세지를 뿌려주고.. 받는 클라이언트는 해당 프로토콜을 파싱해 다시 보여주고.. 헛, 여기까지 생각해보니 이거 완전히 mIRC로 ircd만들기네. 하지만 간략히 만들면 채널에서의 대화정도 까지만은 가능하겠지.

아참, 다른 사용자가 말하는 경우를 고려해, 말머리 기능은 필수. 왠지 90년대에 타인 ID를 빌려 Hitel 채팅방에서 말머리 달고(이야기 5.3에서 단축키가 Ctrl+T였던가..) 놀던 생각이 나네.

,