Skip to content

Latest commit

 

History

History
320 lines (214 loc) · 13.3 KB

NAVER_DEVELOPER_OPEN_CLASS_2019.md

File metadata and controls

320 lines (214 loc) · 13.3 KB

NAVER DEVELOPER OPEN CLASS 2019

목차

1부 : 왜 네이버에서?
2-1. 네이버 메인 개발자로 일한다는 것
2-2. 빅데이터 엔지니어로 일한다는 것
2-3. 네이버에서 분산플랫폼 개발자로 일한다는 것
2-4. NBP에서 개발자로 보낸 2년
2-5. 공채 11년차가 바라본 네이버 개발자의 지향점
2-6. 보안 개발자에서 인공지능 서버 개발자로
3부. 네이버는 이런 분을 원합니다
4부. QA


오프닝

  • 네이버 개발자들은 뭘 제일 많이 마실까
    • 1위 : 백산수
    • 2위 : 하늘보리
    • 3위 : 코카콜라

매출의 25%를 기술에 투자 중 -> 적은 비용이 아니다. 목숨을 걸고 기술을 개발 중

LINE MAU 2억명

  • MAU : 1개월 실 사용자

웹툰 MAU 5700만명

스노우 글로벌 누적 다운로드 3.9억

VLIVE 글로벌 MAU 3500만, 글로벌 비중 80%

웍스모바일 : 비즈니스 협업도구 시장 1위.. 분사한지 3년만에 일본 시장 1위

LABS : 자율주행과 로봇, 온라인을 넘어 오프라인 기술 연구 및 서비스

NBP : 네이버 클라우드 플랫폼 서비스 방향으로 나아가는 중(AWS 같은). 네이버의 인프라 담당

네이버는 계속 사용자 기술에 포커싱 중이다.


1부 : 왜 네이버에서? (by VLIVE CEO님)

- 진짜 개발자 노하우 확보  
- 글로벌 성공을 직접 경험
- 창업가형 기술 리더로 성장    
  • Wowza Media Server란?

    • 상용미디어 스트리밍 서버
    • 동영상 스트리밍 서비스에 필요한 다양한 기능 제공
    • 아마존, MS, Alibaba 클라우드에서 채용
    • JAVA기반, 리소스 사용량이 높음
  • 네이버는 wowza의 구조적 한계를 극복하기 위해 직접 모듈을 개발

  • 프레임워크, API만 쓸 줄 아는 단순한 코디네이터가 아니라 개발자로서 원리, 깊은 기술을 알고 싶다면 꼭 네이버로

  • 네이버 사내 독립 기업

    • 네이버페이(네이버파이낸셜)
    • Forest CIC : 네이버 쇼핑
    • Glace CIC : 예약 시스템
    • V CIC : VLIVE
  • 깊이가 있는 기술력을 기반으로 글로벌 성공 경험을 쌓아 가길

  • 지원 팁 (이런 동료와 같이 개발하고 싶습니다)

    • #너비 < 깊이 . . . . 하나라도 만렙을 찍어본 경험?
    • #정답 < 진솔 . . . . 공감으로부터 얻은 통찰?
    • #종착 < 시작 . . . . 네이버에서 이루고 싶은 성장?

    자기소개서에 정답 같은 내용 X, 어떤 공감을 얻었고 어떤 통찰을 가졌다.

    본인 스펙자랑.. 네이버가 골인지점? (X)
    앞으로 네이버에서 뭘 하고 싶은지 NEXT적인 내용. 네이버를 디딤돌로 ㅇㅇㅇ를 하고 싶다(O)


2-1. 네이버 메인 개발자로 일한다는 것

  • 네이버 B1 구내식당 점심메뉴는 몇 가지? -> 4가지

  • 대규모 트래픽, 안정성, 빠른 성능...

  • 메인을 지탱하는 힘 3가지(메인 개발자에게 요구되는 역량)

    • Capacity(안정성)
    • High Availability(고가용성)
    • Performance(성능)
  • 비상대응 시스템, 성능 튜닝

  • 튜닝을 한다고 성능이 비약적으로 오르지는 앟는다.

  • 위험상황 판단 후 비상 모드 전환(서비스 가용량 우선)

  • 가용량, 안정성, 성능

  • 메인 개발자에게 요구되는 역량

    • 개발에 대한 열정
    • 꾸준한 학습
    • 탄탄한 기본기
  • 개발에 대한 열정

    • 모르면 알 때 까지..
    • 가리지않고 직접 해보기 . . . . 오류를 재현해서 직접 테스트 해 보기도
    • 내부 소스 뜯어보기(커널, 라이브러리, 프레임워크)
    • 내 프로젝트 하나 정도는 있어야..

    너비보다는 깊이★★ 개발자라면 자기가 애착있는 프로젝트 하나정도 깊이 파보는 것도 좋다.

  • 탄탄한 기본기

    • 운영체제 왜 배울까요?

      • 스레드 락 경합 때문에 성능이 더 이상 안올라간다 -> 스레드 경쟁을 줄이기 위해 스레드 수를 줄이고 프로세스를 늘려보니 성능 향상
    • 자료구조 왜 배울까요?

      • List sort보다 Tree sort
    • 컴퓨터 구조 왜 배울까요?

      • DB에서 매번 읽으니 성능이 느리다 > 캐시 사용하여 향상
  • 꾸준한 학습

    • JOB HOPE 활동 열심히 하자
  • 열정/끈기, 기본기, 꾸준한 학습 = 개발자가 된다는 것.


