한빛출판네트워크

컬럼/인터뷰

후배들을 위한 조언 - 시행착오를 하지 말자

한빛미디어

|

2013-12-05

by HANBIT

저자 : 조치원 (superdoli@gmail.com)

유닉스 계열의 OS에도 익숙해지자

요즘 후배 개발자들은 너무 윈도우만 익숙한 것 같다. 필자가 대학교를 다닐 때에는 전산입문 강의시간에 유닉스 환경에서 유닉스 셀과 vi 편집기 사용법을 익히고, 기본적인 C언어 개발을 배웠다. 유닉스에 관심이 생기자 유사 무료 OS인 리눅스도 PC에 설치해보고, 웹이나 FTP 등의 서버 관리 방법도 자연스럽게 익힐 수 있었다.

하지만 요즘 대학교에서는 윈도우 환경에서 프로그래밍 언어를 가르치다 보니 최근에 졸업한 후배 개발자들 중에는 유닉스나 리눅스를 경험한 사람이 거의 없다. 실제 회사에서 각종 서비스들(Web, FTP, Email. SVN 등등)을 운영하다 보면 리눅스를 설치해서 사용할 일이 많다. 신입 개발자들에게 이러한 업무를 맡기려 해도 리눅스를 처음 사용해보는 사람이 대부분이라 마음 놓고 맡기기가 힘든 게 사실이다.

학교를 졸업하기 전에 리눅스를 직접 설치해서 사용해보자. 기본적인 셀 명령어도 공부하고 각종 서버 운영 방법도 배워보자. 익숙한 윈도우만의 세상에서 벗어나 유닉스라는 새로운 분야로 시야를 넓혀보자. 분명 사회에 나가면 많은 도움이 될 것이다.

셀 스크립트를 배우자

셀 스크립트는 셀 명령어와 기본적인 제어문을 사용하여 작성하는 간단한 프로그램이다. 윈도우에서의 배치파일과 비슷하지만 셀이 휠씬 많은 명령을 제공하기 때문에 활용 범위가 넓다. 개발을 하다 보면 꼭 필요하면서도 귀찮은 작업들이 많이 존재한다. 이전 테스트 중에 생성된 각종 파일들 삭제하기, 프로그램 삭제 및 재설치, 모바일 앱 버그 분석을 위해 폰 내부의 로그 파일 및 DB 파일 PC로 가져오기 등의 작업이 그러한 예에 해당한다. 이러한 작업들을 마우스와 키보드만으로 처리하려면 무척 번거로운 일이 아닐 수 없다. 하지만 셀 스크립트를 이용하면 이러한 귀찮을 일들을 정확하고 신속하게 처리할 수 있어 소중한 개발 시간을 절약할 수 있다. 셀에서는 기본적으로 셀 스크립트를 사용할 수 있다. 윈도우에서는 cygwin이라는 프로그램을 설치하면 리눅스와 동일한 셀 환경을 이용할 수 있으며, 셀 스크립트도 마음껏 제작해 사용할 수 있다.

개발자라면 영어는 필수

개발자이기에 컴퓨터를 공부하는 건 당연한 일이다. 그런데 컴퓨터를 공부하기 위해 보는 책이나 인터넷 자료, 논문이 다 영어로 적혀있다면? 다들 알다시피 컴퓨터 분야는 미국이 중심이다. 최초의 컴퓨터인 에니악도 미국에서 발명되었으며 마이크로소프트, 애플, 구글, 페이스북 등 세계 굴지의 IT 기업들이 미국에 본사를 두고 있다. 즉, 컴퓨터와 관련된 대부분의 자료는 영어로 쓰여있다고 보면 된다. 심지어 인터넷에서 예제 코드나 컴파일 오류를 검색하더라도 대부분의 자료는 영어로 제공된다. 물론 어느 정도는 국내 번역서나 서적 그리고 국내 개발자들의 글들을 참고할 수도 있겠지만 결국 한계에 부딪치게 될 것이다. 기술 문서를 읽는데 고급 영어는 필요 없다. 조금만 시간을 투자해서 영어 공부를 해둔다면 새로운 지식을 습득하는데 많은 도움이 된다.

거대한 문제는 작은 단위로 나누어 정복하라

회사에서 신규 프로젝트를 시작하면 처음에는 그 방대한 내용에 현혹되어 무엇부터 해야 할지 무척 난감한 경우가 많다. 이럴 때는 무작정 코딩부터 진행하지 말고 구현할 내용을 잘게 나누어 하나씩 해결해 나가면 의외로 개발이 쉽게 진행되는 수가 있다. 일단은 익숙한 편집기를 열어서 구현해야 할 기능들을 모두 나열해보자. 가능한 한 작게 나누는 것이 중요하다. 구현 사항을 글로 남기면 머리 속에서만 생각하는 것보다 해야 할 일이 명료해진다. 그리고 항목을 작게 나눌수록 각 항목에 대한 구현 난이도는 줄어든다. 또한 이렇게 잘 정리된 문서는 추후 동료들과 회의를 하거나 업무를 할당할 때도 요긴하게 사용될 수 있다.

개발을 즐겨라

"천재는 노력하는 사람을 이길 수 없고 노력하는 사람은 즐기는 사람을 이길 수 없다." 는 옛말이 있다. 이 말은 어느 분야에서나 공통적으로 적용되는 말 일 것이다. 특히 하루를 멀다 하고 새로운 기술과 표준이 나타났다 사라지는 IT 분야에서는 더더욱 그렇다. 개발을 돈을 벌기 위한 도구로만 생각한다면 급격히 바뀌는 신기술에 뒤쳐지지 않으려고 발버둥치다 금방 지치기 십상이다. 하지만 개발을 게임으로 생각해보자. 질리지 않는 게임은 없다. 14년 전 우리나라에 PC방과 프로게이머 그리고 게임 전문 채널을 있게 만든 스타크레프트의 꺼질 것 같지 않던 인기도 이제는 다른 여러 게임들이 그 자리를 대신하고 있다. 변하지 않는다는 건 즐길 거리가 없어진다는 것이고 재미가 없다는 것이다. 이러한 관점에서 보면 매번 새로운 것들이 탄생하고 사라지는 IT 분야는 절대 질리지 않고 꾸준히 즐기기에 최적의 장소가 아닐까 한다.

개발을 제대로 즐기려면 자신만의 프로젝트를 진행하는 건 어떨까. IT는 한 개인이나 소수의 인원이 적은 자본으로도 무언가를 만들어 세상에 알리고 수익을 내기에 용이한 분야다. 특히 스마트폰의 발달로 개발자라면 누구나 손쉽게 앱을 제작하여 모바일앱 마켓에 공개하고 판매할 수 있게 되었다. 그렇기에 이러한 주변 환경을 잘 이용하여 자신만의 앱을 만들어 공개해 보자. 그리고 전세계 사용자들로부터 각종 의견을 받아 지속적으로 앱을 업데이트해보자. 사용자들의 감사의 글을 보면서 이제껏 느끼지 못했던 즐거움을 얻을 수 있다. 더욱이 자신의 앱은 누구의 눈치도 받지 않고 자신이 원하는 기능과 기술을 적용할 수 있는 훌륭한 학습의 장이다. 앱을 개발하면서 배운 지식들은 회사 업무에도 많은 도움이 된다. 그리고 앱이 인기를 끌게 되면 광고나 유료화를 통해 부수적인 수입도 올리고 유명 앱 개발자라는 명성까지 올릴 수 있으니 충분히 해볼만한 가치가 있는 일이다. 앱을 만들다 보면 어느 순간 자신도 모르게 매일매일 사용자 댓글을 읽고, 이용 통계를 보고, 기능 개선을 위해 출근 후 집에서도 개발을 즐기고 있는 자기 자신을 발견할 수 있을 것이다.

혼자만의 힘으로 모든 것을 하기엔 인생은 너무나 짧다.

지금껏 개인적으로는 남들이 만들어 놓은 코드를 사용하는 것보다 직접 만들어 쓰는 것을 선호했다. 그래서 스스로 만들긴 했지만 들인 시간과 노력에 비해 결과물의 질은 많이 아쉬운 게 사실이었다. 지금에서야 개발 기술 뿐만 아니라 남들이 만들어 놓은 것을 잘 활용하고 수정할 줄 아는 능력을 익히는 것도 중요한 일이란 걸 깨달았다.

인터넷을 잘 찾아보면 남들이 우리와 비슷한 고민으로 만들어 놓은 공개된 소스들이 많이 있다. 이중에서 가능하면 사용자가 많고 유명한 단체에서 관리하는 오픈소스를 사용할 것을 추천한다. 솔직히 사용하기 쉬운지는 모르겠다. 보통 이러한 오픈소스 프로젝트들은 많은 기능을 구현하다 보니 사용 방법이 복잡해질 수 밖에 없다. 하지만 다양한 환경에서 사용이 가능하며 많은 사람들이 사용하기에 안정성도 높다. 그리고 무엇보다 소스가 무료이며 공개되어 있으므로 세계적인 전문가들의 소프트웨어 설계 방식, 코딩 기술, 고급 언어 활용 기술들을 익히기에 부족함이 없다.

하지만 소스 분석은 단순히 개발 언어만 안다고 쉽게 되지 않는다. 제대로 소스를 분석하기 위해서는 기본 지식을 쌓을 필요가 있다. 개발 언어에 대해 어느 정도 자신이 있다면 이제는 한발 더 나아가 전문가들이 고생하며 터득한 내용을 책을 통해 습득하도록 하자. 세상에는 디자인 패턴, 재활용이 쉽도록 설계하는 방법론, 나쁜 코드를 좋은 코드로 바꾸는 방법 등등 우리들의 시간과 노력을 획기적으로 절약해 줄 많은 좋은 책들이 있다.

결론

앞서간 선배들이 남긴 결과물을 적극적으로 받아들여 비슷한 시행착오를 하지 말자는 것이다. 그리고 한가지 더 바란다면 그 결과물을 기반으로 더 좋은 것을 만들어내고 그것이 다른 사람들에게 도움이 된다면 이 또한 무척 보람찬 일이 되지 않을까.
TAG :
댓글 입력