인사이트
주니어 개발자가 회사에서 질문하며 성장하는 방법
2023년 05월 23일
코드아일랜드는 코드스테이츠 수료생이 졸업 후에도 커리어 성장을 할 수 있도록 돕는 IT 커리어 커뮤니티입니다. 이 글에는 코드아일랜드 월간 세미나 '그로잉데이'에서 수료생이 나눈 이야기를 담았습니다.
제2회 그로잉데이는 8명의 연사(스피커)가 본인의 커리어 경험, 스토리를 소규모 그룹으로 나뉘어 이야기하는 형식으로 진행되었습니다. 스피커 중 한 분이었던 남궁민님은 비전공자 출신으로 코드스테이츠 개발 부트캠프를 수료하고 현재 주니어 개발자로 일하고 있습니다.
이번 4월 <월간 계획된 우연>에서 남궁민님은 본인의 경험을 토대로 주니어 개발자에게 질문이 중요한 이유에 대해 말씀해 주셨어요. 개발자가 아니더라도, 동료에게 모르는 것을 물어보는 게 망설여지는 주니어분들이라면 남궁민님의 이야기가 분명 도움이 되실 거예요.
프론트엔드·백엔드 부트캠프 32기 수료생 남궁민님
안녕하세요, 저는 연극영화과를 전공하고 코드스테이츠 개발 부트캠프 수료 후 현재 포커스미디어코리아 주니어 개발자로 일하고 있는 남궁민이라고 합니다. 오늘은 주니어 개발자에게 질문이 중요한 이유에 대한 제 생각을 간단하게 말씀드린 후 해당 주제로 자유롭게 이야기 나눠보는 시간을 가지려고 합니다.
저는 ‘동료와 함께 성장하는 개발자’라고 저 자신을 소개하는데요. 제가 추구하는 목표를 담은 표현이라고 할 수 있어요. 올바른 의사소통, 협업 문화를 통해 동료들과 함께 건강하게 성장하는 것을 최우선으로 생각하려고 노력합니다.
저는 2022년 8월부터 주니어 개발자로 일하기 시작했는데요. 회사에서는 AWS 클라우드 서비스 활용 기술을 익히는 데에 집중하고 있고 Go 언어를 활용해서 개발하고 있습니다. 또한 계속해서 백엔드 개발자로서의 역량을 높이기 위해 Kotlin과 Spring 기술에도 관심을 기울이고 있습니다.
첫 회사에서는 백엔드 개발 인턴으로 입사하여 2개월 정도 일했고요. 이후에는 지금 재직 중인 포커스미디어코리아에 주니어 SDE(Software Development Engineer)로 입사하여 일하고 있습니다.
혹시 이 그래프를 아시나요? 더닝 크루거 효과(Dunning-Kruger Effect)를 설명하는 그래프로 한 번쯤 보셨을 것 같은데요. 더닝 크루거 효과란 능력이 부족한 사람이 자신의 능력을 과대평가하는 현상을 말하는 인지 편향 중 하나예요. 자신의 능력이 부족하기 때문에 실수를 알아차리지 못하거나 자신이 많은 지식을 알고 있다고 잘못 판단하는 거죠. 능력이 뛰어난 사람은 오히려 그 반대로 자신을 과소평가하고요. 저도 그래프와 같은 경험을 똑같이 해보았기 때문에 정말 공감이 많이 가는 그래프예요.
저는 비전공자 출신으로 개발자 취업을 준비하면서 국비 지원 학원에 다니기도 하고 코드스테이츠 개발 부트캠프 과정도 수료했습니다. 그 과정에서 부끄럽지만 “나 정도면 주니어 개발자로 취업할 수 있지 않나?”라는 자만심을 가졌던 적이 있어요. 자바 스프링(JAVA Spring)으로 서버 구축할 수 있고 rest API 이런 거 만들 수 있으니까 “이 정도면 주니어 취업은 할 수 있지 않나? 더 필요한 건 차차 공부 해나가면 되는 거 아닌가?” 그런 생각을 잠깐 했던 것 같아요. 그때가 딱 우매함의 봉우리였던 거죠.
그런데 첫 회사에 인턴으로 입사해서 “나는 정말 아무것도 모르는 우물 안 개구리였구나!”라는 걸 격하게 깨닫게 되었어요. 절망의 계곡에 떨어진 거죠. 제가 그때 모르고 있었던 것들을 한번 간단하게 정리 해봤어요.
IT 기업에서 많이 활용하는 애자일 개발 프로세스, 스크럼 절차가 제 첫 회사에도 있었는데요. 회사라는 걸 처음 경험하는 주니어 개발자 입장에서는 다소 어렵고 적용이 헷갈리는 부분이 있었어요.
그리고 도커, 쿠바네티스 또한 신입으로서 바로 적용하기에는 어려움이 있어서인지 저는 특히나 어려웠어요. 메시지 큐 서비스를 활용한 이벤트 기반 개발도 어려웠고요. 각 서버끼리 통신을 주고받는 기술, 이런 것도 쉽지 않았어요.
이렇게 본인이 어려워하는 기술은 회사마다 다를 수 있어요. 어떤 주니어 개발자는 본인이 부트캠프에서 배웠던 스펙과 완전히 똑같은 것을 회사 내에서 개발하고 있어서 너무 익숙하고 러닝 커브가 없다고 느낄 수도 있을 텐데요. 대부분의 회사에는 레거시 코드(Legacy Code)*라는 게 있어요. 그런 레거시 코드를 이해하기 위해서라도 주니어 개발자라면 질문을 잘하는 게 중요하다고 생각해요. 이렇게 제가 몰랐던 것들을 공유한 이유는 본인이 뭘 모르는 지 제대로 알아가기 위해서는 질문이 필요하다는 말씀을 드리고 싶었어요.
*레거시 코드(Legacy Code) : 다양한 정의가 있지만 개발 분야에서는 내가 아닌 다른 개발자가 남겨두고 떠나서 유산, 산물이 된 코드를 말한다. 코드 가독성이 떨어지거나 결합도가 높아 상속받은 사람이 작업을 이어가기 어렵다는 측면에서 부정적으로 쓰인다.
입사한 지 얼마 안 되는 주니어 개발자라면 당장 모르는 게 쏟아지기 때문에 질문이 반드시 필요해요. 하지만 질문을 어떻게 해야 하는지, 많은 주니어 분들이 꽤 어려워해요. 저 또한 그랬고요.
질문을 잘하기 위해서는 메타인지 능력이 필요해요. 메타인지란 내가 어떤 걸 알고 어떤 걸 모르는지를 본인이 명확하게 알고 있는 것인데요. 내가 어떤 것을 모를 때, 단순히 기술적인 개념을 모르는 것인지 어떤 배포 프로세스를 잘 모르는 것인지. 내가 정확하게 뭘 모르는지 아는 것이죠. 어떤 게 막혔을 때 내가 어디까지 실험해 봤고, 해보는 과정에서 어떤 게 잘 안됐고 해봐도 도저히 모르겠다 싶은 것들이 있는지. 이런 내용을 잘 알고 있는 게 메타인지 능력이라고 생각해요.
메타인지가 중요한 이유 중 하나는 내가 던지는 질문으로 인한 동료의 시간을 아껴줄 수 있다는 인데요. 질문이 필수 요소이긴 하지만 “이거 잘 모르겠는데 어떡해요?” 라고 옆 사람에게 질문하는 순간부터 사실 동료 개발자의 시간을 본인이 뺏고 있는 거잖아요. 그 분의 시간을 내가 흡수하고 있는 거죠. 그래서 질문할 때 어떻게 하면 동료의 시간을 아낄 수 있는지 고민하는 것이 필요해요.
따라서 모르는 게 생겼다고 무턱대고 시니어 개발자에게 바로 물어보는 것보다는 물어볼 내용을 스스로 먼저 차근차근 정리해 보세요. 그러면 “내가 어떤 걸 모르는구나!” 하는 걸 직접 깨닫게 돼요. 그 과정이 분명 주니어 개발자 본인의 성장에도 도움이 되거든요. 내가 무엇을 모르는지 찬찬히 정리하는 과정은 본인에게도 유의미한 시간이 될 수 있을 뿐 아니라 동료의 시간도 아껴줄 수 있어요.
제가 일하면서 느낀 또 다른 하나는, 주니어 개발자일수록 자신의 능력을 투명하게 드러내야 한다는 거에요. 자기가 얼만큼 할 수 있고 또 어디부터는 잘 모르겠고 이런 부분을 주변에 최대한 알리는 게 좋다고 생각해요.
“질문하는 게 부담스러워요.”
“내 밑천을 다 드러내는 것 같아서 부끄러워요.”
“그냥 혼자서 어떻게든 찾아보게 되는 것 같아요.”
이런 생각 하실 수도 있는데요. 본인의 능력치가 어디까지인지 알기 위해서 필요한 게 또 질문이죠. 내가 어디까지 모르고 있다는 사실을 알려줄 수 있으니까요. 하지만 그렇기 때문에 더욱 질문하는게 부담스러울 수 있죠. 이건 사실 제 경험에 기반한 이야기예요.
특히 처음 취업했을 때는 주변에 질문을 정말 못하겠더라고요. 그래도 이력서 통과하고 면접도 보고 해서 입사한건데 괜히 질문했다가 “기껏 뽑았더니 이런 것도 할 줄 모르네” 라고 생각할 수 있잖아요. 그래서 위축이 되더라고요. 아마 주니어 분들 중에 저와 비슷한 생각을 하시는 분들도 계실 거라고 생각해요.
저는 그래서 질문하는 게 부끄러웠고 혼자서 어떻게든 더 직접 찾아보려고 했던 것 같아요. 그런데 지나고보니, 내 능력치를 투명하게 공유하는 게 꼭 필요하고 중요하다는 생각이 들어요.
내 능력을 투명하게 공유하는 게 필요한 이유는 개발자에게 협업 능력 또한 중요하기 때문인데요. 자기소개에서도 말씀드린 것처럼 저는 협업을 최우선으로 생각하는 개발자가 되는 것을 지향하고 있어요. 일하면서 가장 중요한 것이 협업 능력, 커뮤니케이션 스킬이라고 생각하고 있고요.
누가 어떤 언어로 개발하고 있고 어떤 것을 잘 알고, 어떤 것을 잘 모르고 이런 컨텍스트가 함께 일하는 동료 간에 공유가 되고 있는 환경이 잘 갖춰줘야 협업 시너지가 잘 일어나더라고요. 그래서 부끄럽더라도 모르는 건 계속 질문해서 본인의 능력을 투명하게 공개할 수 있어야 한다고 생각하게 됐어요.
제가 다닌 첫 회사는 원격근무가 가능한 회사였어요. 그래서 개발자 분들이 재택근무를 하시고 일주일 중 하루만 출근하시는 경우가 많았어요. 저는 주니어다보니까 매일 출근했는데 사무실에는 아무도 없는 거예요. 그래서 어쩔 수 없이 슬랙으로 질문을 열심히 쓰게 됐는데 쉽지 않았어요.
직접 대면해서 티키타카를 좀 하다 보면 파악도 빠르게 되고 한 10분만 대화하다 보면 해결될 일인데 글로 쓰다보니까 30분이 넘게 머리가 하얘져지더라고요. 뭐라고 쓸지도 모르겠고. 내가 어디서 막혔고 어떤 부분이 문제이고 어떤 걸 잘 모르겠고 이런 것들을 정리하는 게 쉽지 않았어요.
처음에는 모르는 내용을 글로 풀어서 쓰는 게 너무 어려웠지만 그럼에도 글로 남기는 게 좋다고 생각하는 이유는 글로 쓰면서 제 생각이 정리되는 느낌이 들더라고요. 특히 질문을 받는 상대가 다른 개발 업무에 집중하고 있어서 제 질문을 늦게 확인하실 수 있으니까 타임 매너 측면에서도 모르는 내용을 글로 정리해보는 게 필요했어요. 생각 정리와 타이핑 시간이 처음엔 꽤 걸리겠지만 내가 어떤 것을 알고 있고, 어떤 것을 모르고 있는지 스스로 깨달을 수 있는 시간이 될 수 있을 거예요. 무턱대고 선배 개발자의 시간을 뺏는다는 느낌도 덜어지고요.
여기까지가 제가 준비한 내용입니다. 제가 일한 지 9개월이 넘어가는 시점이다보니, 준비를 하면서 너무 내 주관적인 생각이지 않을까? 너무 내가 정답인 것처럼 말하는 것은 아닐까? 걱정이 들기도 했는데요. 사람마다 상황이 다를 수 있으니 편하게 질문 주시면서 자유롭게 이야기해보면 좋겠습니다.
Q. 본인이 질문을 잘 못하고 있음을 인지하면서도 계속 똑같은 방식으로 질문하는 사람도 주변에 많이 있는데요. 민님은 어떻게 해서 질문을 먼저 정리해야겠다고 생각하신 건지 궁금해요. 어떤 트리거가 있었나요?
첫 회사에 채용전환형 인턴으로 들어갔다가 정규직 채용이 좌절되어 혼자 고민하는 시간을 가진 적이 있어요. 그때 우연히 보게 된 글이 “내가 모르는 것이 무엇인지 알 때는 별로 문제가 되지 않지만 모른다는 것을 모를 때는 문제가 된다”는 이야기였어요.
그래서 주니어 개발자로서 더 성장하기 위해서 내가 뭘 모르는지 정리해보려고 했고, 또 모르는 것을 더 알아가기 위해서는 질문이 많이 필요하다는 걸 느꼈던 것 같아요.
Q. 모르는 내용을 텍스트로 정리하기 위한 본인만의 스터디, 훈련 방법이 있나요?
저는 블로그에 나름대로 정리한 것들을 일부러 계속 노출했어요. 블로그 글을 작성할 때는 혼자 적고 끝나는 글이 아니라 다른 사람들에게 노출이 되는거니까 설명이 가능하게 써야해요. 자연스럽게 생각을 정리하는 연습이 돼요.
요즘은 컨퍼런스 후기나 도서 리뷰처럼 개인적인 이야기도 많이 쓰고 있어요. 이렇게 본인의 의견을 표현하는 걸 습관화하는 게 중요한 것 같아요.
특히 제가 다녔던 회사는 비대면 근무였기 때문에 배우기 위해서는 계속 질문을 텍스트 형태로 정리해야 했던 환경이었어요. 요새 원격 근무가 다시 축소된다는 말도 있긴 하지만 앞으로 원격 근무가 언제 또 활성화될지 모르니까 비대면 상황에서 내 의견을 어떻게 잘 전달할 수 있을지와 같은 고민은 계속 중요한 것 같아요.
Q. 저는 취업 준비생이어서 질문을 할 사수분이 없어요. 현직 개발자 분과 커피챗을 하면 질문과 답변이 여러번 오고가야 하는데 현업에 계신 분들이 제게 쓸 수 있는 시간이 한정적이니까 시간이 오버되더라고요. 그 분들이 답을 주셔도 저는 이해를 잘 못하고 이런 경험들이 계속 쌓이고 있어요. 제 기본기가 부족한 이유도 있겠지만 반복되니 답답해요.
저 또한 질문에 대한 답변이 왔는데 그 답변을 이해 못한 적이 꽤 있었던 것 같아요.
저도 신입으로 일하고 있다 보니까 그럴 때는 저는 텍스트 기반의 답변을 드리면 텍스트 기반의 답변이 오기 때문에 그거를 읽고 읽고 읽고 또 읽고 또 읽고 또 읽어 해보는 거죠. 이 부분이 뭔지 모르겠으면 직접 찾아보고, 또 이해하려고 집요하게 노력하는 것 같아요. 그래도 안 되면 다시 질문을 해야겠죠.
저도 비전공자로 시작해서 주니어 개발자로 일하다보니까 특히 네트워크 관련 질문이 들어오면 엄청 막막하거든요. 근데 지금 당장 모르겠더라도 모르는 분야가 있으면 책을 사거나 빌려 스터디해보면서 차근차근 내공을 쌓아가면 되는 거니까 너무 조급해하지 않으셔도 될 것 같아요.
발표 남궁민 포커스미디어코리아 SDE (프론트엔드·백엔드 부트캠프 32기 수료생)
편집 조주연 Content Manager
👩💻 개발자 커리어의 시작,
코드스테이츠 부트캠프가 더 궁금하다면?
목록 보기
추천글