2-2. 빅데이터 엔지니어로 일한다는 것

  • 막대한 트래픽, 대용량 데이터(일 기준 초당 30만건, 70억 이상의 로그, 90TB)

  • 준비된 인프라

  • 개발문화: 코드리뷰

    • 기술적인 부분만 성장하는 것은 아니다. 리뷰어가 자신의 기술을 설명할 때 알고 있는 것을 쉽게 얘기하는 것도 협업의 중요한 요소 중 하나이다.

2-3. 네이버에서 분산플랫폼 개발자로 일한다는 것

  • 분산플랫폼에서 분산 storage를 만드는 분.

  • 분산 플랫폼?

    • 서비스 조직이 비즈니스 로직에 집중할 수 있도록 공통으로 사용할 소프트웨어 인프라를 제공하는 일

    • 유한한 컴퓨팅 자원을 무한하게

      • CPU [NCC : kubernetes 기반 container 관리 시스템]
      • Memory [ARCUS : in-memory K-V DB / cache]
      • Storage [nBase-T : 분산 데이터베이스, OwFS/Papyrus/Ceph: 분산 스토리지]
    • 다수 서비스에서 필요한 공통 기능을 플랫폼으로

      • 이미지처리 [포토 인프라]
      • 영상처리 [동영상 인프라]
  • 분산플랫폼의 이슈

    • 100% 신뢰 : 기능/성능, 무중단 유지보수
    • 확장성 : Scale-out, Micro-service, Monitoring, Failover
  • 플랫폼은 석사급만 뽑는다?

    • 실제 일해보니 지식적인 면은 크게 중요하지 않다

    • 들어와서 적응을 얼마나 잘 하는가가 중요하다.

    • 신입에게 정말 중요한 2가지

      1. 커뮤니케이션
        • 적당한 타협이 아니라 두 사람이 같은 이해도를 가질 때 까지 계속 커뮤니케이션을 하는 자세가 필요하다. 왜 그 의견이 맞는지 설명해주세요. 혹은 내가 설득하는.
      2. 지속적인 계발을 해야 한다. 성장에 대한 열망이 있어야 한다. 개발자는 안주하고 있는것이 불편해야 한다.

2-4. NBP에서 개발자로 보낸 2년

  • 사내 클라우드로 인한 서버 신청 단순화

    • 기존 방식에는 클라이언트 측에 직접 가서 구축해야 되는 반면에 사내 클라우드에서는 VM을 만들고 제공하기만 하면 된다.
  • NBP 복지나 연봉은 NAVER와 동일.

  • 클라우드 서비스

  • NBP오면 이런 게 좋아요

    • 다양하고 대용량 인프라 경험
    • IaaS, PaaS, SaaS 등 global한 cloud개발 가능
    • 경력과 무관한 주도적인 개발
    • 경력이 풍부한 개발자들과 협업 경험

2-5. 공채 11년차가 바라본 네이버 개발자의 지향점

  • 즐거운 개발자 생활을 위한 지침

    • 서비스 장애 최소화

      • 장애 없이 맘 편하게 지내려면?
        • 장애 예방 / 장애 대응을 위한 사전 준비
        • Npot, Nelo 사용
        • 미리 대비를 해놔야 대응이 수월해 진다.
        • 장애 대응에 전공 지식이 일부 도움이 됨(Deadlock -> lock ->
          하지만 꾸준히 한 가지 분야만 판 사람이 더 잘한다.
    • 상시 학습

      • Java Backend 개발자 + (python)Data Engineer
      • 온라인 강의 회사 지원
      • 신규 라이브러리 도입 시
        • 동료의 조언
        • 라이브러리 사용시의 장점과 단점
        • 기술 관련 article
        • 라이브러리 홈페이지 정보
        • 직접 조사해야 함
      • 학습을 두려워하지 않는 자세
    • 토론

      • 핵심은 내 주장을 확실히 하되 내 주장이 항상 옳은 것은 아니다.
      • A의 입장에서 당연한 것이 B의 입장에서는 아닐 수도 있다.
      • 적절한 토론 자세
      • 아무리 봐도 내 의견이 맞는 것 같다면 적절한 근거를 든다.
      • 상대방의 비판을 경청하고 최선의 결론을 내리는 것이 중요하다.
  • 이상적 개발자상

    • 서비스 장애 최소화
    • 상시 학습
    • 토론
  • 이상적 신입 개발자상

    • 상시 학습 : "학습에 대한 두려움이 없는 사람인가?"
    • 토론 : "토론을 통한 시너지를 낼 수 있는 사람인가?"

2-6. 보안 개발자에서 인공지능 서버 개발자로

  • 네이버에서 커리어 전환이 가능했던 이유
    • 다양한 개발 팀&서비스
    • 오픈 커리어 찬스 제도

3부. 네이버는 이런 분을 원합니다

  • 연중 상시 지원 가능

  • 2020년 신입개발자 모집. 9월 초중 오픈예정(3년만에 부활)

  • 지원서 제출 - 온라인 코테 - 1차 면접 - 2차 면접

  • 지원서와 온라인코테 종합해서 검토해서 1차 면접자 검토

  • 신입 개발자에게 바라는 것 = 전형을 관통하는 포인트

    • 컴퓨터 공학 기초 역량
    • 개발에 대한 애정 + 배우고자 하는 의지
    • 논리적 사고력
  • 조직과 분야를 나눠서 모집하지 않는다. (지원조직,분야 무관하게 선발)

  • 입사 후 교육 후에 조직 배치

  • 컴퓨터 공학 과목 이수했는지, 비전공자는 어떤 개발 경험이 있는지 물어볼 예정

  • 깃허브는 필수 제출이 아니다. 하지만 자신을 잘 표현할 수 있는 요소기에 있으면 첨부.(빈 repo 올리지 말고)


4부. QA

Q. 네이버 개발자로서 가장 좋다고 생각하는 근무 환경은?

  • 자유로움. 근무 시간이나 사내 공부 등

  • 개발환경에서 인터넷이 가능하다는 것, 대기업이나 금융권은 개발PC에서 인터넷이 안됨

  • 인프라랑 개발 플랫폼이 이미 세팅되어있어서 바닥부터 만들 필요가 없는 점, 많은 유저를 대상으로 서비스를 만들고 대용량 데이터를 다뤄 볼 수 있는 점, 어린이 집도 잘 되있음.

Q. 프로젝트 중 가장 만족했던 일과 가장 어려웠던 순간

  • 메인 페이지 리뉴얼 했을 당시 모니터링 하는 순간, 비상대응 시스템

Q. 신입 개발자가 되기 위해 요구되는 역량, 수준이 어느 정도인지

  • 컴퓨터공학 기초 지식 중요 -> 성장 가능성이 보이기 때문

  • 면접 때 못푸는 문제를 내는 이유? -> 지식 검증이 아니라 태도를 보는 것이다. 문제를 풀이하는 과정을 찾아가는 것을 보기 위함. 어차피 현업에서는 답이 없는 문제를 마주하기 때문. 나중에 면접에서 너무 당황하지 않았으면 한다. 길을 찾아 나가는 모습을 보기 위함이다.

  • 면접에서 꼬리질문이 이어질 것이다. 직접 자기가 해보고 부딪혀 보는 것이 중요

  • 질문을 찾아나가고 생각하는 능력..

  • 상시채용 5시간 면접을 봤는데 공통질문.. 당신이 잘하는 것은 무엇인가에 대해서 설명해 보라. (기반 지식이 어느정도인지, 어느 깊이까지 가봤는지 알 수 있다.) 그 후에 전혀 주제가 다른 기업 입장에서의 문제를 제시한다.

Q. Github에서 무엇을 보는지 궁금합니다.

  • masterpiece를 보는게 아니라 이 사람이 어떤 부분에 관심이 있고 무슨 노력을 하고 있는지 본다.(어떤 부분에 star가 있는지)

  • 코딩스타일도 보는 편이다. 전체적인 아키텍쳐 보다는 함수의 길이를 어느 정도까지 하는지, if만 계속 쓰는지

Q. 컴퓨터공학 기초 역량이란 어디까지를 의미하는지

  • 응용실행구조에서 heap과 stack의 차이. 단순히 의미를 물어보는게 아니라 해당 구조가 어떤 상황에 필요하고 다른 개념과의 차이는 무엇인지.

  • value와 reference의 차이 등

Q. 다룰 수 있는 언어의 pool이 채용기준에 영향이 있는지 궁금합니다.

  • 많다고 해서 선호하는 것은 아니다.
  • 본인이 가장 잘 아는 언어를 깊게 하는 것을 더 선호

Q. 실력, 태도 둘 중 하나를 꼽자면 어떤걸 더 중요시 하는지 궁금합니다.

  • zero is one 대표님이 물어보신 질문 ㅋㅋ
  • 둘 다 중요하지만 굳이 하나를 고르자면 실력이지만 하나라도 과락이면 안뽑겠다.
  • 기대하는 평균의 실력은 있어야 한다. 하지만 태도가 안좋으면 out

Q. 어떤 프로젝트를 해야 도움이 될지

  • 앱도 만들어보고 이것저것 마구잡이식으로 개발했다고 좋은 평가 받는게 아니다. 한 가지를 해도 체계적으로 깊이 해 본 것이 중요하다.

  • 튜토리얼을 따라한 수준으로 깊이 있게 했다고 보기는 어렵다.

  • 본인이 실제로 많이 쓰고 관심있는 주제로 개발을 해보자.