백엔드 개발자 인터뷰

취업에서 이직까지, 마켓컬리 개발자의 이야기를 듣다 [개발자 인터뷰]

백엔드 스쿨이 만난 사람들 #3
마켓컬리 백엔드 개발자 조서희님


<백엔드 스쿨이 만난 사람들> 인터뷰는 현직에 있는 개발자의 이야기를 통해 개발자 취준생에게 인사이트를 주고자 발행된 콘텐츠입니다.
성장하는 개발자, 더 좋은 개발자가 되기 위한 개발자의 이야기를 확인해 보세요. 요약된 콘텐츠는 인스타그램 @zb_back_end 에서 만날 수 있어요!

백엔드 개발자 인터뷰_조서희님

01 스타트업 개발자에서 마켓컬리 개발자가 되다.

안녕하세요 서희님. 백만사 인터뷰 구독자를 위해 간단한 자기소개 부탁드려요.


안녕하세요, 현재 마켓컬리에서 백엔드 개발자로 근무하고 있는 조서희입니다.

서희님은 어떻게 개발자의 꿈을 가지게 된 건지 궁금해요.


제가 게임을 워낙 좋아해서 자연스럽게 컴퓨터 공학이라는 전공에 관심을 가지게 된 것 같아요. 말하기 좀 부끄럽지만, ‘컴퓨터 전공을 하게 되면 게임도 많이 할 수 있지 않을까’하는 안일한 생각에서 전공을 선택하게 되었습니다. 다행스럽게도 지금 개발자가 적성에 맞아 만족하고 있습니다.

마켓컬리가 첫 회사는 아니라고 하셨는데, 어떻게 이직하게 된 건지 들어볼 수 있을까요?


컴퓨터 공학과를 졸업하고 이전에는 신재생 에너지 관련 스타트업에서 1년 반 정도 근무하다 마켓컬리로 이직하게 되었습니다. 이전 직장은 굉장히 가파르게 성장하고 있던 스타트업이었어요. 가파른 성장세에 비해 인원이 많이 충원되지 않다 보니 한 사람에게 다양한 업무를 맡기는 일이 발생했습니다. 저는 백엔드 개발자인데 프론트엔드 업무를 맡기고, 다른 인프라 작업도 할당하고 이렇게요. 그래서 저는 아직 주니어인데 이대로 여러 가지에 손대면 백엔드 개발자로서 성장이 더뎌지겠다 생각을 해서 이직을 결심하게 되었습니다.

지금 마켓컬리에서 하고 계신 업무에 대해 소개해 주실 수 있나요?


지금은 마켓컬리에서 검색 및 추천 도메인에서 Java 언어를 사용해 개발을 진행하고 있습니다. 저는 상품개발 1팀의 검색/추천 서비스 백엔드 개발을 담당하고 있습니다. 컬리의 검색은 저희 팀이 담당하고 있다고 보시면 됩니다. 또한 추천 모델을 API로 서빙하여 프론트에게 전달해 주는 역할도 겸임하고 있어요. 검색 쪽 도메인은 처음인데, 다행히 적성에 맞는 것 같아 즐겁게 다니고 있습니다.

신재생 에너지 스타트업에서 근무할 때와 마켓컬리의 개발은 조금 다를 것 같은데요.
현재 서희님은 달라진 산업 군에 따라 어떤 점에 더 신경을 쓰고 개발을 하시는지 궁금해요.


확실히 도메인마다 신경 써야 할 부분이 다른 것 같아요. 이전의 신재생 에너지 스타트업에서는 B2B 사업이었기 때문에, 성능과 안정성보다는 정확성에 더 신경을 썼습니다. 지금의 커머스 산업에서는 정확성도 물론 중요하지만 사용자에게 얼마나 안정성 있게 서비스를 제공하는지, 얼마나 신속하고 빠르게 페이지가 나타나는지가 더 중요한 것 같습니다.

그렇다면 서희님은 타 직군 개발자와 대화할 때 도메인이나 산업 군의 차이점이 있는 것을 느끼시나요?


