
주제: 코더를 넘어 프로그래머로 - 주니어 개발자가 팀의 신뢰를 얻는 방법
강연자 : 최호영 - 넥슨코리아 파트장
발표분야 : 프로그래밍, 커리어
권장 대상 : 취업 준비생, 주니어 프로그래머
관심태그 : #프로그래밍 #역할
[🚨 강연 주제] 이 세션은 프로그래머가 코드를 짜는 것 이상으로 처리해야 할 영역이 많다는 것을 강조하며 이에 대해서 어떻게 풀어나가야 할지에 대해 설명한다. 최호영 넥슨코리아 파트장은 이에 대해 피드백, 생각의 전파와 기록, 일정 관리가 중요함을 언급하며 주니어 개발자가 팀의 신뢰를 얻는 팁을 전수한다.
게임 업계에 크게 관심이 있는 사람이 아니라면 일반적으로 '게임 개발자'라 하면 지시가 내려오면 코딩하고, 코딩 완료 후 잘 작동하는지 검토하는 과정을 수행하는 이라고 생각하는 이들이 많다. 최호영 넥슨코리아 파트장 역시 대중이 생각하는 프로그래머 이미지를 설명하며 "어두운 모니터 앞에서 알 수 없는 코드를 쉴 새 없이 입력하는 모습을 떠올리실 것"이라고 언급했다. 최 파트장은 실무에 있어 프로그래머는 해당 역할에 국한되지 않음을 언급하며 앞으로 주니어 개발자가 될 이들에게 어떤 자세로 임해야 하는지에 대해 발표했다.
파트1 - '역제안'의 기술을 기억하라.

최 파트장은 프로그래머가 다른 직군으로부터 전달받는 작업 명세서는 현실적으로 완벽할 수 없다는 점을 들며 안전하고 예외 없는 코드를 짜야하는 프로그래머 입장에서 반드시 명세서의 논리적 허점을 찾고 보완하는 작업을 수행할 것을 당부했다.
그는 명세서를 액면가 그대로 받아들이는 것이 아닌 요청자와의 대화를 통해 '왜 이것을 해야 하는가'를 파악하는 것이 중요하다고 언급했다. 최 파트장은 출석부 시스템을 예시로 들며 "출석부 시스템은 복잡한 설계가 필요한 시스템이다. 그만큼 코스트가 많이 드는데, 출석부를 만드는 것이 중요한 것이 아니라 출석부를 만드는 목적에 집중해야 한다. 만약 진짜 목적이 초반 유저에 대한 잦은 보상이라면 복잡한 출석부 UI를 만드는 대신에 우편 발송 시스템을 대안으로 찾을 수 있는 것이다"라고 설명했다. 역제안을 해서 실무 단계에서 불필요한 코스트를 줄일 수 있는 것이다.
또한, 역제안을 통해 기획의 리미트를 더욱 넓혀주는 역할도 할 수 있음을 시사했다. 특정 내용을 기술적으로 어렵다고 선을 긋는 대신에, 기술적인 제약은 프로그래머인 본인이 감수해 볼 테니 우선 목적에 맞게 마음껏 디자인해 달라고 말을 하면 기획자의 역량이 올라간다는 것이다. 이를 통해 기획자가 기술적 한계를 미리 정하고 기획의 재미를 반감시키는 것을 막을 수 있다고 최 파트장은 덧붙였다.
더불어 최 파트장은 역제안을 할 때 조심해야 하는 부분도 설명했다. 프로그래머는 엄연히 구현자이지 최종 결정권자가 아니기에 역제안을 하되, 이후 나온 디자인에 대해 평가하거나 해서는 안 된다고 강조했다. 말을 함에 있어 단순히 내 취향인지 향후 시스템 안정성을 위해 권장하는 부분인지 확실히 할 필요성이 있다는 것이다.

파트2 - 생각의 전파와 기록

