네이버 글레이스 Front-end & JS Full Stack 직군 소개 및 질의 응답

윤성현
네이버 플레이스 개발 블로그
13 min readDec 2, 2020

2020년 11월 25일부터 11월 27일까지 3일간 2020 DEVIEW 글레이스 온라인 부스를 ZOOM에서 진행하였습니다. 이번 부스는 플레이스 및 예약 서비스 개발자 분들을 패널로 모시고 진행자와 패널 간의 토크쇼 형식으로 구성하였습니다.

첫째날에는 백엔드 직군 개발자 분들, 둘째날에는 프론트엔드 직군 개발자 분들, 셋째날에는 글레이스 개발 조직 총괄 리더님과 입사한 지 2년 미만 주니어 개발자 분들을 패널로 모셨습니다.

온라인 부스 세션은 크게 두 부분으로 구성하여 진행되었는데요. 우선 패널분들이 각자 팀 소개 및 사용하는 기술 스택에 대해 설명하였고, 이후 채용 및 개발과 관련된 “자주 묻는 질문”을 준비하여 이에 대해 질의응답하는 순서로 진행되었습니다.

둘째날 프론트엔드 직군 개발자분들과 진행된 내용을 정리해보았습니다.

PART 1: 각 팀의 역할과 기술 스택 소개

1. 네이버 예약 & 주문 플랫폼 (2분 20초 ~)

사용자가 어디서나 쉽고 빠르게 사용할 수 있는 예약 및 주문 플랫폼을 제공하고 있습니다. 공연, 식당, 펜션 등 다양한 업종들을 대응하고 있고, 최근에는 스마트 주문을 오픈하면서 메뉴 주문까지 가능해졌습니다. 이와 같이, 사용자의 일상 생활에 많이 엮여있는 서비스를 개발하고 있습니다.

네이버 예약 및 주문

또한, 사업자 페이지인 파트너 센터도 같이 개발하고 있는데, 카페나 식당 사장님과 같은 사업주가 쉽게 예약과 주문을 관리할 수 있는 페이지를 제공하고 있습니다. 파트너센터를 통해 업체 관리에 필요한 대부분의 사항들을 관리할 수 있습니다.

더 나아가 국내는 물론 글로벌 진출을 목표로 하고 있습니다.

사용하는 기술스택은 React, TypeScript를 사용하고 있습니다. 이용자 페이지는 Context를 사용하여 React Custom Hook으로 상태관리를 간편하게 하고 있고, 사업자 페이지는 Redux를 통해 관리하고 있습니다.

데이터 통신은 GraphQL & Apollo를 도입하였고, 사업자 페이지도 추후에 GraphQL & Apollo로 전환할 예정에 있습니다. DB는 Mongo DB 사용합니다. API는 Node.js 기반으로 이용자 페이지는 koa, 사업자 페이지는 express를 사용하고 있습니다.

2. 네이버 플레이스 개발 (5분 39초 ~)

네이버에서 장소 관련된 검색을 하면 노출되는 플레이스 정보를 제공하고 있습니다. 사용자가 원하는 장소를 잘 찾고, 찾고자 하는 장소의 정보를 잘 전달하는 역할을 담당하고 있습니다.

네이버 검색에서 노출되는 플레이스

플레이스가 노출되고 있는 환경은 모바일, PC를 통한 네이버 검색 결과 페이지를 제공하고 있습니다. 또한, 네이버 지도 앱 혹은 PC 지도에서도 각각 웹 뷰, iframe 형태로 제공하고 있습니다.

사용하는 기술 스택은 TypeScript Web FullStack으로 React를 2016년부터 사용하여, 2019년 대대적인 리팩토링을 거쳐 Functional Component로 hooks를 사용하는 것으로 전환하였습니다. web서버와 API 서버는 Node.js 기반으로 koa를 사용하여 서버를 구축하고 있습니다.

API layer로는 GraphQL & Apollo 를 사용하고 있고, 배포 환경은 쿠버네티스로 사용하고 있습니다. 또한, Mongo DB와 Elastic Search를 사용하며 검색 트래픽을 받다보니 이를 대응하기 위한 캐시 레이어로 Redis 사용하고 있습니다.

3. MY 플레이스 & LINE CONOMI (9분 9초 ~)

MY플레이스는 유저로 부터 받은 정보를 활용하여 좀 더 좋은 정보를 제공하고자 고민하고 노력하고 있습니다. 구글의 지역 가이드와 비슷하며, 네이버는 유저에게 신뢰도 높은 정보를 제공하기 위해 영수증이라는 매개체를 사용하고 있습니다. 온라인과 다르게 오프라인에서 발생하는 결제 정보는 파악이 어려워 영수증을 활용하기 시작하였으며, 데이터화 된 영수증 정보를 통해 결제 내역 분석 및 실제 방문 여부 등에 활용하고 있습니다.

MY플레이스

사용자가 영수증을 통해 생성한 리뷰는 예약이나 스마트 주문에서 발생하는 리뷰와 합쳐져 방문자 리뷰로 제공하고 있고, MY플레이스 페이지에서 사용자의 방문 이력과 작성한 리뷰들을 조회할 수 있습니다.또한, 점차 사용자 취향에 맞는 데이터를 제공하기 위해 준비하고 있습니다.

MY플레이스 서비스는 현재 매일 매일 만명이 가입하고 하루에 약 70만건의 방문 인증이 쌓이며, 50만개의 리뷰가 작성되고 있습니다. MY플레이스를 통해 많은 트래픽을 경험할 수 있습니다.

LINE CONOMI는 플레이스, MY 플레이스를 합친 것으로 일본에 서비스를 제공하고 있습니다. 네이버를 넘어 라인과 구글에 일본의 장소, 메뉴 정보를 제공하고 사용자들끼리 소통하도록 돕고 있습니다.

LINE CONOMI

LINE CONOMI를 통해 한국, 일본이 가지고 있는 국민성, 성향 등을 차이점을 느낄 수 있는데 이런 차이를 인지하고 개발에 녹이는 경험을 할 수 있습니다. 국민성의 차이로 발생하는 요소들을 좀 더 특화하여 제공하려고 노력하며, 각 나라 사용자에 맞춰 조금씩 차이를 두는형태를 구상하고 있습니다.

기술 스택은 앞에서 얘기한 예약&주문과 플레이스 서비스와 비슷하며, 이런 기술 스택을 선정한 이유는 안정적인 서비스를 제공하려는 이유도 있지만, 유저가 원하는 사항을 빠르게 제공하려는 목표도 있어 유저 풀이 많은 기술을 쓰려고 노력하고 있습니다. 그렇기 때문에 웬만하면 잘 만들어진 라이브러리, 오픈 소스를 사용하는 것을 권장하고 있고 그런 이유들이 합쳐 선정된 기술들입니다.

PART 2: Q&A 정리

새로운 기술 학습 방식 (21분 40초 ~)

  • 이전에 예약 이용 페이지를 개편을 할 때 Apollo를 도입했었는데, 그 전까지는 다뤄본 적이 없어 새로 학습하고 배웠어야 했습니다. 이 때, 각자 특정 파트를 맡아 정리한 후 다같이 모여 장점/단점 등을 공유하고 어떤 방식으로 개발할지 함께 파악하고 이해하는 방식으로 스터디를 진행했었습니다. (정상훈, 예약&주문)
  • 새로오신 분들이 부서에 적응하는 것도 비슷한 패턴일 것 같습니다. 저희가 알고있는 기술인 경우에는 도움이 되는 문서를 알려드렸고, 효과적이었던 방법은 중간 중간 본인 스스로 주제를 만든 후 발표하고 피드백을 들어서 이후 학습 보정하는 형태로 진행했던게 효과적이었던 것 같습니다. 새로운 기술을 도입하려고 학습을 한 경우에는 그 기술을 도입하고 싶어하는 사람이 있어서 얘기가 시작되는 경우가 많습니다. 그런 경우 그 사람에게 리서치나 탐구 등을 맡기고 이후 학습한 내용을 바탕으로 팀원들을 설득하는 방식으로 진행하고 있습니다. LINE CONOMI는 구글 검색 엔진에서 살아남아야 하므로 검색 엔진 최적화를 많이 공부했는데 각자 분량을 정해 학습하고 이후에 다같이 합쳐 기획자, 마케터 등에 공유하는 방식으로 진행하였습니다. (이강일, MY플레이스/CONOMI)
  • 저희도 일단은 생소한 분야를 다같이 적용해야 할 때 스터디를 많이 진행한다. 예를 들어 쿠버네티스 같은 경우에는 배포 패러다임이 많이 바뀌는 거기 때문에 팀원 모두가 이해가 필요하다 생각하여 팀에서 스터디를 진행하였고, 그 외에 새로운 기술같은 경우에는 적용을 하고 싶은 사람이 Pull Request를 올리거나 실제 코드를 작성하면서 익히는 경우가 많습니다. 또한 이러한 Pull Request를 통한 코드 리뷰를 통해서도 많이 학습하기도 합니다. (윤영제, 플레이스)

