통합 검색어 입력폼

배달의민족, 현장이 원하는 개발자 교육에 나선 이유: 박재성 우아한테크코스 이사 인터뷰

조회수 2020. 9. 16. 16:35 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

좋은 프로그래머? 프로그래밍을 좋아하는 프로그래머다!

이승환(ㅍㅍㅅㅅ 대표, 이하 리): 간단하게 자기소개를 부탁드립니다.


박재성: ‘배달의 민족’으로 잘 알려진 우아한형제들의 개발 교육 코스 ‘우아한테크코스’ 운영을 총괄하는 박재성 이사입니다. 일반 직원으로 들어오려 했는데, 그래도 ‘우아한테크코스’를 대표하는 자리라고 임원 자리를 제안해 주셨습니다.


리: 어쩌다 우아한형제들, 배민과 연을 맺게 된 건가요?


박재성: 2년 전인 2017년, 우아한형제들에서 내부 재직자 교육을 제안해 주셨어요. 스타트업 중 기존 개발자를 내보내며 기술 전환을 하는 곳이 많은데, 우아한형제들은 기존 직원들의 역량을 키워서 같이 가고자 한 거죠.


리: 내보내기보다는 개발 실장급이나 CTO급, 이런 분들을 데려와서 기존 개발자를 리드하는 경우가 많지 않나요?


박재성: 꼭 나가라… 이런 건 아니라도, 새로운 언어를 사용하며 자연스럽게 기존 개발자가 나가는 경향은 좀 있죠. 배민은 어떻게 하면 기존의 직원들을 포용해 나갈 수 있을까 고민했던 거예요. 그 인연이 이어져, 작년 여름에 ‘우아한테크캠프’라는 인턴 과정을 운영하게 됐어요.

개발교육 전설의 시작

리: 이름이 굉장히 특이한데, 어떤 인턴 과정이었죠?


박재성: 우아한형제들에서 쓰는 기술 스택 기반으로 교육을 제공하는, 완전한 현장형 교육코스였어요. 6주 동안 이론 수업과 실습 미션을 줬고, 이후 3주간 프로젝트를 돌렸어요. 인턴들의 만족도가 상당히 높았고, 그중 절반 이상이 우아한형제들에 취업했어요. 프로젝트 결과물이 정말 좋았거든요.



좋은 프로그래머는 프로그래밍을 좋아하는 프로그래머

리: 9주 만에 성과를 냈다는 게 신기하네요. 무엇 때문일까요?


박재성: ‘신나서’라고 생각해요. 대학에서는 아무리 열정적이라도 자기처럼 열심히 하는 친구가 없어서 힘들어하잖아요. 조별 과제 하면 항상 자기만 열심히 한다고 생각하고… 애초에 열정적인 분들을 뽑으니, 재미있게 협업하고 좋은 결과가 나오는 거죠.

조별 과제의 현실

리: 어떤 점을 보고 인턴을 뽑은 거죠?


박재성: 프로그래밍을 정말 좋아하는 친구들이요. 취업을 목적으로 하거나 스펙을 쌓기보다는, 프로그래밍을 통해서 뭔가를 만들어가는 즐거움을 느끼는 게 가장 컸어요. 다른 친구들이 스펙 쌓을 시간에, 프로그래밍으로 뭔가를 만드는 걸 반복한 거죠. 현장에서는 그런 친구들 뽑고 싶어 하거든요.


리: 작은 거라도 뭔가 만들어봐라, 그런 건가요?


박재성: 네, 그렇죠. 학점이 좋아도, 실제 프로그래밍을 시키면 제대로 구현하지 못하는 친구들이 상당히 많습니다. 좋은 프로그래머로 성장하는 친구들은 자기가 흥미가 있기 때문에, 특정 개발 언어에 구애받지 않고 다양한 방식으로 도전해보죠.


리: 면접으로 평가하기 엄청 빡셀 것 같은데…


박재성: 좋은 질문의 예로 이런 질문이 있어요. “혹시 본인을 위해서 만들어 본 소프트웨어가 있나요?”, 아니면 “본인이 소프트웨어를 만들며 가장 어려웠던 문제와 해결책은 무엇이었나요?”, 그러면 진짜 깊이 있는 경험을 한 친구들은 그때를 떠올리면서 약간 흥분도 할 정도로 열정이 보여요. 그리고 그 경험을 기반으로 답변하죠. 반면, 피상적인 경험만 한 친구들은 질문을 한두 단계만 꼬리를 물어도 답변을 못 하거든요.

