IT의 중심에서

나이 든 개발자가 살고 있는 IT 현장 이야기

개발자, 사회적 소명의식을 가져라.

※ 부제 : 소프트웨어 개발자가 왜 중요한가?

1. 영화가 IT를 말하다.

1994, 폭로 가상현실 기술을 둘러싼 암투

1994, 폭로
가상현실 기술을 둘러싼 암투

“폭로”, 1994년 이 영화는 “가상현실 기술”을 개발한 IT회사의 프로젝트 책임자를 둘러싼 음모를 그린 영화다. 그 당시 최고 인기 배우였던 데미무어와 마이클 더글라스가 주연을 했다.
영화를 보다보면 가상의 도서관에서 책을 한 장씩 넘기는 장면이 나오는데 문득 “만일 맨땅에서 저 모션을 개발해야 한다면 손짓하나에 30만 라인 정도의 코드를 만들어야 하지 않을까? 만일 그렇다면 저 도서관을 만드는데 도대체 얼마나 많은 시간이 들어갈까?”라고 생각했던 적이 있다.

1999, 13층, 가상현실 게임

1999, 13층, 가상현실 게임

2002, 마이너리티 리포트, 예측초능력 + 가상현실 기술

2002, 마이너리티 리포트, 예측초능력 + 가상현실 기술

1999, 매트릭스, 기계가 지배하는 Full 가상현실 세상

1999, 매트릭스, 기계가 지배하는 Full 가상현실 세상

이후 영화 ’13층’, ‘매트릭스’, ‘마이너리티 리포트’ 등 가상현실을 주제로 한 여러 영화가 나왔다. 하지만 저게 앞으로 흘릴 개발자들의 땀과 눈물일 거라는 생각이 드니 마음이 불편했다.
그렇다고, 영화에서 보는 미래가 안 올 것 같지는 않았다. 과거 인류 역사를 보면 영화에서 보던 건 꼭 현실에 나타났다. 그리고 1994년의 영화 “폭로”가 그린 미래상도 2010년 아래처럼 나타났다.

2009, 킨들, 아마존의 전자책 리더기 + 인터넷 전자책

2009, 킨들, 아마존의 전자책 리더기 + 인터넷 전자책

2010, 아이폰 아이북스, 전자책 다운로드

2010, 아이폰 아이북스, 전자책 다운로드

3D가상현실은 없지만 가상의 도서관, 서점은 킨들과 아이폰에 구현되었다.
데이터 저장은 클라우드 서버를 이용하고 30만 라인이 될거라 예상했던 코드는 잘 모듈화 되어서 서버와 단말 플랫폼에 들어가버렸다. 더구나 웹과 API가 발전하면서 개발자들은 복잡한 네트워크 기반 기능들을 더욱 더 간단히 쓸 수 있게 되었다.

복잡하게 이야기하자면, Activity 단위가 가상화됨으로써 Business는 Activity 들을 Call 해서 새로운 조합의 Activity 를 만들 수 있게 되었다. 이렇게 함으로써 우리는 맨땅에서 30만 라인을 코딩하지 않아도 간단히 Action 들을 구성할 수 있게 된 것이다.

2. 그러나 IT는 이제 시작이다.

그래서 “이런 혁신적인 미래는 도대체 몇 만 라인의 코드로 이루어진 것일까? 그리고 우리 나라의 개발자들은 이런 미래를 위해 얼마나 기여하고 있을까?” 이런 것들이 궁금해졌다.

언젠가 우리가 상상하는 미래는 올 것이다. 이미 지금도 모든 산업들이 IT를 필요로 하고 있다. 앞으로 IT없는 미래를 상상할 수는 없다. 그러나 IT의 역사가 너무 짧다. 1946년 ENIAC이 만들어진지 겨우 65년이 지났다. 1980년대 말 ARPANET이 국제통신망이 된지 겨우 20여년이 지났다. 윈도우 95가 나온지 16년 정도 밖에 되지 않는다.
반면 무역이나 금융은 몇 세기의 역사를 가지고 있다. 얼마나 많은 시장의 경험들과 이론적인 연구들이 있는가? 기존 산업에 비하면, IT는 이론적 연구도 짧고, 일하는 방법도 서툴고, 시장의 경험도 부족하다.

개발자들은 이러한 환경을 자각하고 선구자로서의 소명의식을 가질 필요가 있다. 쉽게 이야기하자면 IT분야는 아직도 해보지 않은 것이 많지만 물어볼 베테랑도 많지 않다. 그래서 개발자들이 스스로 경험을 체계화하고 새롭게 일하는 방법을 만들어보기도 하고 다른 산업과의 융합을 위해 폭넓은 커뮤니케이션도 할 필요가 있다. 누구나 처음이므로 실패는 당연한 것이다.

3. 30만 라인 코딩 안하기

보다 더 쉽게 개발하는 미래가 오려면, 우리는 지금 무엇을 해야 할까? 무엇이 중요할까?

1) 코드가 재사용될 수 있어야 한다.

즉, 코드가 재사용될 수 있어야 점점 더 복잡한 하나의 좋은 모듈을 만들 수 있다.
그럴려면 소스코드를 제대로 관리 되어야 한다. 소스코드가 없으면 코드를 변경할 수 없기 때문이다.
그리고 Test 가 끝나서 품질이 입증된 소스코드가 많을수록 좋다. 그렇지 않으면 매번 새로 만들어야 한다. 오류가 있는 소스를 그냥 쓰다보면 소스를 가져다 쓴 많은 프로그램들이 오류를 갖게 될 것이다. 그러나 코드를 고쳐서 재반영할 수 있게 하면 코드 품질은 점점 좋아질 것이다.

