0. 개요

2019년 8월 7일(수) 13:00 ~ 17:20까지 진행한 Naver Developer Open Class 2019에 참석해서 들은 내용

1. about Naver

  • '사용자'와 '기술'
  • 매출의 25%를 기술에 투자
  • CES2019에 첫 참석 (AI 분야)
  • 포브스 기업 9위

2. 웹툰 개발 책임

Speaker : 박찬규(chankyu.park@webtoonscorp.com)

  1. 네이버 개발자
    • 잘하는 개발자와 함꼐 일하는 것. 성장할 수 있다.
    • 네이버가 30년 후에 디즈니를 누른다. (디즈니에게서 Old media의 느낌이 난다)
    • '글로벌' 도전
  2. 웹툰 기술 총괄
    • 라인, 네이버도 못 뚫은 미국을 웹툰이 뚫었다.
    • 신기술 개발
  3. 개발자 선배
    • 후배 성장.
    • '상담이 재밌다.'
    • cafe에서 모의 면접을 진행해줌 (이메일로 상담을 해볼까..?)

3. 선배와의 대화

  1. 김OO
    • 빅스케일 서비스와 잩은 변화에 대응
    • 예상할 수 없는 엣지 케이스, 버그들
      • 네이버 카페 영상 관련 웹 view 변경 proj 진행
        옛날 디바이스에서 생각하지 못한 문제 발생
    • 동료들의 시간을 절약해주는 개발
      • 한 번 짤 때 잘 짜야 동료들이 쉽게 개발할 수 있다.(디자인 패턴, 객체 지향)

  2. 최OO
    • 2016 채용 연계형 인턴
    • Search & clova, Smart around
    • 네이버 : 많은 양의 데이터, 실리콘 벨리의 문화와 가장 가까움
    • hadoop, mapReduce 씀
    • 면접 관련
      • 포트폴리오에 poject가 많지 않아도 괜찮다.
      • 슈도코드나 알고리즘대로 코드를 잘 짤 수 있는지
      • 언제 어떤 자료구조를 써야 되는지
      • 문제가 주어 졌을때, 잘 몰라도 면접관들과 소통하여 힌트를 얻고 잘 해결할 수 있는지

  3. 전OO
    • 스타트업 경험자
    • 2017 채용 연계형 인턴
    • 네이버 개발 문화
      • Tool 사용, 코드 관리 등을 팀에서 자율적으로
    • 처음 입사했을 때 QA(Quality Assurance)를 몇 주 시킴
      • 1% 확률의 버그도 1000만 이용자 중 10만에 해당한다.
    • 오래된 코드를 관리하고 계속 유지, 보수 해나가고, 담당자가 바뀌어도 쉽게 코드를 알 수 있도록 하는 관리 방법을 배울 수 있다.
    • 개발자 중심의 일정(지속 가능한 개발, 번아웃 없이)

  4. 이OO
    • 비전공자
    • 2012 비전공자 대상 소프트웨어 멤버십
    • 좋은 개발자가 되려면
      • 첫 직장이 중요
      • 다른 개발자와의 차별점이 뭔지
    • 개발자가 갖춰야 할 것
      • 트렌드 세터, 커뮤니케이션, 빠른 습득력, 통찰력, 문제 해결 능력,
        관찰력, 꼼꼼함, 합리적 성격, 끊임 없는 공부
    • 회사에서 어떻게 기여할지를 잘 생각해봐라
    • 면접관으로 들어가게 되면 어떤 걸 만들어보고 싶은지 또는
      앞으로 실력이 향상되면 개발하고 싶은게 있는지 등을 묻는다.
      • 묻는 이유 : 개발에 대한 의욕, 개발을 즐거워 하는지 등을 알 수 있다.
      • 뭐 만들어보고 싶다고 하지..
    • OCC : 새로 생긴 팀에 자원해서 갈 수도 있는 시스템

  5. 이OO
    • 컴퓨터교육학 전공
    • 2015 경력 공채
    • PaaS 쪽 개발
    • 개발자가 문제에 집중할 수 있도록 해주는 회사
      • 자율 복장
      • 자율 출퇴근
      • 개발자를 위한 프로세스
        • 불필요 프로세스가 없다.(개인이 프로세스를 만든다)
        • 대기업은 정해진 프로세스 안에서 업무 진행
    • 네이버는 github에 올리는 것도 가능하다.
    • 기술 공유 채널이 잘 되어있다.
    • 최고의 개발자들과 개발할 수 있는 것이 네이버를 다니는 가장 큰 이유

  6. 조OO
    • 2008년 경력 입사
    • calendar 이후 vedio platform
    • 그룹 스터디, 개별 학습
    • 기본 적인 핵심 역량 한 가지는 완벽하게 다져라.
      그 다음 단점들을 하나씩 극복하기 위해서 노력해라.
    • 연차가 쌓인다고 자동으로 지식이나 경험이 쌓이는 건 아니다.
      자기 개발을 꾸준히 해라
    • 내가 좋아하는 일을 하자
      • 직업을 위한 개발을 하는 개발자는 좋아서 개발하는 개발자를 따라잡을 수 없다.
    • 네이버가 개발자로써 성장하는 데 좋은 이유
      • 국내 최고 대용량 트래픽
      • 훌륭한 동료들
      • 수평적인 개발 문화