출처: 반병현의 브런치
위기지학은 가장 좋은 프로그래밍이다.



경쟁이 아닌 협업을 강조하는 교육

리: 우아한테크코스 교육은 단순히 개발 교육만 시키는 게 아닌 것 같아요.


박재성: 맞습니다. 물론 소프트웨어 교육기관이기 때문에, 프로그래밍을 잘하는 걸 1차 목표로 하죠. 하지만 강의보다는 저희가 미션을 주고, 문제 해결을 설계하게 합니다. 현장은 그쪽에 훨씬 가까우니까요. 대신 그때마다 참고할 키워드, 책, 각종 문서를 제공하고, 미션을 해결한 후 저희가 1 대 1 피드백을 해줘요.


리: 주입식이라기보다 문제 해결 능력을 키운다? ‘이런 상황이 있으면 어떻게 할 거야?’ 하고요?


박재성: 네, 문제 해결 역량을 키우는 게 하나고, 두 번째는 자기 주도적으로 학습하는 겁니다. 현장에서는 선배들이 하나하나 친절하게 가르쳐주지 않거든요. 우리나라 회사 불친절하다고 하는데, 저는 외국도 똑같다고 생각합니다. 그래서 현장과 비슷한 경험을 하게 만들어서 스스로 학습하는 법을 익히는 거죠. 세 번째는 협업이고요.

좋든 싫든 기업의 현실이다

리: 교육에서 협업을 굉장히 중시하시는데요, 어떤 관점에서 그런 생각을 가지고 계시는지요.


박재성: 대학에서 경험하는 협업은 한계가 뚜렷해요. 과제나 프로젝트를 주면 많은 대학생은 ‘너는 UI 개발 잘하니까 UI 전담해, 너는 백엔드 잘하니까 백엔드 개발을 전담하고, 너는 발표 잘하니까 발표해’…


리: 보통 회사도 그렇지 않나요, 대표가 입 털며 영업하고, CTO 밑에서 프런트엔드 백엔드 갈라지고….


박재성: 맞습니다. 맞는데 제대로 된 협업을 하려면, 어떤 기능이나 부분을 구현하기 이전에 의견 충돌이 있어야 해요. 전문 영역으로 딱 나눠버리면 의견이 충돌할 상황이 별로 없거든요. 딱 분업화가 되어버리면 자기 일 외에 신경을 끕니다. 사용자에게 진짜 의미 있는 서비스를 만들려면, 자기 전문 분야만 개발하는 게 아니라, 남이 개발하는 기능에도 관심을 가지고 치열하게 논쟁해야 합니다.



지식을 공유하고 해결책을 스스로 찾게 만드는 ‘짝 프로그래밍’

리: 협업을 촉진시키기 위한 방법은 어떤 게 있나요? 교육 레벨에서는 쉽지 않을 듯한데…


박재성: 일정 기간 ‘짝 프로그래밍’을 해요. 노트북 한 대를 놓고 두 사람이 같이 한 문제를 푸는 거예요. 그러면서 상당히 많은 의견 교환을 하겠죠. 의견 충돌도 생기고 막 싸우기도 하고 그럴 수 있겠죠? 그걸 해결하는 게 저는 가장 작은 단위의 협업이라고 생각해요.

두 사람이 하나의 모니터로 코드를 논하게 한다

리: 짝 프로그래밍을 많이들 이야기는 하지만, 현실에서는 바빠서 내 일 하느라 불가능하다… 이야기를 많이 들었어요. 현업에서도 쓸만한 기법이라고 생각하세요?


박재성: 저는 네이버에 있을 때, 거의 3년 동안 팀 운영을 짝 프로그래밍으로 했어요. 특히나 신입사원 교육은 무조건 매일매일 다른 선배와 짝 프로그래밍을 하게 했죠. 그러니까 좋았던 게 뭐냐면, 이 친구들이 엄청 짧은 기간 내에 잘하는 선배들의 좋은 점을 다 흡수하는 거예요.


