로그인

회원가입 | ID/PW 찾기

취재

[NDC 18] "좋은 인재 만드는 교육, 업계 성장을 위해 필요", 데브캣의 프로그래머 교육법

홍성우 데브캣 스튜디오 프로그래머가 말하는 교육의 중요성

에 유통된 기사입니다.
오민규(핫산) 2018-04-26 19:50:31

'취준생'들이 면접에서 가장 많이 하는 말은 아마도 "열심히 배우겠습니다"라는 문장일 것이다. 동시에, 이 말은 면접관이 가장 싫어하는 종류의 대답이기도 하다. 면접관의 귀에는 "저는 아무것도 할 줄 모릅니다"라는 말로 들리기 때문이다. 대부분의 회사는 '배우는' 사람보다 일을 '잘하는' 사람을 뽑고 싶어 한다.

 

그런데 데브캣 스튜디오의 홍성우 프로그래머는 조금 다르게 생각한다. '교육'은 학교뿐만 아니라 회사에서도 이어져야 한다고 말이다. 2018 NDC의 마지막 날, 홍성우 프로그래머가 '프로그래머는 어떻게 교육하나요?'라는 주제로 강연을 진행했다. 왜 그는 회사에서의 교육이 중요하다고 말하는 걸까? 그의 강연을 정리했다. / 디스이즈게임 오민규 기자 


 

 홍성우 데브캣 스튜디오 프로그래머

 

 

# "공부하고 배우는 일은 학교에서 해야하는 일 아닌가요?"

 

먼저, 홍성우 프로그래머는 프로그래머 교육을 '영화'에 비교하며 강연을 시작했다. 영화감독의 중요한 일 중 하나는 배우들의 연기를 지도하는 것이다. 영화에서 감독의 의도가 배우들의 연기를 통해 스크린에 표현되기 때문이다. 만약, 감독이 배우들의 연기를 제대로 지도하지 못한다면 영화의 완성도는 떨어진다. 

 

게임도 마찬가지다. 프로그래머는 게임의 기획과 아트 어셋을 만들고, 제품으로 완성하는 최종 관문이다. 프로그래머의 역량과 기술 수준이 낮다면 게임 전체의 퀄리티가 떨어진다. 따라서 프로그래머의 역량을 적절하게 관리하는 것은 완성도 높은 게임을 위해 중요한 일이다.

 

홍 프로그래머는 "공부하고 배우는 일은 학교에서 해야 하는 것이 아닌가?"라는 질문이 있을 수도 있다고 말했다. 하지만 그는 학교에서 배우는 것만으로 회사 일을 완벽하게 해낼 수 없다고 전했다. 전공이 프로그래밍이라면 학교와 회사에서 공유하는 지식 기반은 비슷하다. 

 


 

하지만 품질 기준이나 업무를 보는 관점이 크게 달라진다. 무엇보다 회사에서 만드는 제품은 돈을 받고 팔 수 있는 수준이어야 한다. 이 때문에, 홍 프로그래머는 "학교에서 잘하더라도 회사에서 좋은 프로그래머가 될 수 있는 것은 아니기에 회사에서의 교육이 필수적"이라고 말했다.

 

그렇다면 새로 들어온 경력직 직원은 교육이 필요 없을까? 홍성우 프로그래머는 답은 "NO"였다. 그는 'C ++'를 쓰던 회사에서 '파이썬'을 쓰는 회사로 이직해 애를 먹었던 경험을 이야기하며, 조직마다 가진 문화와 기준이 다르다고 말했다. 홍 프로그래머는 새 직장에 들어가게 되면 새로운 팀의 규칙과 정책을 학습하고, 새로운 조직 문화에 적응해야 하기 때문에 재교육은 필수라고 강조했다.

 

홍성우 프로그래머는 회사에서의 교육은 실력 있는 동료를 만들기 위해서도 중요하다고 말했다. 프로그래머의 업무 환경은 조직의 코드 품질과 직결된다. 멋진 작품을 만들고 싶어도 개발 환경이 받쳐주지 못하면 불가능한 일이다. 만약, 팀의 코드 품질이 나쁘면 깨진 기능을 복구하거나 문제를 추적하는데 시간을 많이 쓰게 된다. 개개인이 좀 더 의미 있는 일에 시간을 쓰기 위해서는 동료들이 함께 잘 해줘야 하는 것이다. 

 

 ​회사에서 동료의 실력은 곧 자신의 생산성과 비례한다 

 

 

# 프로그래머 교육을 위한 세 가지 방법: 코드 리뷰, 설계 리뷰, 아침 회의

 

홍 프로그래머는 프로그래밍 업무 교육을 위해 '코드 리뷰', '설계 리뷰', '아침 회의'라는 세 가지 단계를 이용한다고 말했다. 

 

코드 리뷰는 자기 일을 잘라서 나눠주는 것에서부터 시작한다. 단, 나눠주는 일은 반드시 실무와 연관되어 있어야 하고, 교육하는 사람이 충분히 잘 알고 있는 일을 피교육자에게 시켜야 한다. 

 

그다음, 피교육자에게 어떤 구조로 문제를 풀면 되는지, 어떤 스타일을 참고하면 되는지 방법을 자세히 알려줘야 한다. 또, 충분한 정보를 제공해야 하고, 질문에도 잘 답변해줘야 한다. 무엇보다 피교육자를 테스트하기 위한 목적이 아니기 때문에 쉬운 일부터 완수할 수 있도록 돕는 게 중요하다.

 


 

마지막은 결과물을 확인해서 피드백하는 단계다. 이 과정에서 피교육자가 아닌 교육자가 했다면 어떤 점에서 달라졌을지 알려주고, 더 나은 결과물을 만들 수 있도록 반복해서 피드백을 준다. 다만, 피드백을 줄 때는 일관성이 있어야 하고, 지시와 지적 사항의 근거가 명확해야 한다.

 

코드 리뷰 과정을 꾸준히 반복하다 보면 교육자와 피교육자의 수준이 얼추 비슷해진다. 수준이 비슷해지면 작업 결과를 어느 정도 예상할 수 있기 때문에 상대를 신뢰할 수 있다. 또, 세부 지시가 없는 부분도 피교육자가 스스로 응용해서 판단할 수 있고, 교육자는 더 크고 어려운 일을 할당할 수 있다. 

 


 

설계 리뷰는 결정의 근거를 확인하고, 타당성을 검토하는 작업이다. 이를 통해, 예상되는 문제를 찾아내고, 다른 의견을 제시해 볼 수 있기 때문에 스스로 고민하는 폭을 점점 넓혀 갈 수 있다.

 

설계 리뷰를 이용하면 많은 것을 배울 수 있다. 문제를 볼 때 사고의 흐름을 알 수 있고, 경합하는 가치들 중 우선순위를 정할 수 있으며, 미래의 스펙과 환경 변화에 대비할 수 있다. 무엇보다 다른 팀원과 의견을 주고받으면서 설계를 완성해가는 과정을 배울 수 있다. 

 


 

아침 회의는 '커뮤니케이션'과 관련이 있다. 보통 사람들은 '프로그래머'라고 하면 기계와 일하는 직업이라고 생각한다. 하지만 프로그래머는 생각보다 말을 많이 해야 한다. 따지고 보면 코드 리뷰와 설계 리뷰 모두 말이나 글로 하는 작업이다. 홍성우 프로그래머는 이를 두고 "프로그래머에게 필요한 언어는 C ++도, 파이썬도 아닌 한국어"라고 말했다. 

 

프로그래밍은 보이지 않는 기계의 동작을 말로 설명하는 행위다. 기술적이고 전문적인 내용을 모호함을 배제하면서 명료하게 설명해야 하기 때문에 커뮤니케이션이 중요하다. 홍 프로그래머는 '아침 회의'가 커뮤니케이션을 훈련하고, 조직 문화의 공감대를 만드는 최적의 도구라고 전했다.

 

홍성우 프로그래머가 말하는 아침 회의를 통해 중요하게 연습해야 하는 것은 다음과 같다. ▲ 중요한 내용을 사실 중심으로 건조하게 요약, 보고하기 ▲ 모르는 것은 모른다고 이야기하기 ▲ 원하는 대답을 얻기 위한 좋은 질문 방법 찾기 ▲ 상대와 논쟁할 때 필요한 대화의 톤과 적절한 표현 찾기. 즉, 아침 회의를 통해 사교적인 대화보다는 기술적인 대화를 훈련해야 한다는 것.

 

이렇게 아침 회의를 통해 커뮤니케이션 방법을 훈련하면 동료들이 문제를 바라보는 관점과 접근 방식을 이해할 수 있고, 업무의 큰 그림을 볼 수 있다. 또, 내가 부딪힌 문제에 대한 실마리를 얻을 수 있고, 각자 다른 일을 맡더라도 함께 협력한다는 연대감을 느낄 수 있다.  

 

 ​홍성우 프로그래머가 말하는 효율적인 아침 회의 운영법

 

 

# 한 아이를 키우려면 온 마을이 필요하다

 

이 3가지 교육 방법의 목표는 피교육자가 교육자의 업무 능력을 복제하는 것이다. 그렇게 되면, 한 사람이 회의에 들어가서 자리를 비우더라도 업무 진행에 차질이 생기지 않고, 업무에 대한 의견을 주고받는 사람이 많아져서 더 좋은 결과물을 만들어 낼 수 있다. 결과적으로 교육을 통해 배우는 사람은 지속적으로 성장감을 느낄 수 있어서 업무 만족도가 높아진다.

 

홍성우 프로그래머는 이같은 교육 방법이 "혼자 일하지 말고, 팀과 동료와 같이 일하는 것"을 의미하며 "회사는 개인이 아니라 조직 전체를 통해 성과를 내야 하기 때문에 구성원 간의 시너지를 최대한 끌어내는 조직 문화를 만드는 것이 중요하다"고 말했다. 

 


 

그러면서, 홍 프로그래머는 실제 교육 진행 시 주의해야 할 사항에 대해 조언했다. 그는 "교육은 관심에서 시작된다"며 "지속적으로 상대에게 관심을 갖고, 유대감을 쌓을 필요가 있다"고 말했다. 같이 일하는 사람이라도 '포섭'할 사람이라고 생각하고 일하는 게 중요하다는 것. 

 

또, 그는 교육을 할 때 "센스나 상식과 같은 단어를 사용하지 않는 게 좋다"고 전했다. 이런 단어는 교육자가 스스로 정의할 수 없거나, 일관성이 없을 때 나오는 말이기 때문이다. 

 

홍성우 프로그래머는 '한 아이를 키우려면 온 마을이 필요하다'는 문장을 인용하며 "좋은 교육을 위해서는 조직의 구성원 서로 서로가 돕는 것이 중요하다"는 말로 강연을 마무리했다. 

 

 홍 프로그래머는 게임 업계의 성장을 위해서도 지속적인 교육이 필요하다고 생각한다