본문 바로가기
살아가는 이야기

조금은 서글픈 윈도우 개발자

by esstory 2007.10.12

어제 오후에 후배가 만든 코드 약 4천 라인을 프린트해서 코드 읽기를 했습니다.

어느 정도 실력을 인정받는 친구라 특별히 문제될만한 코드는 없더군요. (아 그래도 몇 가지 Crash 가 날만한 부분과 Refactoring 이 필요한 코드를 발견해서 전달했습니다)

 

코드를 읽으면서 왠지 클라이언트 개발을 하고 있는 제 자신이 서글퍼지네요.

후배가 거의 한 달이 넘게 작성한 코드 중 반 이상은 화면의 입력부를 구성하기 위해 탭과 에디터, 버튼 등 수많은 컨트롤을 생성하고, WM_SIZE 이벤트에 맞게 위치를 조절하고, 버튼클릭과 같은 잡다한 이벤트를 수신 받아 처리하는 로직으로 되어 있었습니다. – 조금 복잡한 화면 작성하다 보면 이러한 코드가 수천 라인은 쉽게 넘어 갑니다 --;

코드 읽기를 하면서 이런 코드들은 대부분 스킵했습니다.  특별한 로직이 있는 게 아니라 화면에 뭔가를 표시하기 위해, 이벤트를 받기 위한 당연한 작업들이라 성능개선을 위해, 프로그램 오류 방지를 위해 눈에 불을 키고 볼만한 코드가 아니었거든요.

 

사용자가 사용할 말단 화면이다 보니 이런 노가다는 어찌 보면 당연한 것으로 받아들여야 하지만 나이가 들어 경력이 쌓여갈수록 화면 UI를 위한 코딩보다 데이터처리의 효율성이나 성능, 보안과 같은 정적이지만 CORE 를 이룰 수 있는 쪽으로 코딩도 관심이 옮겨가네요.

한때는 빠르고 멋진 UI 라 생각되었던 윈도우 프로그램도 RIA 로 대변되는 Flash SilverLight, 그리고 WPF 등의 등장으로 답답해 보이고 심심해져서 앞으로의 밥벌이도 걱정해야 할 판입니다. ^^ – 결국은 다 웹으로 가겠죠?

 

윈도우 개발자라면 보통 이런 저런 화면개발을 위해 상당한 양의 코딩과 시간을 투자해야 하는데 이러한 일련의 일들은 지식이라고 하기엔 깊이가 얕고 나중에 커리어로 인정받기에도 애매한 경우가 많습니다.  어제 코드를 읽으면서 이런 노가다를 군말 없이 열심히 하는 후배가 측은하기도 했습니다. (후배가 이 글을 보면 안될 텐데요^^, 제가 이쪽 일을 너무 오래 했나 봅니다)

 

오래 전에 아주 짧게나마 서버 프로그램을 개발한 적이 있었는데 그때에는 문제의 핵심에만 집중할 수 있었습니다. 사용자의 소켓 연결을 받아 Thread 로 분산하고, 원하는 데이터를 전달하는, 주로 데이터와 성능 관련 이슈에 집중할 수 있었고, 그래서 시스템과 C/C++언어 자체(MFC와 온갖 컨트롤들이 아닌)에 대한 내공이 충분하다면 경력과 능력을 모두 인정받을 수 있겠더군요.


윈도우 개발자는 서버 개발자가 주는 데이터와, 업무개발자가 전달하는 업무 지식으로 시키는 대로 화면만 만들어 내는 그래서 같은 직장 내에서도 갑(업무개발자)-(서버개발자)-(클라이언트개발자) 관계라고 우스개 소리로 말하곤 합니다. – 다 그런 건 아니겠죠. 제가 하는 일이 유독 그런가 봅니다.

 

업계에 보면 서버개발자와는 달리 특히 윈도우 개발자들은 정식직원으로 일하는 경우보다 협력업체로 들어와 근무하시는 분들이 많습니다. 업무나 메인 프레임, 데이터 베이스 관리와 같은 초기 진입장벽이 높지 않는 분야라서 그런지 윈도우 프로그래머가 상대적으로 구하기 싶고 핵심인력이 아닌 경우 다른 사람으로 쉽게 교체될 수 있다는 얘기겠지요. 윈도우 프로그래머가 된걸 후회해야 할까요? ^^;

 

학창시절에 처음 랭귀지를 배울 때에는 과제를 UNIX 에 접속해서 제출했어야 했는데 vi 를 사용해 보고 기절할 뻔했습니다. 그 좋다는 vi Turbo Pascal, Turbo C 에 익숙한 저에게는 정말이지 최악의 에디터였거든요.

이때부터 학교 과제를 Turbo C 로 작성했는데 그러다 보니 서버프로그래머가 될 수 있었던 유닉스를 포기하고, Full-Down 메뉴와 파일 관리자 같은, 재미있고 호기심을 충족할 수 있는 DOS 개발자 나중에 윈도우 개발자- 의 길로 들어 섰습니다.

 

지금에 와서 지난 수년간 밥벌이를 해 준 이 길을 후회할 생각은 없지만, 만약 서버 개발자로 나갔다면 어땠을까 하는 생각이 듭니다.

vi 의 불편을 조금만 참고, 유닉스의 매력에 빠져들었으면, 지금쯤 Process Thread, File, 어쩌면DB까지 능숙하게 사용하면서 다른 모습으로 있지 않을까 하는 생각. ^^;

물론 서버 프로그램은 재미가 없다는 단점이 있긴 한데. --;;

 

코드 읽기 하다가 괜한 생각으로 횡설수설이네요

요즘 프로그래머로 진입하는 친구들은 주로 자바 쪽이 많겠죠? 나중에 이 친구들은 본인의 선택을 어떻게 생각할지도 궁금해 집니다.

 