최 파트장은 프로그래머는 한 번 만들고 끝내는 사람이 아니라, 지속해서 유지 보수하며 발전시켜야 하는 이라고 이야기하며 내 머릿속에만 있는 판단과 의도를, 동료와 미래의 나 자신에게 공유하고 넘기는 작업이 중요함을 설명했다.
가령 아무리 잘 작성된 코드라도 결과물일 뿐, 그 코드가 어떤 이유에서 작성되었는지 코드만 보고선 단숨에 알아차리기 힘들다며, 과정과 결과를 문서, 커밋 메시지 등을 통해 기록해 둘 필요성이 있음을 이야기했다.
또한 선제적 전파와 맥락 기록하기도 굉장히 중요함을 언급했다. 최 파트장은 "다 만들고 통보하면 이미 방향이 어긋나고 돌이키기 어려운 경우가 부지기수다"라고 말하며 작업 전이나 중간에 방향을 공유하면 동료로부터 미처 몰랐던 피드백을 받거나 이미 존재하는 코드를 재활용할 수 있어 불필요한 작업 비용을 획기적으로 줄일 수 있음을 말했다.
또한, 정식 문서화가 가장 이상적인 부분이지만 부담스럽다면 깃이나 커밋 메시지를 통해 최대한 상세히 작업 의도를 남겨 동료든 미래의 나에게든 힌트를 줘야함도 덧붙였다. 한참 뒤에 코드를 열어 '도대체 코드를 왜 이렇게 짰지'라며 절망하지 않도록 미리 노력하면 좋다는 것이다.

파트3 - 일정 관리의 중요성 '완벽한 준수' 보다 '투명한 공유'

최 파트장은 앞서 언급된 두 요소와 더불어 일정 관리도 프로그래머가 갖춰야 하는 중요한 실무 역량이라 언급했다. 그는 아무리 철저하게 계산된 일정이라도 현실의 개발 과정에서 틀어지기 마련이라고 말하며 흔들리는 상황 속에서 어떻게 능수능란하게 대응하고 공유할 것인가가 중요하다고 강조했다. 그리고 그에 대한 답으로 '투명한 공유'를 제시했다.
그는 일정을 부풀리거나 줄이지 않고 있는 그대로 공유하는 것이 중요하다고 말하는 동시에 특히 진도가 나가지 않아 슬럼프가 왔을 때 숨기거나 혼자 끙끙 앓지 말고 리더에게 솔직하게 알리는 용기가 필요하다고 했다.
또한 매일 아침 업무 시작 5분 전에 내 작업이 계획대로 가고 있는지, 지연의 조짐은 없는지, 리더에게 알릴 이슈는 없는지 스스로 점검하는 습관을 들이면 문제가 불현듯 커지는 사태를 조기에 예방할 수 있다는 점도 꼽았다.
대안을 동반한 공유도 습관이 되어야 한다고 최 파트장은 말한다. 단순히 "일정이 늦어집니다"라고 말하는 것은 무책임하며, 일정을 늘려 완성도를 높일지, 스펙을 줄여 데드라인에 맞출지 등 선택지를 선정하고 그에 따른 장단점을 제시하는 것이 가장 현명한 대응법이라는 것이다. 대안이 도무지 없다면 "도와달라"는 명확한 도움을 요청하는 자세도 갖췄으면 한다고 말했다.
마지막으로, 내 일정이 흔들릴 때 전체 우선순위를 조정해 줄 권한이 있는 사람, 이를 테면 리더나 PM 등과 확실히 커뮤니케이션을 하고 있어야 함을 들었다. 단순히 문서에 적어두었다고 안심하는 것이 아닌 때때로 이들을 직접 호출하여 이들도 알고 있는지, 이들이 나에게 해줄 수 있는 건 없는지 확인하라고 그는 조언했다.
마치며, AI 시대에 있어 기본 실무 역량은 왜 중요할까

끝으로, 최 파트장은 발표 자료의 상당 부분을 AI와 협업한 사실을 언급했다. 그러면서 AI 시대에 있어 기본 실무 역량이 왜 중요한지 재차 강조했다.
순수한 코딩의 상당 부분은 AI가 대체하게 될 수 있으므로, 인간이 할 수 있는 영역, 이를 테면 기획의 빈틈을 파악해 방향을 조율한다든가, 동료와 맥락을 공유한다든가, 위기 상황을 유연하게 넘긴다든가 하는 것을 키워내 가치를 높이는 것이 중요하다는 것이 최 파트장의 논지이다. 그는 이번 발표를 통해 앞으로 실무를 보게 될 주니어 개발자들이 코더를 넘어 진정한 프로그래머의 역할을 수행했으면 한다는 소망을 밝혔다.