글쓰기도 개발도 본질은 공유_블로터닷넷
“일이란 제 인생에서 굉장히 많은 비중을 차지하잖아요. 그런 일이 즐겁지 않으면 불행하지 않을까요? 그래서 그런지 실력이나 유명세를 신경쓰기보다 항상 즐겁게 일할 수 있는 개발자가 되고 싶어요. 그런 개발자가 좋은 개발자라고 생각해요.”
‘좋은 개발자를 어떻게 정의할 수 있을까요?’라는 질문에 홍재석 개발자가 답한 내용이다. 그는 왜 즐거움을 개발자에게 필요한 덕목으로 꼽았을까? 홍재석 개발자의 과거 삶을 들여다보면 그 답을 알 수 있다.
홍재석 개발자가 20대 초반이었던 시절, 그는 여러 아르바이트를 섭렵했다. 주유소, 대형마트, 호프집, 카페, 레스토랑, 공장 등 10개가 넘는 아르바이트를 하면서 용돈을 벌었다. 유난히 많은 알바를 하게 된 이유를 물었더니 “한 가지 일을 계속 하면 금방 싫증을 내는 편”이라며 “아르바이트를 하는 동안에는 하루 종일 ‘언제 끝나나’라는 생각만 했다”라고 말했다. 홍재석 개발자는 그렇게 한 아르바이트당 3개월을 못 버티다 결국엔 다른 알바를 찾길 반복했다.
대학을 졸업하고 일자리를 알아보던 홍재석 개발자는 프로그래밍이 적성에 맞을 것 같다고 느꼈다. 그는 “6년째 개발자로 살고 있지만, 아직 이 일이 지겹지 않고 재밌다”라고 말했다.
▲홍재석 제니퍼소프트 개발자
개발자를 만났던 첫 번째 장소, 온라인 커뮤니티
홍재석 개발자가 처음 프로그래밍한 건 게임이었다. 그가 고등학교 시절, ‘워크래프트3’라는 게임의 ‘유즈맵’이 유행했다. 유즈맵은 사용자가 직접 만드는 게임 속 게임이다. 유즈맵을 만들기 위해선 ‘JASS’ 라는 스크립트 언어를 잘 다뤄야 했다. 홍재석 개발자는 이때 처음 프로그래밍 언어를 처음 접했다.
“그때는 온라인 카페 사용자가 많았어요. 제가 만든 유즈맵이 나름 카페 안에서 관심을 많이 받았죠. 그러다보니 게임을 직접 개발하고 싶더라고요. 막상 하다보니 게임 개발을 독학해서 배우기 힘들다는 걸 알았어요. 대신 진입장벽이 낮은 웹 기술에 관심을 돌렸죠.”
홍재석 개발자에겐 온라인 커뮤니티는 특별했다. 온라인 커뮤니티는 단순히 소통하는 것 이상으로 개발자 세계를 접하는 통로였기 때문이다. 홍재석 개발자는 학창시절 대부분을 전남 순천에서 보냈다. 당시 주변에서 IT나 개발 이야기를 나눌 사람을 찾기 쉽지 않았단다. 온라인 커뮤니티에서는 마음껏 개발 이야기를 할 수 있었다. 온라인에서 만난 지인들은 이후 그의 멘토가 되기도 했고, 서울에서 일자리를 알아보는 데 도움을 주기도 했다.
“제가 다닌 학교는 기능대학이었고 전공도 컴퓨터공학이었어요. 그런 환경에서도 IT업계로 간 사람은 드물었어요. 지방에서는 서울만큼 IT 관련 일자리가 없거든요. 그래서 온라인 커뮤니티 활동을 좋아했던 것 같아요. 대화하려고요.”
블로그는 나의 가장 큰 무기
온라인 커뮤니티 활동에서 재미를 느낀 홍재석 개발자는 이후 블로그 활동도 열심히 했다. 처음에는 블로그를 정보 저장소로 활용했지만 이후에는 HTML5과 자바스트립트 관련 강좌를 직접 작성해 올리기도 했다. 그는 첫 번째 직장에서 테크니컬 라이터를 맡아 기술을 정리했는데, 이때 글쓰기의 재미를 더 많이 느꼈다. 그 이후 게임회사로 이직했을 때도 문서화 작업을 자진해서 맡았다.
“블로그를 하다보니 글쓰기가 더 좋아졌어요. 당시 프론트엔드 웹 기술이 한국에서 주목 받지 않았어요 먼저 HTML5나 자바스트립트를 공부하고 글을 정리하니, 사람들이 관심을 보이더라고요. 블로그는 점점 제가 어떤 개발자인지 보여줄 수 있는 좋은 도구가 됐어요. 제니퍼소프트로 입사할 때도 블로그가 큰 도움을 주었죠.”
오픈소스 개발이 업무가 되기까지
홍재석 개발자는 2년 전 제니퍼소프트에 입사했다. 제니퍼소프트에선 주로 애플리케이션 성능관리(APM) 기술의 화면 기능을 개발하고 있다.
홍재석 개발자는 2014년 ‘제니퍼5’ 화면에 쓰이는 UI 컴포넌트를 만들다가 이를 오픈소스 기술로 공개하기로 결정했다. 비슷한 기술을 많은 개발자가 필요로 할 것 같았기 때문이다. 그렇게 해서 탄생한 게 ‘JUI’다. JUI는 CSS와 자바스트립트 코드를 묶은 라이브러리다.
홍재석 개발자는 “당시 쓸만한 UI 컴포넌트는 대부분 유료였다”라며 “개발자들이 직접 구축하기는 귀찮은 부분이라 오픈소스로 공개하면 유용할 것이라고 생각했다”라고 밝혔다.
현재 JUI는 20종의 CSS 컴포넌트와 17종의 자바스크립트 컴포넌트를 제공하고 있다. JUI는 컴포넌트간 종속성이 없어 따로 분리해서 사용할 수 있으며, ‘부트스트랩’등과 함께 활용할 수 있다.
“블로그랑 비슷해요. 블로그도 결국엔 지식을 공유하는 거잖아요. 소스코드를 직접 공유하면 더 재미있을 거라 생각했어요. JUI를 만들 때 가장 신경 썼던 부분은 ‘성능’이에요. 예를 들어 100만건 이상의 데이터를 테이블 형태로 보여줘야 한다고 치면요. 마크업 언어 특성상 이것을 표현하는 데 한계가 있거든요. 현재는 마크업을 부분적으로 렌더링하는 조회용 테이블을 컴포넌트로 개발했어요. 그 컴포넌트로 성능 문제를 해결했죠.”
다른 기술들과 연결되는 기술을 오픈소스 기술로 공개하기는 쉽지 않다. 시간이 더 많이 걸리고, 수정 과정을 일일이 외부에 공개해야 하기 때문이다. 홍재석 개발자는 “상용 제품을 오픈소스 기술로 개발하니, 시간이 2~3배 많이 들었다”라며 “주변에서 걱정하기도 했지만 동시에 오픈소스 기술의 취지를 이해해줬다”라고 말했다.
▲제니퍼소프트가 개발한 오픈소스 기술 ‘JUI’
“JUI를 오픈소스 기술로 만들면서 저도 많이 성장했어요. 이전에는 차트나 데이터 시각화에 대해 거부감이 있었어요. 어려워서 피했죠. 막상 JUI를 만들고 나니 더 깊이 공부하고 싶더라고요. 최근엔 D3.js나 토폴리지, 수학, 물리 등에 관심을 가지고 데이터 시각화를 더 공부하고 있어요.”
오픈소스 기술은 사람들이 관심을 받을수록 시너지가 나는 기술이다. 그래서 그런지 홍재석 개발자는 회사 업무를 생각하는 동시에 현재 개발자들이 필요하는 기술을 고려해 JUI를 발전시킬 예정이다.
“앞으로 해외와 국내 막론하고 더 많은 개발자들이 찾는 오픈소스 기술을 만들고 싶어요. 노드JS나 자바 기반 환경에서 이용할 수 있도록 JUI를 확장하고 싶고요. 물론 제가 회사에서 맡은 기본 업무도 최선을 다해야겠죠.”
기사 원문: http://www.bloter.net/archives/220494