리: 시니어 프로그래머들이 만지는 코드를 신입이 보면 감도 안 올 거 아니에요?


박재성: 처음엔 멘붕이죠, 근데 2~3주 지나면, 처음에는 주눅이 들어 말도 못 하던 친구들이, 좀 친해지며 궁금한 걸 다 풀어놓기 시작해요. 그러면서 선배들도 배우는 게 있어요. 생각보다 답변하기 힘들거든요. ‘내가 왜 이렇게 했지?’란 의구심을 가지며, 생각이 더 체계화돼요. 그걸 배달의 민족 교육에 활용하는 거죠.


리: 사실 신입사원들은 시키니까 하는 거지만, 이미 현업에서 뛰는 사람들은 불편해할 것 같은데요.


박재성: 네, 맞습니다. 사실 짝 프로그래밍을 정착시키기까지 1년이 걸렸어요. 정말 조금씩 변화를 꾀하며 안정화한 거예요. 빠른 속도로 추진하다 보니까 계속 실패하더라고요. 팀원들과 1:1 면담을 한 후, 불만에 대한 답을 그들이 찾게 만들었어요. 문제 해결이 제가 아닌 팀원에게서 나올 때 거부감이 덜 하더라고요.

문제 해결은 외부가 아닌 팀 내에서 이루어진다.

리: 하지만 그러면 스피드가 너무 느리지 않나요?


박재성: 어떤 리더든, 독단적으로 하지 않고 지지를 받는 게 변화를 만들어가는 데 중요하다고 생각해요. 그런 게 없는 상태에서 변화를 만들려 하면, 그 반대의 힘이 상당히 커요.


리: 하지만 팀장 입장으로서는 프로덕트 전체를 봐야 하는데, 팀원이 제시하는 불만이 사실 회사 입장에서는 별로 안 중요할 때가 많잖아요.


박재성: 맞습니다, 그래도 저는 했어요. 일단 팀원들과 신뢰를 형성하는 게 중요했으니까요. 신뢰가 없으면 ‘팀장님한테 뭔가 변화를 제안해도 안 될 거야’ 식으로 변화를 포기하고 말을 안 꺼내요. 그런 친구들한테 ‘우리 팀은 변화를 만들어 갈 수 있구나’, ‘우리 팀장님은 좀 다르네’, 이런 생각을 먼저 주는 게 중요했어요. 그래서 제가 원하는 방향이 아니더라도 일단은 팀원들 의견을 따랐습니다. 신뢰를 만든 다음에 더 큰 변화를 꾀하는 거죠.



업무 이해와 협업 능력의 향상: 글쓰기

리: 짝 프로그래밍 외에 또 어떤 기법들을 사용하시나요?


박재성: 발표예요. 수료할 때까지 반드시 1회 이상의 발표를 하게 만들어요. 발표하며 특정 주제를 깊이 있게 공부하고, 다른 친구들에게 공유하며 많은 걸 느끼죠.

이렇게 화기애애한 발표가 이어진다.

리: 개발을 잘한다는 건, 단순히 코드를 잘 짜는 것과 다르다 생각하시는 건가요?


박재성: 코딩은 기본적으로 있어야 하는 소양이에요. 저도 과거에는 그저 프로그래밍 잘하는 게 중요하다 생각했는데, 갈수록 협업이 중요하단 생각이 들더라고요. 점점 많은 회사가 프로그래밍적 능력은 좀 떨어져도 협업 능력이 되게 좋은 친구들을 선호해요. 그래서 글쓰기도 시킵니다.


리: 글쓰기까지 시켜요?


박재성: 물론이죠. 직장 와서 메일 한 통을 잘 못 쓰는 신입이 한둘인가요. 요즘 친구들이 카톡 대화만 하다 보니까 글쓰기 역량이 부족한 경우가 많거든요. 레벨마다 프로그래밍 관련 에세이를 쓰게 해요. 그 글도 서로 상호 리뷰하게 만들죠. 5명의 팀원 전원이 승인해야 그 글이 완성되는 거예요.

변성윤 님의 개발자를 위한 (블로그) 글쓰기. 개발자답게 깃헙까지 이야기한다.