네! 우선은 개발자들끼리 주로 사용하는 용어가 다릅니다. 이전의 신재생 에너지 회사에서는 ‘DR’, ‘태양광’ 등 전기 관련한 전문 용어들을 사용하면서 주로 대화를 했어요. 그런데 지금은 ‘인덱스’, ‘쿼리’, ‘인덱싱’, ‘스키마’ 등 검색과 관련한 용어들을 주로 사용하는 것 같아요.

백엔드 개발자 인터뷰_유용우 데스크테리어

02 마켓컬리 백엔드 개발자는 어떻게 일할까?

현재 마켓컬리에서의 이야기를 더 들어보고 싶은데요.
가장 먼저 마켓컬리의 장점을 꼽자면 어떤 것이 있나요?


회사의 브랜드 이미지가 좋다는 것?ㅎㅎ ‘마켓컬리’ 하면 비싸지만, 고급스러운 이미지로 많이 생각 하시더라고요. 그래서 주위 사람들에게 평판이 좋습니다. 그리고 사옥이 강남 중심에 있어서 이동이 편리해요. 무엇보다 컬리의 가장 큰 복지는 바로 동료죠. 실력도 출중하고 인성도 좋으신 분들께서 많이 계십니다!

서희님의 하루일과는 어떻게 되시나요?


우선 오전에 출근해서 다른 팀원분의 PR(Pull Request) 목록을 확인하고요. 제가 어제 체크하지 못한 PR이 있는지, 체크하지 못한 PR이 있다면 우선 그 PR 먼저 코드 리뷰를 해주고 또 제가 올린 PR이 있는 경우도 있어요. 그때 코드 리뷰를 받았다면 코드 리뷰 해준 사항들을 보고 반영할 건 반영하는 업무를 마친 후에 동료분들과 커피타임을 가져요. 그 후 오전 업무를 시작하고, 일주일에 세 번 정도는 점심시간 전 스크럽 회의를 진행해요. 그래서 스크럼에서 ‘내가 오늘 무슨 업무를 할 것이고, 또 오늘까지 무슨 업무를 마쳤다’ 이런 것들을 팀원에게 공유하는 자리가 있어요. 스크럼을 마치고 점심을 먹고 난 오후에는 작업을 하는 시간을 가지고 있어요.

최고의 동료들과의 커피타임! 너무 즐거울 것 같은데요ㅎㅎ
마켓컬리 개발자는 어떻게 일하는지, 서희님의 데스크테리어를 엿볼 수 있을까요?


백엔드 개발자 인터뷰_유용우 데스크테리어
백엔드 개발자 인터뷰_유용우 데스크테리어

제 책상과 작업 모습입니다! 역시 개발자는 듀얼 모니터가 필수 아닐까요? 평소에는 이어폰으로 노래를 들으면서 작업을 합니다. 스탠딩 데스크이기 때문에 조금 피곤하다 싶으면 높이를 조절해서 일어서서 작업을 하기도 해요. 물론 데스크와 노트북 왼쪽에 보이는 텀블러까지 모두 회사에서 제공해 주었습니다!

서희님의 이야기를 들어보니 마켓컬리 개발자가 되고 싶은 분들이 정말 많을 것 같아요.
서희님이 속해있는 곳의 개발 문화는 어떤지 들어볼 수 있을까요?


개발 문화라면 코드 리뷰가 빠질 수가 없죠. 저희는 반드시 팀원 반 이상의 승인이 있어야만 merge를 할 수가 있습니다. PR도 high, medium, low의 세 단계로 나누어 급한 PR 인지 아닌지 동료들에게 미리 알려주어 일의 우선순위를 정하게 합니다. 또한 내부적으로 테크 세션을 진행하여 새로운 기술이나 습득한 정보들을 공유하는 자리도 마련합니다.

코드 리뷰를 하면서 느낀 점이 있으시다면요?


장점은 확실히 다른 팀원들의 리뷰를 받다 보니 내 코드의 문제점도 알고 개선도 되고 '이런 방법이 있구나'하는 지식도 알아가는 장점도 있어요. 또 다른 팀원이 일단 한 번 더 체킹을 한다는 뜻이니까 만약 내 코드에 조금이라도 문제가 있어서 나중에 버그가 나지 않을지 그런 걱정을 조금 덜게 되는 경우도 있는 것 같아요. 확실히 혼자 체크하는 것보다 다른 사람도 같이 하는 게 조금 더 위험성이 낮춰지고 그리고 보이지 않았던 실수들이 있거든요. 확실히 그래서 제3자의 눈으로 봤을 때 더 잘 보이는 경우도 있고요. 그런 실수들도 찾을 수 있는 것 같아요.

버그를 말씀해 주셨는데, 개발을 하시면서 자주 발생하는 오류나 에러, 버그 등에 대처하는 방법은 무엇이 있나요?


저희는 모든 서비스를 모니터링하고 있기 때문에 에러가 발생하면 해당 에러가 어떤 곳에서 발생했는지, 원인이 무엇인지 등은 대부분 로그만 봐도 알 수 있어요. 가끔 메모리 부족 현상이 나타나기도 하는데 보통은 스케일 업이나 스케일 아웃 방법을 사용하여 성능을 향상시켜 해결합니다.

마켓컬리는 이벤트도 자주 진행하는데, 관련해서 서버가 터지는 등의 오류가 발생하지는 않는지 관련한 에피소드가 있을까요?


대규모 이벤트나 특별한 할인 행사가 있을 때는 특별히 주의를 기울입니다. 팀에서 내부적으로 모니터링 담당자를 지정하여 조금 더 신경을 쓰고 있어요. 저는 메밀 국수 라이브 방송 때 모니터링 담당자였는데, 그때 쇼호스트 분들의 먹방을 보면서 괜스레 배고파져서 국수를 3개나 시켰던 기억이 있네요ㅎㅎ

모니터링은 시간대를 가리지 않을 것 같은데, 개발자의 야근도 많을지 궁금해요.


아무래도 퇴근하고 나서 에러가 발생하거나 버그가 안 터진다는 보장은 없으니까 그럴 땐 항상 노트북을 가지고 다녀서 대비하고 있습니다. 야근은 사람들마다 다른 것 같은데 근무 시간에 조금 여유롭게 하시다가 근무 시간을 초과해서 야근을 하시는 분들도 있고, 저 같은 경우는 근무시간에 최대한 많이 해서 정시 퇴근을 하는 경향이 있어요.

'개발자'하면 재택근무도 빠질 수 없을 것 같아요! 재택근무 외에도 마켓컬리의 복지제도가 있다면 알려주세요!


팀마다 다르지만 저희는 재택근무를 주 2회 진행하고 있어요. 그리고 컬리의 복지 하면 바로 퍼플데이죠. 한 달에 한 번 자유롭게 쓸 수 있는 반차를 제공하고 있어요. 그 외에도 분기마다 제공하는 컬리 적립금, 교육비 목적으로 사용할 수 있는 법인카드, 누구나 이용할 수 있는 사내 도서관이 있습니다.

03 개발자 취준생에게

취준생에게 좋았던 적이 없던 취업 시장에서 개발자 취업도 마찬가지인데요.
만약 서희님이 개발자 취준생이라면 어느 부분에 공부 시간을 더 투자하실 건가요?


제가 지금 개발자 취업 준비를 한다면 실무적인 능력에 조금 더 집중을 할 것 같네요. 실제로 내가 만들고 싶었던 서비스, 혹은 학습하고 싶었던 언어/프레임워크를 사용하여 프로젝트의 개발에서 배포까지 모든 과정을 거쳐보는 겁니다. 물론 다른 사람들과 팀 프로젝트로 작업한다면 협업 능력을 강조할 수 있어 더 좋겠죠.

실무적인 능력에 투자하고픈 이유가 있을까요?


