티스토리 뷰
2020년 11월부터 네이버 웍스(웍스 모바일 or 라인 웍스) 인턴을 시작하였고, 정직원 전환에 성공하여 2월 말부터 근무를 시작하게 되었습니다. 이번 포스팅에서는 네이버 웍스에 취업하게 된 과정을 소개하고, 취업을 준비하시는 다른 분들에게 도움을 드리고자 합니다.
1. 네이버 웍스 취업 과정
[ 1. 자기소개서 ]
자기소개서는 총 4문항이 있었고, 모두 분량의 제한은 없었습니다. 모든 내용을 공개하기에는 불가능하니 어떠한 내용들을 다루었고, 몇자 정도 작성했는지 등의 핵심적인 내용들만 다루도록 하겠습니다.
(제가 자기소개서를 잘 쓰지 못하는 편이니 가볍게 참고하시는 것을 권장드립니다)
1. 자신에 대해 자유롭게 표현해 주세요.
이 항목에 대해서는 제가 목표로 하는 개발자의 모습, 개발자로서 제가 갖고 있는 자세 그리고 개발과 무관하게 평소에 제가 갖고 있는 신념을 3파트로 나누어 설명했습니다. 각각의 파트가 약 800자씩 차지하여 총 2500자 정도 작성하였고, 저를 최대한 소개하기 위해 제가 갖고 있는 목표와 신념 그리고 자세(마인드)를 위주로 설명하고자 하였습니다.
2. 자신의 기술력과 열정을 보여줄 수 있는 활동사항을 기재해 주세요.
(프로젝트, 경진대회, 창업, 논문, 특허 및 오픈소스 코드 사이트 Github, Bitbucket ID 등)
작성 시에는 '본인이 주도적으로 참여한 부분' 위주로 기입하며,
1) 진행기간 2) 주요내용 3) 본인이 공헌한 점 4) 사용한 Skill 또는 지식 5) 결과/성과 를 간결하게 핵심만 기입해 주세요.
이 내용에 대해서는 2018년부터 진행했던 프로젝트들 중에서 교내 프로젝트, 외주로 했던 작업, 소프트웨어 마에스트로로 활동했던 작업 등 다양한 프로젝트를 적었습니다. 제가 지원한 직무(Spring 기반의 백엔드) 위주의 프로젝트들을 주로 작성하였지만, 그 외에 다양한 기술적 관심이 있음을 보일만한 프로젝트를 몇개 추가하였습니다. 해당 내용은 총 3000자 이상 작성하였으며 총 7개의 프로젝트를 서술하였습니다.
3. Works Mobile에서 제공하는 서비스(기업 대상의 그룹웨어 LINEWORKS, 네이버 개인화 서비스 - 메일/캘린더/주소록/클라우드 등)에 대해 알고 있는지, 사용해 본 경험이 있다면 어떤 장단점이 있다고 느꼈는지 기재해 주세요. (경쟁 서비스와의 비교도 OK)
웍스 모바일이 제공하는 서비스는 기본적으로 B2B 서비스이기 때문에 자소서를 쓸 때 처음 사용을 해보았습니다. 웍스가 제공하는 여러 서비스들을 사용해봤을 때의 장점과 단점, 개선방향 등을 타 사 서비스와 비교하면서 총 1500자 정도 서술하였습니다.
4. 본인이 보유한 Programming Skill의 활용정도를 모두 적어주세요. (고급/중급/초급)
[작성예시 : ① C - 중급 ② Java - 고급 ③ Linux 커맨드 및 개발환경 - 고급 ④ Shell Scripting - 초급 ⑤ Android - 중급 ⑥ Javascript - 중급]
위의 내용에 대해서는 제가 가지고 있는 기술들과 각각의 등급을 다음과 같이 작성하였습니다.
ex) Java 고급
- 안드로이드 앱 및 스프링 서버 등을 제작하면서 사용함
- 다수의 외주 경험이 있으며 참고사항없이 개발할 수 있음
[ 2. 1차 면접 ]
1차 면접은 1시간 정도 진행되었고, 자기소개서 기반의 질문과 IQ 테스트와 비슷한 퀴즈 면접 및 라이브 코딩을 진행하였습니다. 자기소개서 기반의 질문에서는 간단한 자기 소개 이후 작성한 기술 기반으로 기술 면접 등에 대해 질문이 나왔었고, 약 20분 정도 진행되었습니다. 이 후에는 퀴즈 비슷한 면접이 진행되었는데, 문제 해결 능력을 물어보는 질문들이였습니다. 해당 질문들은 본인이 풀면 계속 넘어가는 형태로, 저는 총 4문제를 풀었습니다. 4번째 문제에서는 스택과 큐 기반의 라이브 코딩도 진행하였습니다.
(다른 동기들에게 어떠한 질문을 받았냐고 물어보니 완전 전형적인 기술 면접인 경우도 있었고, 알고리즘 위주로 물어본 경우도 있었고 워낙 케이스가 다양했습니다. 위의 내용은 참고만 하시고, 기술 면접 위주로 준비하는 것이 좋을 것 같습니다.)
[ 3. 인턴 ]
인턴 과정은 총 2달동안 진행되었습니다. 부서별로 주어진 과제를 진행하게 되는데, 저는 2달동안 Spring 기반의 웹 애플리케이션 서버, 커스텀 라이브러리, Spring Batch 기반의 배치 시스템을 개발하였습니다. 첫 2주동안은 설계 위주로 진행을 하였고, 남은 5주 동안에는 개발 및 테스트, 배포 등을 진행하였습니다. 저희 부서는 마지막 1주를 평가 기간으로 잡았고, 마지막 주까지 시간을 준 부서도 있었습니다. 그러면 각각의 단계에 대해 도움이 될만한 내용을 작성해보도록 하겠습니다.
(제가 작성한 내용이 모든 부서에 해당하지 않을 수 있습니다.)
1. 설계
설계는 총 2주동안 진행하였고, 2주 동안 ER Diagram, Class Diagram, Interaction Diagram, Component Diagram을 작성하였습니다. 평소에 소프트웨어 공학이나 설계 관련 과목을 많이 수강하였고, 다이어그램들을 많이 그려봐서 그런지 크게 부담은 없었습니다. 다만 컴포넌트 다이어그램은 처음 접해봐서 인턴하면서 공부하고 작성하였습니다.
하지만 인턴을 하면서 처음 다이어그램을 접하면 설계에 너무 많은 시간을 뺏길 수 있습니다. 최소한 가장 많이 사용되는 ER Diagram(DB 설계)이나 Class Diagram 의 작성법 정도는 익히고 가는게 좋을 것 같습니다.
2. 개발
개발은 앞서 설명드린대로 총 3개의 프로젝트로 나누어 진행하였습니다. 웹 애플리케이션 서버는 SpringBoot를 쓰지말고 Spring MVC로 구축을 하라고 해서 직접 구축하였습니다. 배치 서버는 저도 구축을 해본 적이 없어서 인턴을 하면서 처음 Spring Batch를 사용해 보았습니다. 배치 서버는 인턴 과제에서 필요하지 않는 부서도 많이 있을 것 같습니다. 그 외에 커스텀 라이브러리는 외부 저장소에 배포하여 빌드 도구를 통해 다운받도록 했어야 했는데, 개인적으로는 bintray에 프로젝트를 올리고 빌드 도구를 통해 다운받도록 하였습니다. 또한 추가 과제를 포함해 다른 웍스의 API들을 호출하는 것이 상당히 많았는데, 이러한 부분도 능숙하게 다를 수 있으면 인턴할 때 좋습니다.
인턴 과제에서 가장 중요한 것은 프로젝트의 완성인 것 같습니다. 백엔드 쪽으로 지원을 하였다면, 부서마다 과제는 다르겠지만 어느 부서든 Spring을 사용하기 때문에 Spring을 익혀 오시는 것이 좋습니다. 인턴을 시작하고 Spring을 배우면 과제를 완성시키지 못할 수 있으므로 Spring 기반의 개발을 연습해 오는 것이 필요할 것 같습니다.
3. 테스트
테스트 코드는 단위 테스트로 작성을 해야 합니다. 저는 Junit5와 Mockito 등을 기반으로 given, when, then 구조로 작성을 하였습니다. 사실 그 동안 테스트 코드를 거의 작성해보지 않아서 낯설었지만, 테스트의 커버리지 (특히 컨디셔널 커버리지)가 높으면 좋다고 하여 인턴을 하면서 공부하고 웹 애플리케이션 서버와 커스텀 라이브러리에 대해 각각 95% 정도를 커버하는 단위 테스를 작성하였습니다.
다시 한번 말씀드리지만, 테스트 코드도 물론 중요하지만 더욱 중요한 것은 프로젝트의 완성입니다. TDD 또는 테스트 코드의 작성이 익숙하지 않으시다면, 우선 프로젝트를 먼저 완성시키는데 집중하는 것이 좋을 것 같습니다.
4. 배포
과제의 요구사항 중에 SonarQube를 활용하라는 부분이 있어서 Docker-Compose 기반으로 배포 서버(Jenkins, SonarQube, PostgreSQL) 를 구축하였습니다. 그리고 네이버에서 제공하는 배포 서비스와 연동을 하여 배포를 진행을 하였습니다. 그래서 배포 후에 SonarQube가 잡아주는 버그와 취약점들을 개선하였고, 테스트 커버리지 등을 최종 발표에 포함하였습니다.
기본적으로 네이버 시스템을 통해 서버를 배포를 위해서는 CI/CD 서버를 구축해야 합니다. Jenkins, Travis, Circle 등 좋은 도구들 중에서 네이버는 Jenkins가 주류이니, Jenkins로 빌드/배포하는 연습을 해보시면 도움이 많이 될 것 같습니다.
[ 4. 인/적성 시험 ]
인턴 과정을 진행하는 중간에 약 3시간 정도 진행되는 인/적성 시험을 치뤘습니다. 언어 문제, 수학 문제, 추론 문제 등 여러 항목들을 진행하였습니다. 인턴 과정에 진행이 되어 준비도 불가능하고, 그냥 일정 나오면 치루면 될 것 같습니다.
[ 5. 대표 면접 ]
(다행히?) 코로나 바이러스로 인해 대표 면접은 취소가 되었습니다. 대표 면접때 나오는 질문(OSI 7계층 등)이 유사하다고 하니, 대표 면접을 보시는 분들은 멘토님께 어떠한 질문들이 나오는지 물어보시고, 이에 대해 답변을 준비하시면 될 것 같습니다. 대표님이 개발자 출신이라 상당히 깊이 있게 많이 물어본다고 합니다. 학부생 수준이 아닌 그 이상으로 깊이있게 준비 하시는 것이 도움이 된다고 합니다.
네이버 웍스에 취업하는 과정을 정리하면서, 다른 분들에게 도움이 될 수 있을 법한 부분들을 작성하고자 했는데 도움이 많이 되셨는지는 모르겠습니다. 조금이나마 도움이 되었기를 바라면서, 모두 취업 성공하시길 바라겠습니다!
추가로 2021년 인턴 채용부터 코딩 테스트가 추가되었습니다. 난이도는 백준 기준으로 실버-골드 사이이고, 네이버나 카카오 공채보다 쉬우니 열심히 준비하시면 무리는 없을 것 같습니다.
감사합니다:)
'끄적끄적' 카테고리의 다른 글
[준비물] 전문연구요원 훈련소 준비물 (10) | 2021.06.25 |
---|---|
[회고 및 목표] 2021년 목표 설정 (7) | 2021.03.14 |
윈도우 새로만들기 메뉴에 .md(마크다운) 추가하기 (4) | 2020.08.21 |
기타 명령어 모음 (0) | 2020.02.14 |
[망나니 개발자]티스토리 시작! (8) | 2017.11.02 |