P.S 어제 밤에 퇴근을 했더니 와이프가 대뜸, 자동으로 특정 사이트에 로그인 하는 프로그램을 만들어 달랩니다. 그 사이트를 자동 로긴해서 뭔가를 한다고 요구사항을 직장 상사처럼 얘기하는데 - 와이프는 프로그램이 뚝딱하면 나오는 줄 압니다 ㅋㅋ - 2시간 정도 삽질한 다음에 겨우 만들어 줬더랬습니다. 누군가에서 손쉽게 뭔가 필요한 기능을 만들어 줄 때, 딱 요럴 때는 윈도우 프로그래머인 게 좋습니다. 맨날 맘이 오락가락 하지만요 :-)

 

Daum 블로거뉴스에서 이 포스트를 추천해주세요. [추천]

댓글13

  • BlogIcon 나인테일 2007.10.12 19:00 신고

    특정 사이트에 자동 로그인하는 프로그램이라... 그냥 알패스 사용방법 알려드리지 그러셨습니까..(....) 알패스 쓸만 하더군요. 파이어폭스 지원이 안 된다는게 좀 아쉽습니다만.(파이어폭스의 AlwaysRememberPassword기능도 완벽하진 않은지라...)
    답글

    • BlogIcon esstory 2007.10.12 19:11 신고

      자동 로그인 다음에 html 파싱도 좀 해야 하고 --; 요구사항이 좀 있었습니다. 관심 감사합니다 ^^;

    • BlogIcon yundream 2007.10.17 10:44

      w3m 이 짱이지요. POST 방식으로 데이터 넘겨서 로그인을 하면... 결과페이지까지 받아올 수 있고, 이거 분석하면 끝..

    • BlogIcon esstory 2007.10.17 15:57 신고

      yundream 님 w3m 도 한번 써 볼게요 ^^; 얘기 주제와는 상관없이 p.s 에 적은 글이 더 이슈가 되는것 같습니다. 역시 글쓰는 재주가 모자라나 봐요 :)

  • x9 2007.10.12 19:05

    저도 약 5년차되는 개발자인데, UI부분 만들때 자주 짜증이 나서 요즘에는 웹페이지를 넣습니다.
    웹페이지를 사용하니, 많이 편하더군요..
    답글

    • BlogIcon esstory 2007.10.12 19:12 신고

      저희는 하는 일이 실시간 데이터 표시에 관련되어서, 웹으로는 해결이 안됩니다 --;; 아직은 다른 길이 별로 없습니다. :-)

  • x9 2007.10.12 19:06

    저는 사이트 자동로그인하는 프로그램으로 로보폼 사용합니다.
    불여우도 같이 지원하고, USB장치도 지원하니 많이 편하더군요..
    답글

  • BlogIcon _Alex 2007.10.12 19:41 신고

    서버 개발도 재미있답니다. UI 를 만드는것 처럼 눈에 팍팍 보이는 재미는 없지만요.

    코드 몇줄을 고쳐 0.1 초씩 수행시간을 단축하는 소소한 재미가 있어요 :)
    답글

    • BlogIcon esstory 2007.10.12 20:06 신고

      네.. 코드 한줄 한줄에 수많은 사람들의 생사가 순간적으로 결정날 수 있는 서버 프로그램 - 문제가 있을경우 스트레스로 인해 생명에 좀 지장이 있을 듯 보이지만 - 도 매력이 충분합니다. 다시 그쪽으로 돌리기엔 넘 멀리 왔네요 :)

  • BlogIcon 오스카 2007.10.13 01:45

    게임 개발 쪽도 은근히 게임 클라이언트나 툴 개발(굳이 나누자면) 쪽에 비해 서버 개발 쪽을 우대(?), 동경(?)하는 경향이 있긴 합니다. 아무래도 하이 리스크 업무는 서버 쪽이니 그런게 아닐까 싶네요. 한때는 서버 개발도 했지만 개인적으로는 클라이언트 개발이 재미있더군요. ^^ 뭐, 게임 클라이언트도 최적화하는 재미가 쏠쏠합니다. 옆 팀 보니까 기획팀에서 캐쥬얼 게임에 들어갈 3D 렌더러를 Riva TNT 8MB에서 잘(...) 돌아갈 수 있게 만들어 달라고 했다던데.. ㅋㅋ
    답글

    • BlogIcon esstory 2007.10.13 11:02 신고

      오스카님은 게임을 개발하시는군요.. 게임쪽 클라이언트는 정말 재밌겠습니다. 저는 증권쪽 프로그램이라.. 사실 재미는 없고, 주가 오르락 내리락 하는것 보면 배만 아픕니다^^; 저희도 서버쪽 프로그램이 하이리스크이긴 한데, 한번 만들면 거의 수정없이 계속 가더라구요..
      저희도 메모리나 cpu 를 어떡하면 최소화할지 늘 고민이랍니다. 프로파일링도 돌리면서 열악한 윈도우에서 어떡하던 돌리기 위해 열심히 노력하는데 눈에 잘 안보이는 부분이라 참 쉽지 않네요.
      리플 감사합니다. ;-)

  • momo 2007.10.19 13:51

    같은 종류의 일과 같은 생각을 가진 분을 뵈니 반갑습니다.^^
    실버라이트 자료좀 찾아보다가 잠시 들려서 댓글만 남기고 갑니다.. 건승하시길.^^
    답글

    • BlogIcon esstory 2007.10.22 23:00 신고

      저도 동종개발자를 만나니 참 반갑고 기분이 좋습니다.
      실버 라이트 자료가 거의 전무한데, 잘못 들어오셔서 시간을 낭비하게 해 드려 죄송하구요. 자주 들러서 개발 이야기 한번 들려주세요 . 감사합니다.