brunch

You can make anything
by writing

C.S.Lewis

by 마루날 Nov 22. 2019

SW 개발자의 전문성 개발

더 이상 책만 읽어서는 안 됩니다.

저도 SW 개발자였고 SW업계에서 20년 넘게 일을 했었던 입장에서 요즘 만나는 많은 개발자들을 보면서 배우는 것도 많고 안타까운 점도 많이 보게 됩니다.


요즘 SW 개발에서 가장 많이 변화를 느끼는 점은 예전에는 한, 두 명의 뛰어난 개발자가 대부분의 코어와 주요 부분을 개발하는 식의 스타플레이어에 의존한 개발이 일반적이었다면, 요즘은 빠른 시장과 기술의 변화로 속도가 중요하다 보니 협업을 통해서 빠르고 안정적으로 개발하는 것이 중요한 것 같습니다.


개발자를 찾는 경우에도 소통과 협업이 가능한 개발 체계나 환경이 중요하고 개발자도 소통과 협업이 가능한 개발자를 찾고 있다 보니 애자일이나 CI/CD(Continuous Integration/Continuous Development) 관련된 도구나 툴을 사용해서 개발한 경험이 필수 조건이 경우가 많습니다.


그리고 흥미로운 점 중에서 하나는 하나에서 열까지 직접 개발한다는 개념보다는 효율적이고 안정적인 도구나 프레임워크에 대해서 매우 개방적이라는 사실입니다.


예를 들면, 최근 프런트엔드 개발 스택 중 가장 각광을 받고 있는 AngularJS와 같이 자바스크립트 기반의 오픈 소스 프런트엔드 웹 애플리케이션 프레임워크를 활용해서 빠르고 안정적으로 서비스를 개발하는 것에 주저함(?)이 없습니다.

구글이 만들었기 때문에 믿고 사용하는 것도 있지만, 더 이상 하나에서 열까지 직접 만들 필요 없다는 개념은 저처럼 예전에 개발을 했었던 사람에게는 익숙하지 않은 모습입니다. 빠르고 효율적으로 일하는 것이 중요하다는 것은 예전과 다를 것이 없지만, 속도와 안정성을 위해서 새로운 기술에 대하여 열려있는 생각으로 받아들이는 모습은 새로운 모습입니다.


이렇게 현장이 빠르게 변하다 보니 SW 개발자들에게도 숙명과 같은 새로운 기술에 대한 학습과 습득이 더 중요해지는 것 같습니다. 예전에 개발자들의 자기 계발은 전문 도서를 읽는 것이 대부분이었다면, 유튜브와 같은 새로운 매체를 활용한 자기 계발도 많이 하는 것 같습니다. 


개발자에게 새로운 기술을 학습하고 습득하는 기본은 실제로 코딩을 통해서 구현해보고 기존 기술과 비교해보는 것이 중요합니다. 실제 구현을 해봐야 새로운 기술의 특징과 장점 그리고 한계를 알 수 있고 어떤 시점에서 어떤 부분에 이 기술을 적용할지에 대해서 본인만의 기준이 생기게 됩니다.


앞서 말씀드린 대로 기본적인 지식과 함께 해당 기술을 이렇게 저렇게 활용해본 경험을 혼자서는 하기 힘들기에 스터디를 통해서 팀 프로젝트 등을 해야 하는데, 대학교의 조별과제가 망하기 쉬운 것처럼 스터디를 통해서 팀 프로젝트를 진행하는 것도 쉬운 일은 아닙니다. (이 부분은 나중에 따로 말씀을 드리겠습니다. )


그래서 요즘은 개발자들이 깃허브 (Github)를 활용해서 자기 계발을 하는 경우가 많은 것 같습니다.



깃허브를 단순히 SCM(Source Code Managemnet) 측면의 분산 버전 관리 서비스로 이용하는 경우도 있지만, 많은 개발자들이 자신의 코드를 공개하여 다른 개발자들의 참여할 수 있도록 하는 일종의 소셜 코딩(Social Coding) 플랫폼으로 사용하는 경우도 많습니다.


깃허브를 활용해서 자신이 개발한 코드를 공개하면 여러 가지 장점이 있습니다. 우선 다른 개발자들의 리뷰를 받을 수 있고 그러다 보면 버그를 찾을 수 있고 무엇보다 가독성 좋은 코드를 만드는 연습이 자연스럽게 됩니다. 또한, 깃허브를 통해서 공개한 소스 자체가 본인의 포트폴리오 역할을 하게 됩니다.


처음부터 깃허브에 본인의 코드를 공개하기 어렵다면, 책을 읽으면서 예제 코드를 실습하는 형태로 시작해서 공개하는 것도 좋습니다. 그리고 다른 사람이 공개한 소스에 참여하여 코드를 추가/수정하면서 다른 개발자의 변경 허락/거부를 통해서 평가(?)를 받을 수도 있습니다.


그리고 아직도 많은 회사에서 기본적인 SCM환경도 없이 그때그때 소스코드를 복사해서 옮기고 나누는 상황에서 CI 체계에 대한 경험을 쌓을 수 있습니다. 무엇보다 깃허브는 아래 이미지처럼 Contribution activity가 일/주/월/년 단위로 출석부처럼 보입니다.

만약에 저 같은 커리어 컨설턴트나 개발자를 찾고 있는 회사 입장에서 이 사람이 얼마나 성실하게 꾸준히 노력하고 애쓰는지 한눈에 보여줄 수 있는 자료가 됩니다. 




SW 개발자가 실무 경험 쌓이게 되면 자연스럽게 SW 관련 지식이나 기술 그리고 경험 등이 쌓이게 됩니다만 업무를 통해서만 그 경험이 생기게 되면 5년, 10년이 지나도 보유한 기술 스택이나 경험이 특정 도메인 안에서 쌓이게 됩니다.


SW 개발자는 제가 처음 개발을 하던 90년대나 지금이나 꾸준히 새로운 기술을 살펴보고 공부하고 습득해야 하는 직업입니다. 가만히 있으면 세상은 변하는데 본인만 예전 기술이나 경험을 가지고 사골처럼 우려먹고 있는 나중에는 더 우려먹을 수도 없는 분필 같은 개발자로 남을 수 있습니다. 


만년필의 잉크를 채우는 것같이 꾸준히 새로운 기술을 공부하고 습득하는 개발자가 되기 위해서 어떻게 해야 할지 고민하고 계획하고 실행하셔서 죽을 때까지 코딩하는 개발자가 되셨으면 합니다.



개발자의 경력 관리, 전문성 개발, 이직/전직 등과 관련된 커리어 컨설팅을 무료로 제공합니다. (무료)
asqito@gmail.com


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari