플레이스 인턴 회고

SangUk Park
Sep 14 · 5 min read

안녕하세요. 저는 플레이스 개발 1팀에서 8주간 인턴 생활을 보낸 박상욱입니다.

NAVER CAMPUS HACKDAY를 통해 8주간의 인턴십 기회를 얻게 되었고 팀원분들과 소통하며 인턴으로 느꼈던 것을 네이버 플레이스 개발팀이 어떤 곳인지 궁금하신 분들에 공유해보고자 후기를 남깁니다.

면접

처음으로 보는 면접이라 뭘 준비할지도 막막해 다른 분들의 면접후기등을 참고해 전공지식을 준비했습니다. 면접은 화상으로 진행됐습니다. 준비했던 것과는 다르게 제가 진행했던 프로젝트에 대해 설명을 하는 방식이여서 github 화면을 공유해 면접관님께 전체적인 구조를 설명하고 왜 이러한 방식으로 구현 되었는지 설명하는 방식으로 진행되었습니다. (면접방식은 어느 분이 면접을 보느냐에 따라 많이 다를것 같습니다)

면접결과를 통보 받을때 까지만해도 근무부서에 대해서는 알지못했습니다.

코로나로 인해 OT 장소가 변경 됐다는 연락을 받게되며 그제야 근무지가 서현에 있는 Glace CIC로 출근한다는 것을알게 되었습니다. 앞으로 일하게 될 곳인 Glace CIC가 어떤 곳인지 궁금해지기 시작했습니다.

https://blog.naver.com/naver_diary/221836777999

승락 님의 글을 보게 되었고, Glace의 빠른 개발 스택에 놀라울 따름이었습니다. 이 글을 접했을 때 까지만해도 글 만으로는 사무실의 느낌을 알 수 없었기 때문에 크게 와닿지는 않았습니다. 2달간의 인턴십을 거친 지금 Glace를 가장 잘 설명한 글이라고 생각합니다.

과제진행

과제 사항에 대해 저에게 몇가지 선택지가 주어졌습니다. 전부터 GraphQL을 더 알아보고 싶어 Apollo GraphQL 모니터링 도구 개발을 진행했습니다.

  • 로그 남기기

apollo-server plugin의 request lifecycle에서 요청이 완료되는 시점인 willSendResponse에서 요청의 결과를 hooking하며 log를남기고, log에대한 통계 정보를 위해서 filebeats와 logstash를 통해 Elasticsearch에 데이터를 쌓아주는 구조를 선택했습니다.

Image for post

https://www.apollographql.com/docs/apollo-server/integrations/plugins/#server-lifecycle-events

  • GraphQL Introspection System 을 통해 schema 정보 얻기

GraphQL의 Schema 정보를 확인하기 위해서 GraphQL의 Introspection system Spec을 활용합니다. GraphQL에서는 Introspection system이라는 명칭의 Query System을 제공하는데, 이는 현재 graphql-server가 제공하고 있는 스키마(query, mutation, field type…)에 대한 정보를 반환하는 형태로 Query의 루트 타입인 __schema 필드를 쿼리하여 요청 할 수 있습니다.

import { getIntrospectionQuery } from 'graphql/utilities'

위의 과정으로 얻은 스키마 정보는 GraphQL 스키마의 정보를 확인 할 수 있으며, 또한 Apollo-Plugin에서 사용되는 schema hash로 변환 과정을 통해 로그의 유효성에 대한 판단 목적으로 이용됩니다.

Image for post

과제를 진행하면서 중요하게 받은 피드백은 기술을 선정할 때 이유를 명확히 하라는 것이었습니다. 많이 쓰인다는 것보다는 “왜 이것을 써야 할까?” 고민하는 과정에서 해당 기술의 철학을 이해 할 수 있었습니다.

분위기

정말 자유로운 분위기.

개발에만 전념할 수 있는 분위기입니다. 모두 열심히 일하시기에 그 공간에 있는 것만으로도 자극을 받을 수 있습니다. 코로나로 인해 재택을 했지만, 집중력이 떨어질 때 사무실에 가면 충전 받는 느낌이다보니 나태해진다 싶어지면 출근을 했습니다.

“알아서 잘하자”라는 분위기다보니 전반적인 분위기는 조용하고, 먼저 다가와주시거나 분주한 사무실을 생각했다면 처음에는 외롭다 느껴질수도 있습니다. 하지만 다들 좋은 분들이라 질문을 하면 친절하게 알려주십니다. 다른부분은 신경쓰지않고 개발 만 생각 할 수 있어서 개인적으로 최고의 환경이었습니다.

마무리

평소 좋은 개발자가 무엇일까에 대해 항상 의문이 있었습니다. 이번 인턴을 하면서 다른 개발자 분들을 바라보며 좋은 개발자란 ‘자신의 성장을 고민하는 개발자’란 것을 느꼈습니다.

이전까지만 해도 직장은 생계의 목적을 해결하는 수단정도로 생각했습니다. 하지만 개발자에게 있어서의 직장은 개발자의 성장을 고민 할 수 있는 공간이 되어야 한다는 것을 느꼈습니다.

Glace는 본인의 능력을 성장하기에 좋은 회사인 것 같습니다. 8주라는 짧은 기간 동안에서도 완성돼 있다고 생각한 부분에도 새로운 기능들이 추가되면서 서비스가 계속 성장하는것을 볼 수 있었습니다. 또한 바쁜 와중에도 기존 코드(Lagacy)에 대해서도 변화를 준비하는 것이 보였습니다.

it 회사들 어때요? 하면 보통 “케바케 팀바팀(team by team)이에요”라는 답을 많이 듣게 됩니다. 그런 면에서 저는 누가 Glace 어때요? 한다면 team of team이라 답할 것 같습니다.

코로나로 집에만 있으면서 나태해지던 모습을 돌아보게 되는 값진 시간을 갖을 수 있었습니다. 지난 8주간의 인턴생활을 도와주신 팀원 분들께 다시한번 감사드립니다.

네이버 플레이스 개발 블로그

네이버 플레이스에서는 어떻게 개발할까?

SangUk Park

Written by

네이버 플레이스 개발 블로그

#글로벌서비스 #최신기술 #코드리뷰 #자기주도적 #자율출퇴근 #오프라인회의최소화 #온라인협업도구활용. 선지원 후고민! http://recruit.navercorp.com/naver/job/detail/developer/?annoId=20002739&classId=&jobId=

SangUk Park

Written by

네이버 플레이스 개발 블로그

#글로벌서비스 #최신기술 #코드리뷰 #자기주도적 #자율출퇴근 #오프라인회의최소화 #온라인협업도구활용. 선지원 후고민! http://recruit.navercorp.com/naver/job/detail/developer/?annoId=20002739&classId=&jobId=

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store