개발자에게 학습과 성장은 소프트웨어를 만드는 것과 같습니다. 꾸준히 버전을 업그레이드하면서 생명력을 주어야 하죠. 김정 님은 10월 COMMIT에서 성장으로 내딛는 자신만의 원칙을 소개했는데요. 8가지 원칙을 세우기까지의 이야기를 조금 더 들어봤습니다.
Q. SW 교육 전문 기업 코드스쿼드를 창업한 지 6년 정도 되셨죠. 교육 분야에 관심이 많으셨나요?
본체는 개발자였죠. NHN NEXT에서 교육하다 보니 현실적으로 필요한 개발 기술과 국내 교육 시스템 간에 괴리가 있다는 걸 알게 됐습니다. 교육은 꼭 필요한 분야인데 뜻이 있는 분도 흔하지 않았어요. 개발을 잘한다고 교육을 잘하는 건 아니니까요.
아쉬움이 남아서 창업했습니다. 가르쳤던 경험이 사라지는 게 아깝기도 했고요. NHN NEXT에서 교육 실험, 방법, 프로젝트 방식을 공부한 게 많은 도움이 됐습니다. 본격적으로 창업하면서 교육 공학, 교수법 등을 부지런히 공부했죠. 발성이나 태도를 피드백 받기도 했고요.
코드스쿼드는 직무 교육을 부트캠프 형식으로 하고 있습니다. 그렇게 교육받은 친구들이 현직에서 활동하고 있고요. 교육이 끝난 후에도 커뮤니티를 만들어 건강한 에너지를 주고받으면서 성장할 수 있도록 돕고 있습니다.
Q. CEO가 되고 나서 달라진 점이 있으세요?
개발할 시간이 없죠. 그래서 취미로라도 앱을 열심히 만들려고 해요.
정체성이 혼란스러웠던 적도 있습니다. 제가 개발자인지, 회사원인지, 교육자인지 모르겠더라고요. 고민 끝에 평생 개발자라고 결론 내렸습니다. 회사 일과 교육 일 모두 문제 파악, 요구 사항 해석, 기획, 설계가 필요합니다. 개발 과정과 별 차이가 없죠. 요즘은 ‘소프트웨어 교육을 개발하는 개발자’라고 부르고 있어요.
Q. ‘시인을 꿈꾸는 디지털 엔지니어’라고 소개하시던데 시를 좋아하세요?
좋아합니다. 블로그를 2개 운영하고 있는데요. 브런치에는 시와 교육 관련 이야기를 쓰고, 미디엄은 기술 블로그로 활용하고 있습니다. 시는 자주 쓰려고 하는데 요새는 바빠서 못하고 있어요.
Q. 개발은 언제 처음 시작하셨어요?
초등학교 4학년 때였는데요. 80년대 후반쯤 컴퓨터 학원 붐이 일었습니다. 오락실에 갈 거면 컴퓨터 학원에 가라는 말이 비일비재했죠. 저도 그때 시작했습니다.
컴퓨터로 무언가를 만드는 게 재밌었어요. 혼자 베이직(BASIC)으로 사전 프로그램을 만들기도 했습니다. 열심히 한 건 아니고, 집에서 취미로 코딩하는 정도였지만요.
대학에서는 전자공학을 전공했습니다. 컴퓨터 사이언스와는 조금 빗겨있는 학과죠. 그럼에도 프로그래밍을 할 줄 알다 보니 써먹을 수 있는 데가 많았습니다. 신입생 때부터 대학원에 다니면서 선배들의 프로젝트를 돕기도 했죠. 전공자가 아닌데도 프로그래밍할 기회가 많았어요.
Q. 백엔드와 통신 모듈에서 모바일 개발로 전환하셨죠. 특별한 계기가 있었나요?
사실 애플 컴퓨터에 대한 로망이 있었습니다. 중학교 때 잡지 부록으로 스티브 잡스 브로마이드를 받은 적이 있는데, 아이돌 브로마이드처럼 방에 붙여놨었어요.
백엔드 쪽 일을 하면서 취미로 맥을 쓰던 시기에 아이폰이 출시됐습니다. 출시 당시에는 애플 개발자 커뮤니티가 없었어요. 저는 10년 정도 웹 개발자 커뮤니티에서 활동하다 보니 학습 속도가 빨랐습니다. 역으로 웹 개발자인 제가 iOS 앱 개발자를 교육하는 일이 잦았어요. 자연스럽게 아예 이 분야를 계속해도 재밌겠다는 생각이 들었습니다. 많은 분이 모바일 개발로 전향하는 시기이기도 했고요.
Q. iOS의 매력은 무엇인가요?
처음에는 마이너한 플랫폼이 갖는 재미가 있었어요. 개발자들한테는 남들이 안 하는 걸 하는 게 ‘긱’해보이거든요. 지금은 많은 개발자가 모여 있어 어느 정도 영향력을 갖고 있는 분야이기도 하고, 매력적인 마니아들이 많아서 좋아요. 작은 화면에 원하는 걸 만들 수 있는 플랫폼이라는 점도 매력적인 것 같습니다.
모든 iOS 앱 개발자들의 로망은 취미 개발로 앱을 출시해 돈을 버는 건데요. 다들 1년에 10만 원씩 내는 개인 개발자 계정을 갖고 있거든요. 보통 돈은 못 벌고 회비만 낸다고 이야기하죠.
팬데믹이 한창일 때 첫째 딸이 한글 타자를 연습하고 싶은데, 맥에서는 마땅히 연습할 만한 앱이 없더라고요. 그래서 직접 만들었습니다. 매주 조금씩 만들어서 3달 만에 출시했죠. 덕분에 매년 내는 회비는 수익으로 돌려받았어요. 소중한 사람에게 앱을 만들어줄 수 있는 것도 장점이죠.
Q. 주니어 시절의 김정 님도 궁금합니다.
저는 항상 신기술 개발팀이나 새로운 제품을 만드는 팀에 속해 있었어요. 늘 새로운 걸 만들어야 하는 게 스트레스였지만, 재미있었습니다. 그러다 보니 자만심이 생기기도 했어요. 10년 동안 한 회사에서 일하면서 나름 잘한다고 생각했는데, 커뮤니티 활동을 하다 보니 우물 안 개구리였더라고요.
Q. CEO로서 많은 개발자를 만나실 텐데 같이 일하고 싶은 동료나 주니어는 어떤 유형인가요?
내 이야기를 할 줄 아는 사람이요. 교육하면서도 늘 네 생각을 이야기하고, 네 기준에서 왜 그런 선택을 했는지 말해달라고 합니다. 의견을 얘기해주어야 조언하거나, 설득할 수 있잖아요.
다만 취향과 의견은 구분해야 한다고 생각합니다. 코드를 짜거나, 설계할 때 취향으로 싸우지 말고 의견을 제시하라고 해요. 의견을 이야기할 때는 근거가 필요하고요. 그걸 받아들이는 태도도 중요합니다. 태도도 실력이니까요.
Q. 취향과 의견은 어떻게 구별할 수 있을까요?
이유를 설명할 수 없으면 취향인 경우가 많아요. 좋고 나쁜 이유를 제시할 수 있어야 의견이 될 수 있습니다.
Q. 10월 COMMIT 세션 주제가 ‘메이저 버전을 업그레이드하는 나의 마이너 원칙들’이었죠.
아이디어를 떠올린 건 3년 전인데요. 그때도 교육을 하고 있었는데, 주니어 친구들의 시야가 너무 좁아서 안타까웠어요. 눈 앞에 주어진 것만 해결하려고 노력하니 시행착오를 반복하는 경우가 많았습니다. 이 부분을 짚어주고 싶었어요.
Q. 시야를 넓힐 수 있는 방법이 있을까요?
서비스를 다 이해하고 개발하는 분은 많지 않을 거예요. 서비스는 점점 복잡해지는데, 맡은 분야는 한정적이거든요. 개발자도 비즈니스를 이해해야 자신이 개발하는 게 왜 필요한지 알게 됩니다. 시야를 넓혀서 흐름을 이해하지 않으면 이걸 왜 만들어야 하냐며 투덜거릴 수 밖에 없어요.
저도 시야가 무척 좁았습니다. 제가 담당한 기술이나 기능 외에 큰 그림은 못봤어요. 서비스 전체를 보는 시야나 사용자 혹은 데이터의 흐름은 주니어에서 시니어로 넘어가면 조금씩 보이는 것 같습니다.
내가 만드는 시스템의 큰 그림을 이해하려고 노력해 보세요. 구석구석 다 알 필요는 없지만, 내가 어떤 시스템의 일부를 만들고 있고, 그게 어떤 데이터, 사용자, 비즈니스의 흐름을 타고 있는지 아는 건 중요합니다.
Q. 끊임없이 메이저 버전을 업그레이드할 수 있었던 원동력은 무엇인가요?
처음에는 막연한 동경에서 출발했죠. 스티브 잡스는 잘 모르지만 한번 만나보고 싶은 마음이 원동력이 됐어요. 스티브 잡스를 만날 수 있는 버전이 되니 할 수 있는 게 많아졌어요. 이 경험을 그냥 흘려보내기 아쉬웠죠. 선배들이 성공하고 실패한 경험이 전달되지 않는다면 누군가는 맨 처음부터 다시 해야 하잖아요. 일종의 사명도 원동력이 된 것 같습니다.
Q. 주니어 개발자에게 해주고 싶은 말이 있다면 부탁드립니다.
하고 싶은 걸 하세요. 관심 분야가 너무 막연하다면 구체화해보시고요. 내가 원하는 걸 해야 에너지도 생기고, 동기 부여가 됩니다.
저는 늘 하고 싶은 걸 쫓으려고 했습니다. 그게 지금은 소프트웨어 교육이고요. 많이 시도하고 공유하다 보면 내 경험을 알릴 기회도 만들 수 있습니다. 내 경험으로 누군가의 시야를 넓혀주는 건 생각보다 멋진 일이에요.
Edit Sunny Design Lil