4. 네이버 채용 기준

  • 2019년 8말 9초, 3년만에 신입 개발자 공채
    • 지원서 작성
    • 온라인 코딩 테스트
    • 1차 면접
    • 2차 면접

  • 필요 역량
    • 컴퓨터 공학 기초 지식(이해)
      • 들어와서 빠르게 배울 수 있으려면 기초 지식이 있어야 한다.
      • 알고리즘, 자료구조
      • ex> value와 reference가 어떨 때 쓰이는지
        동시성 상황에서 value와 reference는 어떤 장단점이 있는지
    • 개발에 대한 애정 + 배우고자 하는 의지
      • 무얼 얼마나 깊게 생각해 본 적이 있는지
      • 문제를 푼 경험
      • 배우고자 하는 의지를 어떻게 어필할 수 있을 지 생각해봐라
    • 논리적 사고력
      • 답이 맞는지 아니지도 중요하지만 어떠한 방식으로 풀어갈 것인지를 본다.
        문제가 무엇인지 먼저 정의하고 논리적으로 어떻게 풀어갈 수 있을지 생각하는 것
      • ex> 나의 머리카락 개수는 몇개일까?

  • 공채 준비
    • 지원서 작성할 때
      • 컴퓨터 전공 지식
    • 온라인 코딩 테스트
      • 어떻게 할지는 현재 고민중이나 지원서 작성자 모두 테스트 진행을 고려중임
      • 논리적 사고, 알고리즘, 자료구조
    • 면접
      • (QnA에서 나온 답변) 쉬운 알고리즘, 예를 들어 sorting중 자신있는 것 하나 손코딩 구현
        어떻게 하면 더 개선할 수 있을지
      • 버블 sort의 개선을 아래처럼 하면 되려나…?

        ex>
        개선 전

          for (int i = N-1; i > 0; i--)
              for (int j = 0; j < i; j++)
                  if (arr[j] > arr[j+1])
                      swap(&arr[j], &arr[j+1]);
        

        개선 후

          for (int i = N-1; i > 0 && isSwapped; i++)
          {
              isSwapped = false:
              for (int j = i; j < N-i-1; j++)
              {
                  if (arr[j] > arr[j+1])
                  {
                      swap(&arr[i], &arr[j]);
                      isSwapped = true;
                  }
              }
          }
        

5. QnA

  • 입사에 가장 중요하다고 생각하는 것
    • 화사에서 어떤 걸 기여할 수 있는지를 증명

  • 갖춰야할 역량
    • 차별화된 역량을 갖춰라
    • 'How to' 보다는 'Why' 개발했는지
      • '왜' 느리지 고민하고, 그래서 이렇게 개선을 했다.
      • 리시프 파일 관련 과제한거를 개선해볼까..?

  • 하나의 언어 vs 여러 언어?
    • 하나를 깊게 해보는 것이 좋다.
      • 범위가 좁을수록 공격 들어올 범위가 당연히 적다.
      • 이력서에 면접관이 질문하고 싶을 요소를 넣는다.

  • 자격증, 언어?
    • 자격증 없어도 된다.
    • 영어 점수가 높다고 가산점이 있는 건 아니다. 하지만 IT분야는 영어가 중요하다.

  • 주 개발 언어, Tool, DB 환경?
    • 팀마다 다르고, 다양하다.
      • 언어 : python, java, react js, spring, …
      • Tool : vscode, …
      • DB환경 : mySQL, mongoDB, …