면접 때 가장 중요한 것

  • 실력도 중요하지만 저희 팀에 얼마나 잘 맞는지가 제일 중요한것 같습니다. 개발은 혼자하는게 아니라 팀 단위로 진행되기 때문에 팀에 잘 맞는지가 중요한데, 현재 팀에서는 이슈가 등록되면 각자 주도적으로 본인에게 할당하여 업무가 진행되는 형태이기 때문에 주도성이 중요하게 필요하고 새로운 기술 학습에 대해 열려있는 분을 선호합니다. 경력 면접이면 사용한 기술 등을 위주로 질문을 시작하게 되는데, 경험을 묻는 다기 보다는 그 기술을 이해하고 왜 사용했는지를 많이 질문하는 것 같습니다. 특히, FE 쪽은 새로운 기술이 많이 나오는데 이 기술이 왜 나왔는지, 어떤 부분을 개선 시켜주는지 이런 부분들을 잘 이해하고 있는지를 어필하면 좋을 것 같습니다.(윤영제, 플레이스)
  • 면접 과정에서 모르는 내용은 빠르게 포인트를 잘 집어서 질문하시는 분을 선호합니다. 면접은 맞다 틀렸다가 아니라 답변하는 과정을 보는 거기 때문에 과정을 많이 보고 있습니다. 잘 모르는데 아는 거 처럼 말하는거는 마이너스가 될 수 있습니다. 같이 일할 때에도 조용히 혼자 일하는 분이 있는데 서로 대화가 잘 되고 모르는 것도 빠르게 물어서 하시는 분을 선호합니다. (이강일, MY플레이스/CONOMI)
  • 인턴 면접을 주로 보고 있는데, 손코딩을 시키면 문제 풀다가 막히는 부분이 있으면 힌트를 통해 가이드를 주면 캐치를 해서 그런 방향으로 풀어 나가는 분도 있고 아예 모르는 분도 있고 바로 푸시는 분도 있습니다. 저는 개인적으로 모르는 것은 빨리 물어보고 힌트를 주면 캐치를 잘 해서 문제를 잘 해결해나가는 분을 선호합니다. (정상훈, 예약&주문)

원격 근무 환경

  • 일의 효율은 훨씬 좋은 것 같습니다. 근데 마냥 좋지만은 않은게 일과 삶의 구분이 잘 안되서 본인이 계획적으로 시간을 쓰지 않으면 번아웃이 올 수도 있다고 생각합니다. 스스로가 환경을 잘 구축해 물리적/심리적으로 업무와 생활을 구분해서 진행하는 게 좋을 것 같습니다. 장비는 회사 장비를 가져다 사용할 수 있고, 책상이나 의자가 지급 되진 않지만 많이 할인된 가격으로 구매할 수 있어서 회사에서 사용하는 의자나 책상을 구매해서 집에서 사용하시는 분들도 많습니다. 대다수 회의는 원격으로 진행되고 있어서 크게 어려움은 없지만 가끔씩 약간 외로울 때가 있습니다. (이강일, MY플레이스/CONOMI)
  • 회사에서 사용하는 좋은 의자를 구입한 후로는 편안히 재택 근무를 하고 있습니다. 팀원 간 유대감이 약해지는 경향이 있어 격주로 1시간 정도 화상 티타임을 가지고 있고, 다른 격주로는 공유할 내용이 있으면 업무 상관없이 공유하는 자리를 가져 화상으로 얼굴보는 자리를 마련하고 있습니다. 조직문화는 리더를 따르는 경우가 많은데 승락님(글레이스 개발 리더)이 자율과 책임을 강조하시는 분이시기 때문에 원격 근무 전에도 책임 근무로 업무시간에 구애받지 않고, 업무 장소도 중요치 않았었습니다. 이러한 부분이 원격근무와 연결되어 크게 달라진 점은 없는 것 같습니다. (윤영제, 플레이스)

조직 장점

  • 개발적인 문화에서는 새로운 기술에 대해 열려있다는 점이 가장 큰 장점인 것 같습니다. 옛날 코드도 주기적으로 버전 업하고 새로운 기술도 공유가 잘되는 문화가 자리잡혀 있는 것이 장점입니다. (정상훈, 예약&주문)
  • 장점은 사람마다 판단하는게 다를거라서 제가 말씀드린다고 와 닿을지 모르겠지만, 글레이스 조직은 일단 나가는 사람은 별로 없고 들어오는 사람이 많은 경향이 큽니다. 왜 그럴까 생각하면 각자 생각하는 장점이 있기 때문에 오래 남아있지 않을까 생각이 들고, 그래서 개인적으로는 문화에 크게 변화를 하지 않으려고 노력하고 있습니다. 왜냐하면 각자 추구하는 장점이 있을 거기 때문에 이를 유지하고 싶습니다. (이강일, MY플레이스/CONOMI)
  • 사람으로 부터 받는 스트레스가 굉장히 적다는 것이 큰 장점이라고 생각합니다. 잘하시는 분이 많고 공유 문화가 잘 발달되어 있어 새로운 기술이 나오면 알아서 정리해서 공유를 해주십니다. 또한, 새로운 기술을 적용할 때 두려운 부분이 클텐데 다들 실력이 좋으셔서 동료를 믿고 가는 경우가 많습니다. 내가 부족해도 동료가 채워줄 수있다는 믿음이 있고, 공부할게 굉장히 많은데 한 사람이 모든 것을 잘하기는 굉장히 어렵기 때문에 부족한 부분에 있어서는 Pull Request를 올리면 동료분들이 좋은 리뷰를 남겨주시고 그를 통해 성장도 할 수 있습니다. 성장하기 좋은 조직 문화를 가지고 있습니다. (윤영제, 플레이스)

기술 스택 선정 방식

  • 작년 리팩토링 할 때 이 과정을 거쳤는데 어떤걸 바꾸고 가져갈지 다같이 논의를 한번 했었습니다. 이 때, 각자 조사해야할 파트를 나누고 워크샵을 통해 의견을 나누면서 기술 스택을 선정을 했습니다. 신규로 기술이 들어갈 때도 확실한 근거가 있으면 아무런 제약이 없습니다. 생산성과 성능 관점에서 뚜렷한 이점이 있다하면 반대하는 사람이 없고, 새로운 기술을 배우는데 큰 거부감이 없어 어려움이 없이 도입할 수 있습니다. (윤영제, 플레이스)

같이 일하고 싶은 사람

  • 채용 공고에도 강조하고 있는데 주도성과 호기심이 있는 사람을 선호합니다. 주도성은 개발을 정말 좋아하면서 서비스에 대한 애정이 있어야 가질 수있다고 생각합니다. 주도성이 있으면 애정때문에라도 어느 환경에서나 잘하는것 같습니다. 호기심은 개발자가 개발만 잘하는 것 외에 두루두루 호기심을 가지고 각 영역의 변화에 관심을 가지신 분이면 기술부채가 쌓이지 않고 성장하는 사람인 것 같아서 선호합니다. (윤영제, 플레이스)
  • 코드 리뷰를 잘하는 사람, 남한테 지적 잘하시는 분이 좋은 것 같습니다. 지적이라는 뉘앙스가 부정적인 것 같지만, 코드리뷰 할 때 상대방 코드에 대한 의문을 과감하게 질문할 수 있으신 분이면 좋을 것 같습니다. 이건 연차와 상관 없이 개인별로 새로운 기술에 대한 것 그리고 관심사에 따라 얻는 정보의 수준이 다르기 때문에 이러한 의견을 잘 주고 잘 듣고 받아들여 성장하는데 활용하는 분이 좋을 것 같습니다. 즉, 코드리뷰 할 때 서로 발전할 수 있는 사람. (이강일, MY플레이스/CONOMI)
  • 끈기있는 사람. 예를 들면, 문제가 안풀리는 경우 구글링이나 테스트 등을 통해 끝까지 삽질하는 사람이 개인적으로 대단해보이기도 하고 좋아 보입니다. 저도 삽질을 많이하는 케이스라서 동질감을 느껴 그럴 수도 있을 것 같습니다. (정상훈, 예약&주문)

이후 실제 온라인부스에 참석하신 분들로 부터 받은 질문과 답변은 52분 15초 부터 확인 하시거나 아래 링크에서 확인하실 수 있습니다.

BE 개발자 혹은 글레이스의 리더의 이야기가 듣고 싶으신 분들은 아래 링크에서 확인해주세요!

--

--