알고리즘 코딩 테스트 준비라든지 이론, CS 같은 것도 진짜 너무너무 중요하기는 한데 지금 개발자 취업이 사실상 재작년보다 굉장히 어려워졌어요. 재작년에는 개발자의 전성기라고 부를 수 있을 만큼 기업에서도 활발하게 뽑았고, 그만큼 또 다른 직군의 사람들이 많이 유입도 되었고 그랬는데 요즘은 경기가 안 좋아서 공고를 봐도 지금 당장 실무에 투입할 수 있는 사람만 뽑고 웬만하면 신입은 많이 안 뽑는 경향도 있는 것 같아요. 그래서 신입이라도 ‘나는 실무와 비슷한 프로젝트, 비슷하지는 않지만 세미 프로젝트를 많이 해봤고 실무와 유사한 경험이 있다는 것을 어필하면 취업에 더 유리해지지 않을까’하는 이유라고 말할 수 있을 것 같아요.

백엔드 개발자가 되기 위해 가장 먼저 어떤 것을 공부하면 좋을까요?


언어를 정하지 못했다면 Java, Spring Boot 학습을 우선적으로 권장해 드리고 싶습니다. 우리나라가 Java 공화국이라는 말도 있잖아요? 확실히 대부분의 회사에서 Java를 사용하다 보니 선택의 폭이 더 넓어지는 건 어쩔 수 없는 일인 것 같아요. 물론 다른 언어를 학습하지 말라는 뜻은 아닙니다. 실제로 저는 가고 싶었던 회사가 Node.js를 사용해서 지원조차 하지 못했던 적도 있었어요.

요약하자면 가고 싶은 회사의 기술 스택을 알아보고 관련 기술을 깊게 학습하는 것을 권해드립니다. JD를 참고하세요!

신입 개발자의 경우 JD를 활용하는 법을 잘 모를 수도 있을 것 같은데, 방법 좀 알려주세요!


보통 JD를 보면 필수 사항과 우대 사항이 나누어져 있는 경우가 많아요. 예를 들어가고 싶은 회사를 일단 3개를 정한 다음에 3개 회사 공고들을 요약해서 공통되어 있는 항목들을 우선적으로 학습하고, 필수 사항은 무조건 학습을 해요. 그리고 우대 사항 같은 건 2순위로 이제 조금 시간이 남거나 내가 조금 더 깊게 학습하는 걸 추천해 드립니다. 혹은 ‘이 회사는 내가 꼭 가고 싶다’고 하시면 우대 사항도 반드시 학습하시는 걸 추천드립니다!

서희님이 커리어를 쌓아 이직 또는 취업을 하신 비결이 있을까요?


우선은 CS 공부를 소홀히 하시지 말라고 말해드리고 싶습니다. 저는 학생 때 이론 공부를 너무 안 해서 나중에 취업할 때 좀 많이 고생을 했습니다. 이론 지식이 실무에서 쓰이지 않는 것 같지만, 사실 우리가 사용하는 언어, 프레임워크, 라이브러리 등 모든 것이 이론에 기반하여 작동하기에 매우 중요합니다. 또한 목표로 하고 있는 언어/프레임워크를 기반으로 한 사이드 프로젝트도 준비하면 금상첨화겠죠?

사실 취준생들에게는 CS 기초 지식들의 중요성이 간과되고, 프로젝트가 조금 더 급급하게 느껴질 것 같은데요.
CS 이론들이 실무에서 더 중요하게 쓰이는 예시를 들어볼 수 있을까요?


예를 들어 SpringBoot 프로젝트 실무를 회사에서 진행을 했을 때 사실 1,2년 차 때는 그렇게 못 느꼈던 것 같은데요. 사실 그때는 솔직히 말해서 ‘이론 지식 없이도 내가 이렇게 일을 잘할 수 있는데 굳이 이론 지식이 왜 필요하지?’라는 생각도 좀 많이 했었고요. 사실 이론 지식은 이직을 위해서 아니면 취업을 위해서 그럴 때만 바짝 공부를 하고 다 잊어버리는 그런 경우가 많았었어요.
그런데 올해 많이 느꼈던 게 프로젝트 진행을 하면서 메모리 누수가 발생하거나 아니면 메모리가 부족하다고 하면 원인이 조금 불명확할 때가 있어요. 대부분 인텔리제이에서 조금 원인을 좀 명확하게 해서 에러 로그를 발생해 주는데 그게 조금 불명확할 때라든지요. 구글에 쳐보겠지만 구글에 쳐도 방법이 안 나올 때는 그냥 이론 지식으로 접근을 할 수밖에 없어요. 그럴 때 이론 지식을 기반으로 해결 방법을 어떻게 해야 할 건지 짜야 되는데 만약 그런 이론 지식이 없다 보면 그냥 처음부터 이게 왜 문제인지도 모르겠고, 뭐가 문제 원인인지도 모르겠고 해결 방법은 더 모르겠고 이런 상황이 지속되다 보니까 CS 지식들이 많이 중요한 것 같아요.
결론적으로 말씀드리자면 1,2년 차 때는 별로 상관없을 수 있는데, 연차가 조금씩 쌓이다 보면 그때는 이제 스스로 느끼게 될 거예요. 그래서 미리 기초를 탄탄하게 다지는 것을 추천드려요.

혹시 서희님이 생각하시기에 신입 개발자가 가지고 있으면 좋을 경험이 있을까요?


사이드 프로젝트 경험이 아닐까요? 꼭 인턴이 아니더라도, 개발 동아리, 혹은 지인들끼리 (안되면 개인으로라도) 뜻을 모아서 작은 것이라도 A부터 Z까지 개발해 보는 겁니다. 프로젝트를 통해 실제 개발 과정을 경험하고, 문제 해결 능력과 협업 능력 또한 키울 수 있어요.

최근 서희님이 관심을 가지고 있는 개발 기술 스택 혹은 언어가 있을까요?


아직은 Java, Spring 관련 숙련도가 많이 부족하다고 생각하여 꾸준히 학습을 진행하고 있습니다. 그리고 이번에 검색 엔진을 Elasticsearch 기반으로 변경하였는데, 그래서 자연스럽게 Elasticsearch에도 관심을 가지게 되었어요. 기술 블로그에도 공식 문서를 꾸준히 번역하려고 하고 있습니다.

마치며,

백엔드 개발자로서, 백엔드 개발자를 한 마디로 표현하자면?


보이지 않는 곳에서 열심히 페달을 돌리는 사람들. 프론트엔드와 달리 직접적으로 사용자와 상호작용하지는 않지만 서비스의 핵심적인 비즈니스 로직을 다루는 역할을 하고 있습니다. 다른 서비스와의 상호 작용을 위한 API를 개발하기도 하고, 이를 통해 다른 시스템과의 데이터 교환도 진행합니다.

현직자의 입장에서 개발자를 꿈꾸는 분들에게 개발자를 추천하시나요?


적성에 맞는다면 추천해 드리고 싶습니다. 그럼 적성은 어떻게 알아볼 수 있을까요? 평소에 관심 있던 주제에 대해서 직접 만들어보세요. 만드는 과정에서 끊임없이 "왜?"라는 질문을 스스로에게 하고 그것을 알아가는 과정이 재미있다면 저는 강력하게 추천드립니다. 개발자는 현대 사회에서 없어서는 안 될 직업 중 하나이고, 다양한 분야에서 필요로 하기 때문에 전망 또한 좋다고 생각합니다.

지금도 열심히 개발 공부를 하고 있을 개발자 취준생 분들에게 한 마디 해주세요!


개발자 취업 시장에 잠깐 겨울이 온 것 같습니다. 앞이 힘들고 막막하고, 정말 내가 이 길을 갈 수 있을까 생각이 들어도 코딩하면서 재미를 느낀 적이 한 번이라도 있다면 이미 충분한 소질을 가지고 있을 겁니다. 겨울은 언젠가는 끝나기 마련이고, 겨울이 끝나면 따뜻한 봄이 옵니다. 지금은 성공적인 봄을 위한 준비 기간이라고 생각하면 어떨까요? 다들 화이팅입니다!

제로베이스에서는 취업이라는 목표를 달성해 볼 여러분을 기다립니다.
제로베이스에서 시작해 보세요.

취업은 제로베이스


추천 컨텐츠