유하에서는 분기별로 각자 기술에 대한 하나의 주제를 정하여 글을 작성하기로 했습니다. 입사한 지 대략 한달이 지난, 세 명의 개발자는 아직 배우는 과정으로 글의 소재를 정하기가 어려웠습니다. 이를 고민하던 중, 함께 모여 각자의 ‘이야기’를 하나의 글로 작성해 보자는 의견으로 시작되었습니다.
누구나 어떤 일에 대해서 ‘처음'이라는 것이 있었을 것입니다. 이번 글에서는 Ticketplace에 입사한 지 대략 한 달이 지난, 세 개발자가 ‘입사 전 이야기’, ‘입사 후 알게 된 점', ‘업무 적응 이야기' 총 세 개의 파트로 나누어 이야기를 하고자 합니다.
목차
입사 전 이야기
개발자가 된 계기
Q. 개발자가 되기로 한 계기나 이유가 있으신가요?
그런데, 개발자가 아니어도, 과거부터 현재까지 사무, 그래픽, 영상 등등 거의 대부분의 업무는 컴퓨터로 이루어지고 있습니다. 하지만, 저는 컴퓨터를 사용만 하는 것이 아니라, 컴퓨터를 저의 뜻대로 움직이게, 컴퓨터가 내가 원하는 형태대로 동작할 수 있도록 하고 싶었습니다. 이에 생각 끝에 개발자가 되기로 마음먹었습니다.
개발자가 되기 위한 과정
Q. 개발자가 되기 위해 무엇을 하셨나요?
이후, 대학에 진학하고 취업을 하게 되었습니다. 처음엔 대표님 한 명뿐인 회사에 제가 들어가 회사 규모가 점점 커져, 나올 때 즈음엔 총 직원이 5명인 회사로 성장해 있었습니다. 현재는 Ticketplace로 이직했으며, 동창인 친구들과 게임 개발에 참여하는 등, 계속해서 개발자로써의 역량을 쌓기 위해 노력하고 있습니다.
취업하고자 했을 때
Q. 본격적으로 취업하고자 했을 때 어땠나요?
입사 후 알게 된 점
이슈 관리 방법
이슈 관리는 필수적으로 해야 하는 것 중 하나라고 생각합니다. 프로젝트나 서비스를 배포하기로 마음 먹었을 때, 또는 배포 이후이면 더더욱 이슈 관리는 중요하게 다가옵니다.
즉, 프로젝트가 어떠한 상태에 있다고 하더라도 이슈가 발생하면 해당 이슈를 추적하고, 확인할 수 있어야 합니다.
Ticketplace는 이렇게 하고 있습니다:
질문을 두려워하지 않기
질문은 돈이 들지 않아요. 마음껏 질문해 주세요.
Ticketplace의 입사 과제에는 의도적으로 질문을 유도하는 듯한 내용이 있었습니다. 예를 들어, 내용이 명확하지 않다던가, 틀린 내용이 적혀저 있다던가 하는 것들 말이죠.
Ticketplace에서는 애자일 소프트웨어 개발을 지향하고 있는데, 애자일 4대 선언에서는
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
와 같이 선언하고 있습니다. 해당 선언에서는, 왼쪽에 있는 것들도 가치가 있지만, 오른쪽에 있는 것에 더 높은 가치를 둔다고 이야기하고 있습니다.
개인과 상호작용을 부분에 주목해 보면 왜 그러한 과제가 주어졌는지 명확해집니다. ‘질문’을 통해, 자연스럽게 해당 방법론을 채득할 수 있도록 도와주신 것이죠.
질문을 던질 수 있도록 도와주심으로써, 질문이 협업에서 얼마나 중요한 것인지를 배울 수 있었습니다.
혼자서 해결하기 어려운 주제에 대하여 질문을 망설이는 것은, 질문을 통해 문제를 해결할 때보다 시간이 지체될 가능성이 높고, 그렇게 되면 결론적으로 일정을 지키지 못하게 되는 경우도 발생하게 됩니다. “고민은 배송만 늦출 뿐!” 이라는 말이 있듯이 고민은 해결만 늦출 뿐입니다.
대부분의 신입분들은 질문을 하면 “이런 것도 몰라?” 라고 생각하실까봐 걱정하고, 결국 질문을 고민하고 있을 겁니다. 신입은 모르는게 당연하고, 이를 배워서 성장하면 됩니다. 그리고 옆에는 도와주실 팀원분들이 존재합니다.
문서화의 중요성
개발자는 코드를 작성하는 것이 다라고 생각할 수 있지만 개발자는 ‘코드만 작성하는 사람'이 아닙니다. 코드 작성하여 제품을 만들고 서비스가 돌아간다고 해서 일이 끝나는 게 아닙니다. 만든 제품을 누군가에게 설명해야 하고, 작업에 대해 기록을 남겨야 하는 상황이 생길 수 있습니다. 또한 작업 도중에 이슈가 생겨 공유하는 일이 있을 수도 있습니다.
제품을 만드는 일에 있어서 문서화는 필수입니다. 작업을 하기 전, 작업 중일 때, 작업이 끝나고 나서 문서가 필요한 상황은 반드시 발생합니다.
또한 나중에 일어날 수도 있는 일에 대한 대처방안이 되기도 합니다. 잘 기록된, 정리가 잘 되어있는 문서는 새로운 개발자가 팀에 합류할 수도 있는 상황에서 굉장히 유용한 키가 됩니다.
이것은 신입 개발자 중 한 명의 경험담인데요, 어떠한 프로그램의 Add-In을 작성해야 하는 일이 있었습니다. 해당 프로그램은 .NET Framework로 제작되어 있었는데, CodeDOM 패키지를 이용하여 사용자가 직접 해당 애플리케이션 내에 필요한 기능을 스크립팅 할 수 있도록 되어 있었습니다.
그런데, 문제는 스크립팅에서 사용해야 하는 컴포넌트들의 구조에 대한 문서가 전혀 제공되지 않았습니다. 어떠한 class에 어떤 function들이 있는지를 아는 방법은 내장 Editor에서 제공해주는 자동완성 기능에서 하나씩 찾아나가는 방법 뿐이었습니다.
절망 속에서도 한 줄기 빛은 있었습니다. JetBrains에서 무료로 제공하는 DotPeek라는 프로그램이 있었는데, .NET Framework로 제작되어 컴파일 된 컴포넌트를 디컴파일하여 코드를 확인할 수 있는 프로그램이었습니다. 이후의 일은 상상에 맡기겠습니다.
하지만 이 프로그램은 비유하자면 손전등 정도의 빛 정도밖에 비춰주지 못했습니다. 만일 문서화가 되어 있었다면, 문서는 태양과 같이 필요한 모든 부분을 비추어주었을 것입니다.
극단적인 예시였지만, 문서화가 왜 필요하며, 문서화가 되어 있지 않았을 때 일어날 수 있는 일에 대해 생각해보게 되는 계기가 되었으면 합니다.
업무 적응 이야기
입사 후, ‘어?’ 했던 것들
Q. 입사 후에 의문점을 가진 부분이 있나요?
코드 분석
Q. 코드를 분석하거나 파악하고자 했을 때 어땠나요?
이슈 해결 과정
Q. 입사 후, 할당된 이슈를 해결한 과정에 대해 들려주실 수 있나요?
TDD (Test Driven Development)에 대해 들어도 보았고, 중요성도 알고는 있었으나, 어떤 식으로 테스트를 진행해야 하는지는 모르고 있었습니다. 지금까지는 개인 프로젝트 등 프로젝트를 진행할 때, ‘돌아만 가면 된다'라는 생각으로 마무리한 경험이 대부분이었습니다. “한 번이 어렵지 두 번은 쉽다”라는 말이 있습니다. 이슈를 해결하는 과정에서 테스트 코드를 작성해보고 나니, 앞으로 프로젝트 진행에 있어서 중요하게 될 스킬을 배울 수 있었습니다.
저자 소개
김해린은 현재 Front-end 개발자로 일하고 있습니다. 개발 뿐만 아니라 다양한 분야를 접하고 즐기려고 노력하고 있습니다.
이지헌은 매일 성장하는 즐거움으로 사는 Back-end 개발자입니다. 주어진 문제들을 해결하여 비즈니스 가치를 창출하는 개발자로 성장하는 목표를 가지고 있습니다.