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 같은). 네이버의 인프라 담당
네이버는 계속 사용자 기술에 포커싱 중이다.
- 진짜 개발자 노하우 확보
- 글로벌 성공을 직접 경험
- 창업가형 기술 리더로 성장
-
Wowza Media Server란?
- 상용미디어 스트리밍 서버
- 동영상 스트리밍 서비스에 필요한 다양한 기능 제공
- 아마존, MS, Alibaba 클라우드에서 채용
- JAVA기반, 리소스 사용량이 높음
-
네이버는 wowza의 구조적 한계를 극복하기 위해 직접 모듈을 개발
-
네이버 사내 독립 기업
- 네이버페이(네이버파이낸셜)
- Forest CIC : 네이버 쇼핑
- Glace CIC : 예약 시스템
- V CIC : VLIVE
-
깊이가 있는 기술력을 기반으로 글로벌 성공 경험을 쌓아 가길
-
- #너비 < 깊이 . . . . 하나라도 만렙을 찍어본 경험?
- #정답 < 진솔 . . . . 공감으로부터 얻은 통찰?
- #종착 < 시작 . . . . 네이버에서 이루고 싶은 성장?
자기소개서에 정답 같은 내용 X, 어떤 공감을 얻었고 어떤 통찰을 가졌다.
본인 스펙자랑.. 네이버가 골인지점? (X)
앞으로 네이버에서 뭘 하고 싶은지 NEXT적인 내용. 네이버를 디딤돌로 ㅇㅇㅇ를 하고 싶다(O)
-
네이버 B1 구내식당 점심메뉴는 몇 가지? -> 4가지
-
대규모 트래픽, 안정성, 빠른 성능...
-
메인을 지탱하는 힘 3가지(메인 개발자에게 요구되는 역량)
- Capacity(안정성)
- High Availability(고가용성)
- Performance(성능)
-
비상대응 시스템, 성능 튜닝
-
튜닝을 한다고 성능이 비약적으로 오르지는 앟는다.
-
위험상황 판단 후 비상 모드 전환(서비스 가용량 우선)
-
가용량, 안정성, 성능
-
- 개발에 대한 열정
- 꾸준한 학습
- 탄탄한 기본기
-
개발에 대한 열정
- 모르면 알 때 까지..
- 가리지않고 직접 해보기 . . . . 오류를 재현해서 직접 테스트 해 보기도
- 내부 소스 뜯어보기(커널, 라이브러리, 프레임워크)
- 내 프로젝트 하나 정도는 있어야..
너비보다는 깊이★★ 개발자라면 자기가 애착있는 프로젝트 하나정도 깊이 파보는 것도 좋다.
-
탄탄한 기본기
-
운영체제 왜 배울까요?
- 스레드 락 경합 때문에 성능이 더 이상 안올라간다 -> 스레드 경쟁을 줄이기 위해 스레드 수를 줄이고 프로세스를 늘려보니 성능 향상
-
자료구조 왜 배울까요?
- List sort보다 Tree sort
-
컴퓨터 구조 왜 배울까요?
- DB에서 매번 읽으니 성능이 느리다 > 캐시 사용하여 향상
-
-
꾸준한 학습
- JOB HOPE 활동 열심히 하자
-
열정/끈기, 기본기, 꾸준한 학습 = 개발자가 된다는 것.
-
막대한 트래픽, 대용량 데이터(일 기준 초당 30만건, 70억 이상의 로그, 90TB)
-
준비된 인프라
-
개발문화: 코드리뷰
- 기술적인 부분만 성장하는 것은 아니다. 리뷰어가 자신의 기술을 설명할 때 알고 있는 것을 쉽게 얘기하는 것도 협업의 중요한 요소 중 하나이다.
-
분산플랫폼에서 분산 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가지
- 커뮤니케이션
적당한 타협이 아니라 두 사람이 같은 이해도를 가질 때 까지 계속 커뮤니케이션을 하는 자세
가 필요하다. 왜 그 의견이 맞는지 설명해주세요. 혹은 내가 설득하는.
- 지속적인 계발을 해야 한다. 성장에 대한 열망이 있어야 한다. 개발자는 안주하고 있는것이 불편해야 한다.
- 커뮤니케이션
-
-
사내 클라우드로 인한 서버 신청 단순화
- 기존 방식에는 클라이언트 측에 직접 가서 구축해야 되는 반면에 사내 클라우드에서는 VM을 만들고 제공하기만 하면 된다.
-
NBP 복지나 연봉은 NAVER와 동일.
-
클라우드 서비스
-
NBP오면 이런 게 좋아요
- 다양하고 대용량 인프라 경험
- IaaS, PaaS, SaaS 등 global한 cloud개발 가능
- 경력과 무관한 주도적인 개발
- 경력이 풍부한 개발자들과 협업 경험
-
즐거운 개발자 생활을 위한 지침
-
서비스 장애 최소화
- 장애 없이 맘 편하게 지내려면?
- 장애 예방 / 장애 대응을 위한 사전 준비
Npot, Nelo
사용- 미리 대비를 해놔야 대응이 수월해 진다.
- 장애 대응에 전공 지식이 일부 도움이 됨(Deadlock -> lock ->
하지만 꾸준히 한 가지 분야만 판 사람이 더 잘한다.
- 장애 없이 맘 편하게 지내려면?
-
상시 학습
- Java Backend 개발자 + (python)Data Engineer
- 온라인 강의 회사 지원
- 신규 라이브러리 도입 시
- 동료의 조언
- 라이브러리 사용시의 장점과 단점
- 기술 관련 article
- 라이브러리 홈페이지 정보
- 직접 조사해야 함
- 학습을 두려워하지 않는 자세
-
토론
- 핵심은
내 주장을 확실히 하되 내 주장이 항상 옳은 것은 아니다.
- A의 입장에서 당연한 것이 B의 입장에서는 아닐 수도 있다.
- 적절한 토론 자세
- 아무리 봐도 내 의견이 맞는 것 같다면 적절한 근거를 든다.
상대방의 비판을 경청하고 최선의 결론을 내리는 것
이 중요하다.
- 핵심은
-
-
이상적 개발자상
- 서비스 장애 최소화
- 상시 학습
- 토론
-
이상적 신입 개발자상
- 상시 학습 : "학습에 대한 두려움이 없는 사람인가?"
- 토론 : "토론을 통한 시너지를 낼 수 있는 사람인가?"
- 네이버에서 커리어 전환이 가능했던 이유
- 다양한 개발 팀&서비스
- 오픈 커리어 찬스 제도
-
연중 상시 지원 가능
-
2020년 신입개발자 모집. 9월 초중 오픈예정(3년만에 부활)
-
지원서 제출 - 온라인 코테 - 1차 면접 - 2차 면접
-
지원서와 온라인코테 종합해서 검토해서 1차 면접자 검토
-
신입 개발자에게 바라는 것 = 전형을 관통하는 포인트
- 컴퓨터 공학 기초 역량
- 개발에 대한 애정 + 배우고자 하는 의지
- 논리적 사고력
-
조직과 분야를 나눠서 모집하지 않는다. (지원조직,분야 무관하게 선발)
-
입사 후 교육 후에 조직 배치
-
컴퓨터 공학 과목 이수했는지, 비전공자는 어떤 개발 경험이 있는지 물어볼 예정
-
깃허브는 필수 제출이 아니다. 하지만 자신을 잘 표현할 수 있는 요소기에 있으면 첨부.(빈 repo 올리지 말고)
-
자유로움. 근무 시간이나 사내 공부 등
-
개발환경에서 인터넷이 가능하다는 것, 대기업이나 금융권은 개발PC에서 인터넷이 안됨
-
인프라랑 개발 플랫폼이 이미 세팅되어있어서 바닥부터 만들 필요가 없는 점, 많은 유저를 대상으로 서비스를 만들고 대용량 데이터를 다뤄 볼 수 있는 점, 어린이 집도 잘 되있음.
- 메인 페이지 리뉴얼 했을 당시 모니터링 하는 순간, 비상대응 시스템
-
컴퓨터공학 기초 지식 중요 -> 성장 가능성이 보이기 때문
-
면접 때 못푸는 문제를 내는 이유? -> 지식 검증이 아니라 태도를 보는 것이다.
문제를 풀이하는 과정을 찾아가는 것을 보기 위함
. 어차피 현업에서는 답이 없는 문제를 마주하기 때문. 나중에 면접에서 너무 당황하지 않았으면 한다. 길을 찾아 나가는 모습을 보기 위함이다. -
면접에서 꼬리질문이 이어질 것이다. 직접 자기가 해보고 부딪혀 보는 것이 중요
-
질문을 찾아나가고 생각하는 능력..
-
상시채용 5시간 면접을 봤는데 공통질문.. 당신이 잘하는 것은 무엇인가에 대해서 설명해 보라. (기반 지식이 어느정도인지, 어느 깊이까지 가봤는지 알 수 있다.) 그 후에 전혀 주제가 다른 기업 입장에서의 문제를 제시한다.
-
masterpiece를 보는게 아니라 이 사람이 어떤 부분에 관심이 있고 무슨 노력을 하고 있는지 본다.(어떤 부분에 star가 있는지)
-
코딩스타일도 보는 편이다. 전체적인 아키텍쳐 보다는 함수의 길이를 어느 정도까지 하는지, if만 계속 쓰는지
-
응용실행구조에서 heap과 stack의 차이. 단순히 의미를 물어보는게 아니라 해당 구조가 어떤 상황에 필요하고 다른 개념과의 차이는 무엇인지.
-
value와 reference의 차이 등
- 많다고 해서 선호하는 것은 아니다.
- 본인이 가장 잘 아는 언어를 깊게 하는 것을 더 선호
- zero is one 대표님이 물어보신 질문 ㅋㅋ
- 둘 다 중요하지만 굳이 하나를 고르자면 실력이지만 하나라도 과락이면 안뽑겠다.
- 기대하는 평균의 실력은 있어야 한다. 하지만 태도가 안좋으면 out
-
앱도 만들어보고 이것저것 마구잡이식으로 개발했다고 좋은 평가 받는게 아니다. 한 가지를 해도 체계적으로 깊이 해 본 것이 중요하다.
-
튜토리얼을 따라한 수준으로 깊이 있게 했다고 보기는 어렵다.
-
본인이 실제로 많이 쓰고 관심있는 주제로 개발을 해보자.