brunch

You can make anything
by writing

C.S.Lewis

by 오래된만년필 Oct 23. 2024

어떤 사람이 개발자가 되는가

개발자가 된 8*년생 이모군

어떤 사람들이 개발자가 될까?


    요즘도 있는지 모르겠지만, 90년대 말쯤부터 학창시절을 보냈던 사람들은 각 반마다 배치된 PC와 대형TV를 선생님과 함께 관리하던 친구가 있던걸 기억할 것이다. 보통 컴퓨터에 관심이 많고 잘 아는 친구가 이 역할을 하기 마련인데, 나는 이 역할을 자주 맡곤 했다. 초등학교때 동네 컴퓨터학원에서 배울 수 있는 과정은 다 배우고 워드프로세서, 정보처리기능사 자격증을 취득했다. 중학교때는 해커스쿨이라는 사이트를 다니며 코딩공부를 하고 정보올림피아드를 준비했었다.


    내가 모든 개발자를 대변할 수 없고, 다양한 테크트리를 거쳐 개발일을 하는 사람들이 많을 것이다. 하지만 컴퓨터공학과 진학해 프로그래머로 일 하는 많은 친구들이 나와 비슷한 성향을 가진것을 오랜기간 겪었다. 각자 흥미를 갖게된 동기는 다르지만 프로그래밍, 코딩자체를 좋아하는 친구들이 많았다.


    2010년대 말을 지나며 개발자의 처우가 괜찮다는 뉴스를 타고 다양한 경로로 개발업무를 시작한 사람들도 많이 있다. 2019년 업로드한 코딩학원 관련 영상에서 언급한 것처럼 많은 학원들이 교육을 수료하면 훌륭한 처우의 일자리를 찾을 수 있을 것 처럼 홍보한다. 하지만 내가 일해온 현장에서 볼 수 있는건 그 중 일부의 사람들이다. 일의 특성상 끝없이 탐구하고 실험하고 해결해나가는것을 못 견뎌하는 친구들은 다 떨어져나가고, 좋아하는것과 업무를 일치하는데 성공한 덕업일치의 승리자들 만이 현재 개발자라는 타이틀로 일 하고 있다.

 개발업무는 레고블럭 조립이나 틀린그림찾기와 비슷하다고 생각한다. 어릴적 크리스마스 선물로 레고 사자성 시리즈를 선물받아 며칠동안 조립 했던 기억이 있다. 설계도를 보고 정확하게 따라갔다고 생각했는데 조립하다 보면 블럭이 몇개 없거나 크기가 맞지 않는 상황들이 발생했다. 아무리봐도 문제가 뭔지 알 수없어 부모님에게 도움을 요청하니 금방 어디가 잘못된지 찾아주셨고 작품을 완성할 수 있었다. 아래 블럭에 윗 블럭을 조립하는 일 자체는 매우 간단한 일이다. 하지만 진행하다보면 작은 실수들이 생기고 이는 틀린그림찾기를 하는 것 같이 높은 집중력을 요구한다. 위 사례처럼 누군가의 도움을 받아 해결해 낼 수도 있지만 대부분의 경우 스스로 문제를 처리해야한다. 항상 잘 풀리지 않는다. 진득하니 앉아 차근차근 되짚어도 보고 한숨 돌리기 위해 나가서 커피마시며 한바퀴 산책하고 돌아와서 다시 보기도 하는데 이렇게 해도 문제는 잡힐때도 있고 잡히지 않을 때도 있다. 이 일은 끊임없이 문제 해결을 반복하는 과정이다. 여기서 문제해결을 통해 성취감과 즐거움을 얻는 사람은 업무를 계속 이어나갈 수 있고 지쳐서 그만두는 사람도 많다.


    높은 집중력을 요구하는 업무지만 일 하는 시간동안 많은 사람들과 소통을 해야만 하는 일이 개발업무이다. 독자여러분들이 이 책을 펼친 큰 이유가 여기에 있을것이라 생각한다. 여기저기서 빗발쳐 오는 업무메신저, 이메일요청, 전화들속에서 틀린그림찾기같은 일을 해야하는 개발자들은 상대적으로 소통에 약할 수 밖에 없다고 생각한다. 그들의 본분이 높은 품질의 소프트웨어를 만들어내는데 있기 때문에 중요하게 생각하는 본업 외 일에 그만큼 시간을 투자하기는 힘들기 때문이다. 만약 개발자가 개발도 잘하는데 소통도 매우 잘한다면 그는 슈퍼개발자일수도 있지만 그렇지 않은 경우 여러가지를 의심해봐야 할 수도 있다. 그래서 전체 프로젝트의 진행을 챙겨야하는 기획자 여러분은 개발자와 소통을 위해 여러 대화 스킬과 개발 지식을 습득해야 할 필요가 있다. 그들이 개발하는데 충분한 시간을 쏟을 수 있도록 환경을 만들어 준다면 분명 품질좋은 소프트웨어로 보답해 올 것이기 때문이다.


    개발자들의 성향을 이해하기 위해 컴퓨터공학과에서 교육하는 수업 커리큘럼을 이해해 볼 필요가 있다. 전공 핵심 과목으로 많은 과목들이 있다. 알고리즘, 데이터베이스, 자료구조론, 컴퓨터구조, 네트워크등인데 많은 과목들이 한정된 컴퓨팅 자원을 어떻게 효율적으로 사용할 것 인가에 관한 내용을 담고 있다. 많은 양의 데이터를 어떻게 효율적으로 저장하고 불러오면서도 빨리 처리하고 오류없이 수행해 내는지가 컴퓨터과학의 핵심 담론이라고 나는 생각한다.


    학과수업 이후 단과대학 학회중 정보보안 학회에 소속되어 활동했다. 여기서 학생들끼리 노는 방법도 다른전공 학생들이 보기에는 매우 신선할 것이다. 여러 놀거리 중 ‘코드골프’ 라는게 있는데 이는 같은 동작을 하는 프로그램을 가장 짧은 글자수로 구현해내는 놀이이다.        

                



    위 예제처럼 파이썬으로 간단하게 입력값을 받아 두 값을 합친 값을 출력하는 프로그램을 가능한 짧게 작성하는게 이 게임의 목표이다. 모두가 이런 게임을 하고 노는건 아니지만 나포함 많은 친구들이 이런데서 큰 재미를 느끼고 좋아했다. 이런 성향은 일할때도 그대로 드러난다. 개발자들은 자기가 짠 코드가 오류가 없으며 이해하기 쉬우면서도 가능한 간결 하길 원한다. 본인이 작성 코드 이지만 마음에 들지 않아 다시 짜는 경우도 많다. 서로 더 좋은 코드를 작성하기 위해 다른사람이 작성한 코드를 여럿이 모여 공개적으로 피드백 하며 첨삭하는 ‘코드리뷰’ 라는 문화도 있다. 자신이 작성한 코드를 부끄러워하는 사람도 있지만 이런 문화를 좋아하고 즐기는 개발자를 나는 좋아하고 더 높은 품질의 소프트웨어를 만들거라고 믿는다.


    이처럼 업무를 하며 프로젝트의 성공 외에도 개인의 성취감을 중요하게 생각하는 사람들이 개발자 들이다. 그들이 마음껏 성취감을 느끼며 프로젝트에 성실히 임하도록 만들기 위한 노력을 기획자들이 한다면 함께 행복한 프로젝트가 될 수 있다고 생각한다.

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