2) 컴포넌트화 해야 한다. (표준화, 단순화)

웹이라면 API로 만들고 Client Program이라면 컴포넌트로 만든다. 컴포넌트는 재사용되기 좋게 만들어진 업무기능의 모듈이다. 재사용하기 좋게 업무단위를 적절히 자르는 것이 매우 중요하다. 그러면 하나의 컴포넌트가 웹도 지원하고, 모바일 단말 기능도 지원할 수 있다.

컴포넌트를 잘 만들수록 플랫폼이 가벼워진다. 가벼워진다는 것은 더 많은 일을 할 수 있고 더 강력해진다는 뜻이다. 그러나 제대로 자르지 못하면 자꾸 파생 컴포넌트를 만들어야 한다. 자꾸 예외처리 코드가 늘어나게 된다. 그러나 업무를 적절하게 단위화하면 쉽게 재활용 되고 솔루션이 된다.

3) 드러내 일하고 공유할수록 좋다.

노트북에 잠자고 있는 소스코드나 바이너리는 개인적 자기만족일 수 있다. 사회나 회사에서 할 만한 일은 아니다. 그것이 아무리 훌륭한 성과물이라도 IT의 발전을 위해 쓰이지 않는다면, 그저 대학 동아리 활동의 결과물일 뿐이다.
내가 아니면 고칠수 없도록 암호화된 코드를 만들고 있다면 코드 10만 라인 이상의 결과물을 만들어내기 힘들다. MS Excel은 200명 이상의 개발자가 기능을 나누어 개발했다고 한다. 품질이 국내 아웃소싱 사업과는 비교할 수 없이 다르다. 드러내 일하고 함께 일하는 환경에 익숙해지지 않으면 이런 결과물을 만들기 힘들다.

자신이 하고 있는 결과물을 드러내고, 정리하고 동료들과 공유해야 한다. 커뮤니티나 오픈소스에 참여하고, 함께 일하는 법을 배워야 한다. 건강하게 피드백하고, 이야기를 나누는 방법을 배워야 한다.

4) 오픈의 질서를 믿자.

오픈은 통제력의 상실을 의미한다. 정확히 말하면 당신의 통제범위로부터 벗어나는 것을 의미한다. 그러나 당신이 시장의 질서를 만들 정도로 훌륭하지 않다면 차라리 여러 사람의 힘을 믿는 것이 낫다. 정말 의미 있는 물건이라면 시장 속에서 부딪치며 훌륭하게 성장할 것이다. 그리고 당장은 의미가 없는 물건이라도 언젠가는 필요한 사람을 만날 것이다. “오픈”은 내 역량 밖의 일을 할 때 반드시 필요하다.

그러나 “오픈”은 소스를 공개 사이트에 올려두고 방치하는 것을 말하지는 않는다. “오픈”은 여러 사람을 내가 하는 일에 참여시키기 위한 방편이다. 그래서 열심히 내 소스를 돌보기도 해야 하고 남들에게 적극적으로 알리기도 해야 한다.
사람들은 누군가 돌보는 소중한 물건에 관심을 가지고 협업하기 때문이다.

4. 한국 IT의 오늘과 소명의식

한국의 개발자들이 경험의 이론화, 기록, 공유하는 것에 조금이라도 사회적 소명의식이 있었으면 좋겠다.
단기 성과 중심의 SI환경은 “개발자”의 시장유입을 막고 탈출러쉬를 가속화시키고 있다. 현재 한국에서 IT 기업에 취업하기 위해서는 고급 개발 경험을 배울 수 있는 곳도 없고 일하는 방법도 가르쳐 주는 곳이 없다. 동아리 활동이나 수업 프로젝트가 취업준비생이 배울 수 있는 전부다. 그리고 비기술 프로젝트스킬은 취직한 후 맨땅에 헤딩하면서 배우게 된다. 그래서 기초없이 회사를 자주 옮긴 사람들은 나쁜 업무 습관 때문에 고생하기도 한다.

이런 열악한 IT환경에서는 당연히 좋은 열매가 열릴 수 없다. 무의미한 반복개발은 값싼 노동일 뿐, 아무런 부가가치도 창출하지 못한다. 앞서 길을 가는 선배들이 사회적 소명의식을 가지고 개발환경을 꾸준히 개선해야만 후배들을 이끌 수 있는 경험들이 축적될 것이다. 그래야 실력있는 후배들이 IT에 들어오게 될 것이고 점점 더 좋아질 것이다.

몇 세기가 흐른 후에 IT 환경이 얼마나 발전되어 있을지를 상상해보라.
지금 당장 실패한다고 하더라도, 성공할 때까지 다시 해보고 시도해보아야 한다.

Advertisements

개발자, 사회적 소명의식을 가져라.”에 대한 1개의 댓글

  1. L I M I T H O T
    2012년 1월 7일

    감사합니다.

    어려운 고민을 또 하고 있는 시기 입니다.

    현재보다는 10년 뒤를 고민하고 목표와 계획을 수립하겠습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

정보

이 엔트리는 2011년 12월 13일에 님이 개발자의 삶에 게시하였으며 , , , 태그가 지정되었습니다.

내비게이션

%d 블로거가 이것을 좋아합니다: