백엔드 개발자 인터뷰
개발자 취준생에게 던지는 질문 "맨땅에 헤딩할 수 있으신가요?"
백엔드 스쿨이 만난 사람들 #6
우아한형제들 백엔드 개발자 박지우님
9분 분량
<백엔드 스쿨이 만난 사람들> 인터뷰는 현직에 계신 개발자의 이야기를 통해 개발자 취준생에게 인사이트를 드리고자 만든 콘텐츠입니다.
성장하는 개발자, 더 좋은 개발자가 되기 위한 개발자의 이야기를 확인해 보세요.
01 국어국문학도에서 우아한형제들 개발자가 되기까지
안녕하세요 지우님. 백만사 인터뷰 구독자를 위해 간단한 자기소개 부탁드려요.
안녕하세요, 현재 우아한형제들 B마트 서비스개발팀에서 일하는 박지우입니다. 연세대학교 국어국문학과 주전공이고 생활디자인학과 및 컴퓨터과학과 복수전공 진행 중입니다. 졸업 전 입사해서 현재 학업 병행 중이에요. 졸업하고 싶네요.
3전공이라니 대단하시네요. 컴퓨터과학과 복전을 하시게 된 계기가 있으신가요?
처음에는 게임 개발 쪽에 관심이 있어서 수업을 듣고 있었어요. 그중에서도 프론트엔드쪽인 게임 디자인에 관심이 있어서 게임 개발 프로젝트에도 참여하게 됐죠. 하지만 ‘서버의 베이스 로직들을 어떻게 해야 더 효율적으로 잘 처리할 수 있을지’ 같은 고민을 하는 백엔드 쪽이 더 잘 맞더라고요. 그래서 백엔드 쪽으로 커리어를 결정하면서 복수 전공을 하게 됐어요.
문과에서 이공계열 복전이라 쉽지 않았을 것 같아요. 첫 개발 프로젝트는 어떠셨어요?
처음엔 나만의 게임을 많이 만들어보고 싶어서 학내 인디 게임 개발 프로젝트인 ‘카페 포레스트’ 에 아트 담당으로 참여했어요. 게임 제작 과정에서 프로그래밍에도 자연스럽게 관심을 가지게 됐죠. 원하는 프로그램을 뚝딱뚝딱 만들 수 있다는 게 매력적이었고, 코딩에 몰입하며 즐거움을 느껴 나아가다가 지금 이 자리까지 오게 된 것 같습니다.
지우님의 프로필에서 우아한테크코스를 확인했는데 그 과정은 어떠셨는지 궁금해요!
먼저, 저는 2022년도 4기 우아한테크코스 과정에 참여했어요. 코스 진행 동안 기술 관련 지식들을 떠먹여 주기보단, 미션 수행과 피드백을 통한 자기주도학습이 이뤄졌어요. 같은 기수 교육생들과 토론하고 페어 프로그래밍을 진행하며 집단지성의 힘을 자주 느꼈습니다. 프로그래머로의 과정 중 가장 크게 기술적, 인격적으로 성장한 시간이었습니다.
우아한형제들 지원에 우아한테크코스 영향이 컸을까요?
네. 개발자로서 관심을 갖기 전부터도 알고 있던 코스였죠. 대외활동을 하던 중에 배달의민족에서 비전공자에게 다양한 기회를 준다는 좋은 목적으로 우아한테크코스 과정을 만들고 있다 들었어요. 그래서 기업에 대한 이미지가 좋았죠. 이외에도 제가 배달의민족, 이마트를 많이 써왔던 것도 있고 관심 있는 도메인이기도 해서 고민 끝에 우아한형제들에 입사하게 됐어요.
02 우아한형제들 개발자는 어떻게 일할까?
지우님은 우아한형제들에서 주로 무슨 업무를 하시나요?
우아한형제들 B마트서비스개발팀에서 백엔드 서버 개발자로 일하고 있어요. 참고로 B마트는 배달의민족 장보기 즉시배달 서비스입니다. 안에서는 고객분들이 직접적으로 사용하는 앱과 웹 서비스 개발을 진행하는데요. B마트 내 상품, 리뷰 등 다양한 도메인의 API 개발 및 성능 개선 업무를 하고 있습니다. 기존에도 B마트 헤비 유저였던 만큼, 직접 사용하는 서비스를 개선한다는 마음으로 즐겁게 다니고 있습니다. 업무적으로도 외적으로도 B마트와 의존도가 높네요.
백엔드 서버 개발자의 하루 일과, 공개해 주실 수 있나요?
보통 9시에 출근을 하는 것 같아요. 그리고 업무를 시작하기 전 투 두 메이트라는 앱에 할 일을 기록해요. 작업을 하다가 한 10시 반쯤이 되면 데일리 미팅에서 팀원들이랑 ‘내가 오늘 이런 일을 할 예정이고, 이런 고충이 있다’는 걸 공유해요. 회의가 끝나면 11시가 되는데, 잠깐 작업을 하다 보면 점심시간이 돼요. 11시 반부터 점심을 먹고 푹 쉬다가 12시 반쯤 되면 다시 노트북 앞에 와서 본격적으로 오늘 할 일을 시작하죠. 그렇게 열심히 코딩하다 보면 2시가 돼서 미팅이나 페어 프로그래밍 작업을 해요. 또, 4시 반쯤부터는 코드 리뷰 시간을 가져요. 그러다가 5시가 되면 퇴근을 하거나 필요한 경우에 더 추가적으로 근무를 합니다.
소통이 활발하게 이루어지는 회사 같아요. 지우님의 책상은 어떤지 살짝 엿볼 수 있을까요?
기존에 B마트 헤비유저였다고 하셨는데, 그럼 사용자의 입장에서 제공자의 입장이 되면서 달라진 게 있을까요?
새로 알게 된 기능이 많아졌어요. 기존에 몰랐던 기능들 개발도 진행하고, 새로운 기능이 생겼다는 메일들이 오거든요. 예를 들어 최근에는 특정 메뉴에 대해서 사람들이 어떤 평가를 남겼는지 알 수 있는 메뉴 리뷰 기능이 생겼어요. 이외에도 제가 작업한 기능들이 실제로 적용되는 걸 보면서 뿌듯함을 느끼는 것 같아요. 서비스를 이해하면서 이용할 수 있다는 게 장점이라고 할 수 있죠.
개발을 하면서 자주 발생하는 오류나 에러에는 어떻게 대처하시나요?
업무 중 겪게 되는 다양한 오류들이 있지만, 대부분은 API 개발이나 리팩토링 시 예외 케이스에 대한 검증이 빠져 생기는 일들이 많더라고요. 대부분의 문제는 테스트 코드와 QA, 베타 서버의 도움으로 발견해 해결해요. 깃랩에 MR을 올리면 팀원 분들이 꼼꼼히 코드 리뷰를 해주시는데, 서로가 어떤 작업을 하고 있는지 확인도 할 수 있고 배우는 점도 많아요. 또, 2명의 approve를 받아야 MR을 병합할 수 있는 룰이 있는데 에러 발견에 큰 도움이 되고 있어요. 아무래도 입사한 지 1년도 안 된 주니어라 제가 미처 생각하지 못한 에러를 팀원분들끼리 잘 발견해 주세요. 그렇게 여러 사람의 피드백을 받았다는 점에서 훨씬 더 마음도 편안해지고, 버그 예방하는데도 좋은 제도인 것 같아요.
다른 현직자분들도 코드 리뷰가 굉장히 중요하다고 말씀을 하시더라고요. 이외에도 다른 장점이 있을까요?
주니어가 성장하기 좋은 회사인 것 같아요. 몇 년 간의 서비스 운영과 많은 분들의 열정으로 쌓인 기술적, 문화적 토대 위에서 일할 수 있었어요. 또 페어 프로그래밍, 코드 리뷰와 같은 개발 문화가 정착되어 있고 배포, 모니터링 구축이 잘 되어있어 체계적인 업무 수행이 가능해요. 그러면서도 매뉴얼에 얽매이지 않는 유연한 업무 방식으로 진행되고, 저와 같은 주니어도 열의만 있다면 많은 기회를 얻을 수 있어요.
페어 프로그래밍은 뭔가요?
한 코드에서 두 사람의 프로그래머가 작업하는 프로그래밍 방식이에요. 실제 코드를 작성하는 드라이버랑 전략을 짜서 지시를 내리는 역할의 네비게이터 역할로 나누어져요. 이론적으로는 10-20분 간격으로 번갈아가면서 역할을 체인지 해요. 확실히 혼자 작업했을 때는 못 봤던 버그를 발견하기도 하고, 집중력도 올라가요. 이런 케어 프로그래밍을 항상 진행하는 건 아니고, 중요한 몇 가지 기능을 진행할 때 진행해서 버그가 나지 않도록 방지해요.
역시 괜히 네카라쿠배가 아니군요. 사내 프로그램이나 분위기는 어떤가요?
사내에 다양한 개발자 지원 프로그램이 존재해요. 저는 매달 진행되는 우아한 테크 세미나를 통해 다양한 연사의 강연을 듣고 있고요. 서버개발그룹 밋업 등 다양한 방식으로 팀 간 경계를 넘어 서로의 기술을 공유하기도 해요. 이외에도 자유로운 조직 문화와 따뜻하고 열정 있는 구성원들이 장점인 것 같아요. 직급과 위계에 구애받지 않고 자유롭게 의견을 펼치고 편하게 대화를 나누는 분위기거든요. 성원 간 협업 문화가 잘 자리 잡았고, 회사 내 의사소통이 투명하게 이뤄지고 있어요. 덕분에 안에서 뛰어난 개발자분들의 인사이트를 배우고 또 나눌 기회가 많습니다.
다른 팀들끼리 기술을 공유한다고요? 자세히 말씀해 주실 수 있나요?
사실상 서버개발그룹 밋업은 우아한형제들 안에 있는 모든 서버 개발자들이 다 같이 모여서 특별 안건에 대해서 공유를 하는 자리라고 볼 수 있어요. 보통 2주에 한 번 진행되는 것 같네요. 검색 관련된 팀이라거나, 리뷰 관련된 팀이라거나 정말 다양한 팀들이 모여요. DB와 관련된 굉장히 중요한 사항을 공유해 주시기도 하고요. 이렇게 정말 많은 공유들이 이루어지고 있는지라 배우는 게 많아요. 혹시나 팀들 간 발생할 수 있는 기술 격차가 해소되는 것 같고요.
03 개발자 취준생에게
확실히 개발자로 일한다는 것은 배움의 연속인 것 같아요.
최근 관심을 가지고 계신 개발 기술 스택 혹은 언어가 있을까요?
아직 입사 후 1년이 채 안 되었기 때문에 팀 내에서 사용하는 기술에 대한 관심이 가장 커요. 요새 여가 시간에 ‘이펙티브 자바’ 사내 스터디를 하며 당연하다고 여겨왔던 여러 문법과 기능들에 대해 다시 한번 짚고 넘어가며 많이 배우고 있어요. 이외에도 Spring, JPA, MySQL, SQS, Batch 등 업무 중 사용하게 되는 다양한 기술 스택에 대해 관심을 갖고 있습니다.
기본기를 다잡는 게 중요하군요.
그러면 백엔드 개발자가 되기 위해서는 가장 먼저 어떤 것을 공부하면 좋을까요?
저처럼 처음에 비전공자로서 프로그래밍에 관심이 막 생기신 분들이라면 유튜브 무료 파이썬 강의로 입문하는 것을 추천드릴게요. 개인적으로 첫 입문 시기에 ‘김왼손의 왼손코딩'이라는 채널의 도움을 많이 받았어요. 만약 이미 프로그래밍에 입문했고 전공수업을 들으신 분들이라면, 자바-스프링 / NextJs의 투 트랙 중 원하시는 방향을 선택해 기초 강의를 듣고, 이를 바탕으로 프로젝트를 만들며 실무 경험을 쌓는 것을 추천드립니다. 특히 유저가 있는 실제 프로젝트 런칭 경험이 있으면 좋아요. 운영해나가다 보면 단순 개발을 위한 개발을 하던 때에는 알 수 없는 여러 경험들을 할 수 있더라고요. 직접 사용자 피드백을 받고 신기능을 만들거나 트래픽에 따른 문제들을 해결해나가면서 얻을 수 있는 즐거움이 있습니다.
비교적 최근에 입사하신 지우님이 보시기에 현재 개발자 취업 시장은 어떤 것 같나요?
필요한 역량은 무엇이 있을까요?
현재 개발자 취업 시장은 겨울이라고 생각해요. 제가 취업했던 22년 말을 기점으로 점점 신입 채용공고나 티오가 줄고 있다는 이야기들을 듣고 있거든요. 그럴수록 필요한 역량은 신입/경력의 프레임을 넘어, 입사 후 바로 팀 내에 기여하는 구성원이 되는 것이라 생각해요. 모든 기술들을 이미 다 알고 습득한 사람에게도 새로운 과제가 찾아와요. 그럴 때 구글링하고, 설정값 확인하고, 도메인 파악하고 등 맨땅에 헤딩할 수 있는 능력을 보여주는거죠.
맨땅에 헤딩할 수 있는 능력이요?
신규 입사 후 6개월간 느꼈던 점은 기술적 이해, 소프트스킬뿐 아니라, 메타인지 능력이 필요하다는 것이에요. 맡게 된 일에서 어떤 점이 이해가 가지 않는지 스스로를 파악하고, 어떻게 해당 의문들을 효율적으로 해소할 수 있을지 알아야 해요. 어떤 의문은 구글링을 통해 쉽게 해결이 가능하지만 팀원들의 도움이 필요한 경우도 있고요. 저도 아직 부족한 부분이라 부끄럽네요.
만약 지우님도 다시 취준생으로 돌아간다면 맨땅에 헤딩(?) 능력을 기르실 건가요?
네. 저 또한 다시 개발자 취업 준비를 한다면 가장 집중적으로 참여했던 프로젝트에 대한 문제 해결 경험에 시간을 쓸 것 같아요. 우선 리서치를 통해 가고 싶은 회사에서 자주 사용되는 기술의 유의점을 공부하고, 프로젝트 내에서 공부한 내용들을 검증하고, 이를 꼼꼼히 문서화해 블로그 등으로 공유할 것 같아요. 누구나 할 수 있는 경험이 아닌, 나만이 발견해낸 소중한 인사이트가 있다면 면접장에서도 좀 더 당당해질 수 있어요. 입사 후에도 전혀 모르던 미개척지가 있어도 겁먹지 않고 차근차근 업무를 수행해나갈 능력이 길러질 것 같아요.
중요한 취준 꿀팁이네요. 취업 비결도 알려주실 수 있을까요?
‘거창하게 비결이라고까지 할 것은 없지만 당시 준비하며 가장 좋았던 전략은 ‘많이 지원하고 많은 면접 보기’ 였다고 생각해요. 저는 입사 전 200여 곳에 서류를 넣고 40여 곳에서 면접을 봤는데요. 면접장에서 나오는 질문은 정해져 있었어요. 예를 들자면 자기소개가 있는데, 자기소개를 들은 후 면접관이 어떤 추가 질문을 하는지, 어떤 점을 마음에 들어 하고 부담스러워하는지 확인할 수 있었어요. 이후 피드백을 통해 자기소개를 계속 수정해 나가며, 면접을 보면 볼수록 좋은 출발을 할 수 있었어요. 또한 이력서/자기소개서 기술 항목에 대한 회사의 기대와 우려를 확인할 수 있고, 회사들이 현재 주니어/신입에게 요구하는 역량을 파악할 수 있었어요. ‘이외에도 면접/ CS 스터디 등에 참여하며 취업 시 필요한 여러 역량(CS 지식, 알고리즘 지식, 실무역량, 기업 이해도, 소프트스킬 등)을 키웠던 것도 도움 되었던 것 같아요.
반대로 취업 준비에서는 중요하지 않았지만, 실무에서는 중요했던 부분이 있나요?
기술적으로 다른 지점들이 있는 것 같긴 해요. 예를 들어 AWS 서비스가 있으면 취업 준비할 때는 어떻게 작동하는지, 어떻게 사용하는지 정도만 파악을 했었어요. 하지만 그 서비스 안에서 발생하는 굉장히 예외적인 상황이 존재해요. 갑자기 아마존에서 서버가 다운이 됐다고 알람이 오는 케이스가 있을 수도 있죠. 그리고 팀 내에서 따로 툴을 만들어놨는데 그걸 모르고 기존에 있는 툴을 적용하면 문제가 되기도 하고요. 그런 사내 툴이 굉장히 많고, 그만큼 새로 배우게 되는 것도 많은 것 같아요,
같은 프랜차이즈더라도 레시피가 조금씩 다른 것처럼 말이죠.
그럼 동종업계로 이직 또는 취업하기 위해서 어떤 점에 관심이 있으면 좋을까요?
‘경험에 대한 공유’에 관심이 많으면 좋을 것 같아요. 일하다 보면 제가 막혔던 부분들을 다른 팀원들도 동일한 이유로 고민하던 경우를 종종 보게 돼요. 반대의 경우도 많았고요. 트러블슈팅 케이스들을 공유 받는 것은 귀중한 시간이에요. 유한한 시간 속에서 혼자서는 알지 못했을 다양한 일들을 간접경험하며 인식의 지평을 넓힐 수 있기 때문이죠. 신뢰 자산이 높은 조직이 커뮤니케이션 효율도 생산성도 높다고 생각해요.
마치며,
백엔드 개발자로서, 백엔드 개발자를 한 마디로 표현하자면?
‘매번 새로운 문제를 해결하는 사람’이라고 생각해요. 백엔드 개발자는 시스템의 안정성, 데이터 처리, 서버 관리와 같은 다양한 분야의 수많은 문제와 도전에 직면하게 돼요. 한 문제를 해결한 후에는 동일한 문제를 해결하기보단 새로운 과제에 직면하게 됩니다. 만일 동일한 문제를 반복적으로 해결하고 있다면 이는 자동화를 고민해 볼 시점이겠지요?
지우님은 어떤 개발자가 되고 싶으신가요?
저는 문과생 출신 비전공자라 처음부터 개발에 대한 지식들을 쉽게 접할 수 있는 환경이 아니었어요. 아직 신입 개발자라 모르는 부분도 많고, 공부할 부분도 많지만 제가 갖고 있는 지식들을 다른 사람들에게 공유해 줄 수 있는 개발자가 되고 싶어요. 그게 팀 내일 수도 있고, 회사 안일수도 있고, 회사 밖이 될 수도 있겠죠. 뭐든 제가 배운 지식들을 통해 다른 사람들이 프로덕트의 큰 성장을 이뤄낼 수 있다면 그게 세상에 기여하는 일이 아닐까요? 그런 문제 해결 작업을 공유하는 인사이트를 만들고 싶어요.
멋진 사명이네요. 그러면 기술 블로그도 작성하고 계시나요?
네. 블로그도 많이 사용하지만 회사 내에서도 ‘위키’라는 게 있어요. 그 ‘위키피디아’ 할 때 ‘위키’인데요. 팀 내 여러 문제 해결 경험, 세팅 방법 등 다양한 히스토리가 위키에 기록되어 있어요. 그걸 보면서 정말 많이 배우죠. 저도 위키에 글을 올렸답니다. 회사 내에서도 위키에 기여를 가장 많이 하는 것 같아요.
마지막으로 지금도 열심히 개발 공부를 하고 있을 개발자 취준생들에게 한 마디 해주세요!
취업 한파로 고민 걱정이 많으실 거라고 생각해요. 현재 저는 취준생 시절 치열하게 했던 공부들이 하나씩 머릿속에서 꺼내지고 또 휘발되는 경험을 하고 있습니다. 그만큼 이 시기에 배운 여러 지식들이 실무에서 탄탄한 이론적 바탕이 된다고 생각해요. 특히, 지금의 노력이 헛되지 않다는 것을 기억하세요. 어려운 순간들을 극복하면, 그 뒤로는 여러분이 쌓아 올린 지식과 경험을 바탕으로 성장해 프로그래밍 생태계에 기여할 수 있을 거예요. 힘들 때마다 각자의 개발자로서의 목표를 떠올리며 지금의 시기를 꿋꿋이 버텨내시길 바랍니다.
제로베이스에서는 취업이라는 목표를 달성해 볼 여러분을 기다립니다.
제로베이스에서 시작해 보세요.
취업은 제로베이스
추천 컨텐츠