이승환: 그러면… 개발자와 비개발자 사이의 소통이 엄청 어렵잖아요. 그런 걸 잘 해결할 방안은 어떤 게 있을까요?


박재성: 음… 솔직히 비개발자와의 문제도 있지만, 사실 개발조직 오면 개발자 간에도 소통이 잘 안 되기 때문에……


이승환: ……


박재성: 그러니까, 개발자 간에도 협업하거나 소통하는 연습이 안 되어있는 게 문제라고 생각해요. 비개발자를 설득하기 힘들다고 하는데, 좋은 개발자가 되려면 그런 해결책도 스스로 찾아야 되는 거죠. 같은 개발자끼리도 이게 힘든데, 개발 전문용어를 쓰지 않는 사람과의 소통은 더 힘든 거죠. 코딩을 정말 잘하는데 소통을 못 하는 프로그래머가 많아요. 이 경우 결과물이 정말 좋을까요? 저는 프로그래밍이 좀 부족해도, 같이 일하는 사람을 배려하는 분들이 더 좋은 성과를 낼 수 있다고 생각해요.



배민처럼 교육하기: 레벨 1에서 4까지

리: 그러면 우아한형제들의 개발 교육은 어떻게 짜여 있나요?


박재성: 총 4단계까지 있으며, 점점 협업 레벨을 높입니다. 각각 8주 코스로 총 32주를 하는 거죠. 우아한형제들이 실행력 최고라 생각하는 게, 1월에 준비 시작해서 5월에 바로 런칭했어요. 이번은 처음이니 8개월 과정으로 잡고, 내년부터는 10개월 과정으로 할 생각이에요.


리: 각 레벨에 관해 간단히 설명해주실 수 있을까요?


레벨 1은 프로그래머에 대한 기본적인 자세라고 할까… 프로그래밍 언어 하나를 제대로 써보는 경험이에요. 짝 프로그래밍을 통해 단순히 동작하는 코드만 구현하는 게 아니라, 다른 개발자가 읽기 좋은 코드를 만드는 게 레벨 1의 목표예요.

출처: 삼성SDS
박재성 이사님의 2018 콘퍼런스 발표.

리: 레벨 2는 목적이 무엇이죠?


박재성: 배운 언어를 기반으로 웹 서비스를 만들어 보는 경험을 합니다. 계속해서 문제를 해결하는 경험을 쌓게 하죠. 너무 빠르다 볼 수도 있겠지만, 학생들에게도 “우리의 역할은 여러분들을 멘붕에 빠트리는 거다, 친절하게 무슨 지식을 가르치는 사람들이 아니다”라고 해요. 계속 만들게 하고, 속도가 빠른 친구들이 있으면 난도가 더 높은 미션을 줘요.


리: 근데 보통 앞서 나가면 좀 널널하게 쉬려 하지 않나요?


박재성: 그렇지 않아요. 오히려 저희보다 더 적극적이 되더라고요. 자기들끼리 교육장 주변의 맛집을 구글 시트에 정리하다가, 누가 슬랙 봇으로 만들자고 한마디 던지고 같이 만들어요. 또 도서 대출도 자기들끼리 자동화 서비스를 만들었고요.


리: 서로 그렇게 만들다 보면, 경쟁 장난 아니겠네요.


박재성: 저희는 경쟁하지 말라고 강조해요. 지식이 있으면 계속 전파하고 같이 성장하자, 모든 친구들이 수료하길 바란다, 이런 메시지를 계속 전달하죠. 물론 잘하는 친구들에 대한 부러움이 있겠지만, 협업을 촉진시키며 도와주고 같이 성장하는 걸로 점점 바뀌어가요. 이 친구들 참 마인드가 괜찮은 게, 1차 버전을 만들어서 오픈한 다음에 팀원들 모집을 자기가 하는 거예요. 우리가 시키지도 않았는데… 교육을 리드하는 저희들도 뿌듯합니다.

자기 주도적으로 잘 놀며 공부한다.

리: 레벨 3의 목표는 무엇입니까?


박재성: 레벨 2까지는 ‘내가 뭔가 서비스를 하나 만들어 본다’는 동기부여를 한 거예요. 레벨 3에서는 좀 더 깊이 있는 주제? 약간은 대학교 컴공과에서 하는 컴퓨터 사이언스라고 하는 지식을 가르쳐요. 전반을 다 가르치는 건 아니고, 그중에 현장에서 필요로 하는 지식만 선별해서 가르치는 거예요.


리: 하긴 이론 다 파면 지겹죠…


박재성: 그래서 경험적으로 학습하게 만들며 호기심이 생기게 하죠. 크게 보면 모든 교육의 목표가, 내가 더 공부하고 싶게 만드는 거예요. 웹 서버를 만드는 미션 수행 속에서 자연스럽게 이론 학습이 이뤄지도록 하죠.

이 중 필요한 것만 딱 배운다.

리: 마지막 레벨 4는 대체 어느 정도입니까?


박재성: 레벨 3까지 어느 정도 역량을 만들어 놨으니, 레벨 4에서는 팀을 이뤄 서비스 기획부터 최종 프로덕트까지 내놓아요. 코치들은 피드백과 가이드만 주지, 모든 걸 학생들이 직접 주도해요.



협업과 성장을 위한 회고

리: 절대로 제때 못 끝낼 것 같은데요(…)


박재성: 네, 자기들이 스펙을 너무 크게 가져가면 기간 안에 못 끝낸다는 경험도 소중하다고 봅니다. 대신 의미 없는 경험으로 끝나지 않도록 주기적으로 회고를 하죠. 스프린트를 진행하며 왜 기간 안에 못 끝냈는지 원인을 파악하고, 다음 스프린트에 적용하죠. 이런 식으로 계속 변화와 발전을 거듭하게 만드는 거죠.


리: 팀은 어떻게 짜나요?


박재성: 마지막 4단계까지 가면 랜덤으로 5명이 한 팀이 돼서 제대로 된 협업 경험을 하게 합니다.


리: 왜 랜덤으로 팀을 짜죠? 이왕이면 잘 맞는 애들끼리 해야 성과도 잘 나오고 재밌고 그렇잖아요?


박재성: 현실이 그렇진 않잖아요. 어느 조직이나 항상 마음이 맞지 않는 사람이 있어요. 그런 사람과 만났을 때도 어떻게 협업을 잘할 것인지 경험하고 연습을 하는 거죠.

배민 제공이라 그런지 화기애애해 보인다.

리: 저는 주(weekly) 회고가 좀 텀이 길다고 생각될 때가 있어요. 금요일 되면, 월요일 화요일 했던 거 다 까먹잖아요.


박재성: 그래서 저희 교육과정에서는 매일매일 짧은 데일리 미팅을 해요. 교육을 시작하는 오전 10시에 딱 시작하죠. 일단 체크인을 통해 본인들의 현재 감정 상태를 이야기해요. ‘내가 요즘 뭔가를 학습하는 데 어려움이 많다’ 이런 것도 공유합니다. 많은 사람이 회고를 문제점을 찾고 액션플랜을 만드는 데만 집중하는데, 저는 감정 회고를 많이 하게끔 유도해요. 팀으로 일하는 데는, 서로의 감정을 아는 공감이 중요하니까요.


리: 기분이 어떻냐, 이런 식으로?


박재성: 네, 서로의 기분을 묻죠. “프로젝트에서 네가 이런 식으로 이야기할 때 좀 감정적으로 힘들었다, 앞으로는 이렇게 제안해주면 좋을 것 같다” 같은 이야기를 많이 해요. 회고에서 꼭 문제점만 찾지 않아도, 서로 간의 서운함을 해소하는 자리라면 충분해요.

출처: Jong Pil Won
이걸 애자일에선 체크인이라고 합니다(…)

코딩 교육 난립의 시대, 코딩교육 이야기

리: 이런 교육이 우아한형제들에게 어떤 의미가 있나요? 사회 공헌 활동인가요?


박재성: 일단 사회 공헌이 맞아요. 부사장님께 제안받았을 때 이 취지가 너무 좋았어요. 또 개인적으로는 한국의 개발 교육 문화를 바꾸어보고 싶어요. 대학이나 다른 교육도 새로운 접근 방식을 찾아야 할 때라고 생각해요.


리: 와우, 센데요…


박재성: 더불어 부사장님이 적극적으로 도와주셔서 괜찮은 친구들을 신입사원으로 채용하겠다, 나아가 앞으로 우아한형제들에서는 신입사원 채용을 우아한테크코스에서만 하겠다는 말씀도 주셨어요. 그러면 학생들에게 큰 동기부여가 되잖아요.


리: 요즘 코딩교육이 난립 상태잖아요. 심지어 입시에도 코딩이 들어간다는데 어떻게 보세요?


박재성: 코딩 교육만이 아니라 우리나라의 모든 교육이 똑같다고 생각해요. 학생들이 지식을 배우고 새로운 걸 알아가는 즐거움을 느끼게 해야 하는데, 지식을 주입하고 남과 경쟁하는 데 초점을 맞추는 것 같아요. 입시에 코딩, 넣을 수 있다고 봅니다. 다만 점수를 위한 학습으로 코딩 실력이야 좀 늘겠지만, 이게 뭘 위한 일인지 알고 흥미를 갖게 할 수 있을까요?

출처: 매일경제

리: 일단 흥미와 필요가 중요하다…


박재성: 네. 그동안 코딩 교육이 지식을 습득하는 게 목표였다면, 전 무엇인가를 만들며 깨우치는 재미를 느끼게 하고 싶어요. 만들어가며 문제를 겪고, 이걸 스스로 해결하며 호기심을 키우는… 이런 학습이 얼마나 큰 즐거움인지, 그런 경험을 주는 게 큰 목표입니다.


리: 소프트웨어를 공부하는 분들께 팁을 주고 싶은 게 있다면?


박재성: 전 학생들에게 반복적으로 정답을 찾으려 하지 말라고 해요.


리: 가르치는 사람이 정답을 찾지 말라고 하면 어떻게 합니까?


박재성: 학교 시험 문제에는 정답이 있지만, 현실의 많은 문제는 정답이 없어요. 너무 정답을 찾으려고 하는 친구들이 성장이 더 느려요. 또 다른 답을 찾아 헤매는 걸 흔히들 삽질한다고 하는데, 삽질 많이 하는 친구들이 빠르게 성장하는 것 같아요. 또 저는 빠르게 성장하려면, 내가 모르는 걸 부끄러워하지 않는 용기가 필요하다고 생각해요. 협력하고 공유하며 같이 배워가는 거죠.

간지폭발 우아한테크코스 박재성 이사님

리: 마지막으로 하고 싶은 이야기가 있다면 아무거나 해주십시오.


박재성: 저는 제가 우아한형제들에 있어서가 아니라, 정말 우아한테크코스를 만든 게 좋은 선택이라고 생각해요. 이분들이 배민에 취업하든 다른 곳에 취업하든 더 좋은 개발자로 세상을 바꿔나갈 거니까요. 교육자 입장으로서 혹시라도 이 기사를 보는 다른 회사들이 있다면, 우리 회사처럼 교육에 좀 더 투자해줬으면 해요.


리: 개발자 몸값 금값인데, 사람 잘 키워서 채용할 생각 하면 그리 까먹는 장사도 아닌 것 같은데요.


박재성: 몇몇 회사에서 하려고는 하는데, 문제는 그걸 리딩 할 교육자가 없는 상태예요. 저는 경력 있는 개발자들이 교육자의 길을 좀 걸어줬으면 좋겠어요. 물론 그분들이 연봉 잘 받고 업계에서 인정받으니 나오기 쉽진 않겠죠. 하지만 개발 교육 시장은 제가 인정받을 정도로 무주공산입니다. 좋은 개발자분들이 더 좋은 개발자를 키우는 일을 해주셨으면 해요. 경제적인 여유도 만들고, 시간적 자유나 삶의 보람을 생각하면 정말 좋은 선택이라 생각해요.


리: 아니, 근데 일단 그분들이 회사를 나와도 교육자로 취업할 곳이 없(…)


박재성: 2021년 저희가 클래스 확장하면, 제가 무조건 우선적으로 모실 겁니다. 그 전이라도 언제든 같이 이야기를 나누고 싶은, 혹시라도 교육에 뜻이 있는 분들이라면 편히 연락 주시기 바랍니다.


※ 해당 기사는 우아한형제들의 후원으로 제작되었습니다.


이 콘텐츠에 대해 어떻게 생각하시나요?