• 들어가기 앞서
    • 자신감을 바탕으로 실패를 두려워하지 말자
      • 사람마다 해주는 조언이 다를 수 있다. 모두 자신 경험 기반이기 때문에
    • 하지만 공통되는 부분들이 있을텐데 그런 부분을 잘 찾아보자.
    • 내가 정말 원하는 것이 뭔지 잘 생각해보자.
    • 어떤 회사를 갈까?
      • 좋은 사람들이 있는 곳을 찾자.
      • 많이 시도해보자.
  • 데이터 관련 직군들
    • Data Scientist vs ML Engineer -> 크게 다르다고 보이진 않음. 
      • Feature Engineering
      • Recommendation
      • Search
      • Operation
    • Data Analyst
      • Marketing Anaylst
      • Product Analyst
      • A/B Test Analysis
    • Data Engineer
      • Data Warehouse & ETL
      • Feature computation & Data Scientist Support
    • MLOps
      • All about 'Continuous' ML model development and deployment
      • 자동화. 모델이 알아서 새로운 데이터 수집해 알아서 학습, 어느 정도 성능 나오면 자동으로 deploy
      • MLOps란?
        • DevOps가 하는 일
          • 개발자가 만든 코드 시스템에 반영하는 프로세스 (CI/CD, deployment)
          • 시스템이 제대로 동작하는지 모니터링 그리고 이슈 감지시 escalation 프로세스
            • On-call 프로세스
        • MLOps가 하는 일
          • DevOps가 하는 일 동일. 차이는 개발자 코드가 아닌 ML 모델이 대상이 된다는 점
          • 어떻게 ML 모델 개발을 더 쉽게하고 자동화해 자주 모델 빌딩을 하고 이를 프로덕션으로 런치할 수 있는가?
          • 모델 서빙 환경에 문제가 생기거나 모델 성능이 떨어질 경우 이를 어떻게 감지하고 조치를 취할 수 있나?
    • [요약] JD보고 포기하지 말라, 
    • 채용공고 예시 : https://team.daangn.com/jobs/%EA%B0%9C%EB%B0%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/
  • 인터뷰 프로세스
    • 데이터 분석가로 시작해서 내부에서 데이터 과학자로 직무 전환하는 것도 좋은 전략
    • 채용 과정에서 과제를 줄 수 있다. 그 때 코드 리뷰가 있는데 이 피드백을 받아들이는 태도에 대해서도 뽑을지 안 뽑을지가 결정됨. 이후 수습기간으로 3개월~4개월 정도가 주어지는데 그 이후에 얼마나 발전했는가를 본다. 성장을 얼마나 하는 사람이 중요한 것이지, 얼마나 아는 사람이 중요한 것이 아니다.
    • 일반적 프로세스
      • JD 먼저 작성 후 잡 공고를 올림
      • 이력서 스크린
        • 커버 레터가 필요한가? - 별로 도움된다는 사람 없었다.. 오히려 거추장스러움
        • 데이터 일과 관련없는 과거 경력도 넣을까? - 꼭 넣어라! 더 나를 잘 이해할 수 있고, 데이터 과학은 여러 분야가 접목됐을 때 힘을 내는 분야이기도 해서 꼭 넣는게 좋다.
      • 전화 인터뷰
      • 온사이트 인터뷰
      • 레퍼런스 체크(백그라운드 체크)
      • 오퍼 후 네고 시작
      • 모든 면접관에게 잘하자
      • 질문 정리하고 복기하자.
      • Sometimes you win, Sometimes you learn. 인터뷰를 계속해서 어떻게 인터뷰하는게 좋을지 배우자. 연습을 계속하자.
  • 행동양식 질문들
    • Collaboration
      • 다른 팀에 속한 다수 사람들과 했던 프로젝트에 대해 얘기하기
      • 지금까지 가장 일하기 힘들었던 사람들은 누구이고 왜 힘들었는가?
    • Ownership
      • 프로젝트 중 문제가 생겼는데 그걸 주도적으로 해결한 경우가 있으면 설명해주세요
      • 프로젝트를 처음부터 끝까지 진행한 경우가 있다면 이에 대해 설명해주세요
    • Impact
      • 지금까지 한 프로젝트 중 가장 임팩트가 컸던 프로젝트에 대해 설명해주세요
    • Craftsmanship
      • 본인의 책임이 아니었음에도 불구하고 어떤 무제를 직접 해결하려고 했었던 적이 있다면 설명해주세요.
    • 굳이 지어내지 말고 없으면 없다고 하자. 
    • 대답을 얼마나 조리있게 하는가
      • 상황 / 업무 / 액션 / 결과 이 4개의 시나리오에 맞춰 대답하자.
  • 기술 질문들
    • 이력서에 써 있는 프로젝트를 보고 꼬리에 꼬리를 물고 질문
      • 어떻게 프로젝트가 디자인됐고, 어떤 결정들을 내렸으며 지금 다시 한다면 어떻게 바꿀 것인가?
    • 이력서에 작성한 프로젝트에 대해서는 세세하게 이해하고 있을 수 있도록 해야 한다.
    • 질문의 정확한 의도가 이해가 안 되면 정확히 짚고 다시 설명을 요청드린 후 답드리는 것도 중요하다.
  • 어떤 질문들을 해야할까?
    • 미리 회사를 검색해서 무엇을 하는 곳인지 찾아보기
    • 면접관이 자기 소개할 때 잘 듣고 그에 대해 짧게 질문해보는 것도 좋다.
    • 조인하게 되면 처음 무슨 일을 하는가? (hiring manager에게)
    • 지금 진행 중인 중요 프로젝트는 무엇인가?
    • 이 회사에 일을 잘하는 사람들은 어떤 특징을 갖고 있는가?
    • 지금 회사에서 제일 좋았던 점 그리고 안 좋았던 점 하나를 설명해줄 수 있는가?
    • 어떻게 돈을 버는가?
    • 지금 사용 중인 데이터 관련 기술 스택에 대해 설명이 가능한가?
    • 가장 좋은건 대화 흐름 속 본인이 정말 궁금한 걸 질문한 것. 그니까 면접관의 말을 경청하는 것이 중요하다. 좀 더 친밀하게 하려면 면접관이 무슨 질문을 했을 때 면접관이 한 질문을 다시 말을 하며 시작하는 것도 좋다.
  • 면접 전략
    • 취직 준비 방법
      • 닥치내대로 이력서 내고 닥치는대로 인터뷰하기
        • 정말 가고 싶은 곳은 나중에 인터뷰
        • Job Description 보고 나느 부족한 것이 많네 하고 쫄지 않기! - 자기 검열 금지!
      • 99번 실패해도 하나만 잡으면 된다는 패기
        • 실패에 상처받지 말자
      • 어디건 시작해서 발전해 나가면 된다. 빨리 시작하는 것이 더 중요하다!
        • 남들과 비교도 금지!
        • 시작은 미약하나 끝은 창대하리라. 시작하는 곳이 종착역은 아니다. 인생은 길다!
        • 회사 이름보다 같이 일하는 사람들이 더 중요하다!
          • 그 사람들이 발전을 해나가며 다른 길로 갈 것이다. 그러한 잘 닦인 길을 따라 가면 좋다!
        • 빨리 시작하고 거기서 필요한 것을 배우자. 공부를 위한 공부를 하지 말자. 이력서 혹은 포폴을 채우기 위한 공부도 하지 말자. 
        • 공부엔 끝이 없다. 현재 알고 있는 지식과 현업에서 원하는 지식과 갭을 빨리 찾고, 그걸 점점 줄여나가는 것이 취직을 하기 위한 지름길이 될 것이다.
    • 직장 선택 기준
      • 성장성
        • 회사가 성장하고 있는가? 회사 크기는 중요 X 이미 외부에서 어느 정도 검증 가능
        • Growing pain vs just pain
      • 사람 / 문화
        • 회사 내 inner circle이 존재하는가?
          • 존재하면 내가 들어가서 일을 잘해도 그 안에 끼지 않는 한 인정받기 쉽지 않다.
        • Inner circle 존재 여부는 안에 들어가서 일해보거나 잘 아는 지인이 회사에 있지 않은한 알기 힘ㄷ르다.
          • 존재하면 이 회사는 더 큰 성장을 이루는 것이 쉽지 않을 가능성이 높다.
      • 내 매니저
        • 내 매니저는 보고 배울 점이 많은 사람인가? 윤리적이고 공정한 사람이며 명확한 결정을 내리고 피드백을 잘 주는가? 회사 내에서 힘이 있는가?
        • 좋은 매니저랑 일을 하면 큰 도움이 된다.
          • 매니저가는 회사 따라가기
          • 이 사람이라면 어떻게 했을지.
      • 참고 : https://boards.greenhouse.io/daangn
  • 어떻게 잘 시작할 것인가?
    • The First 90 days(책)
      • 자기 검열하지 말고 매니저 스타일 팡가하고 피드백 요청
      • 과거 상처를 갖고 시작하지 않기
        • 이직할 때 왜 이직하려 하는가에 대해 얘기하게 될 때 전 직장 욕(과거 상처)하지 않기. 대신에 전 직장에 더 배울 게 없는 경우 이직을 하고, 이에 대해 얘기하는 것이 좋을 것이다.
      • 열심히 일하되 서두르지 않기
      • 남과 비교 않기
      • 작게라도 하나의 성공 이끌어내기
      • 필요할 때는 매니저님께 도움받는 것도 중요하다.
    • 새로운 기술 습득이 아닌 결과를 내는 데 초점 맞추기
      • 자신이 맡은 일을 잘 하기 위해 필요한 기술 습득
        • ex) 자동화하기 or 실행시간 단축
      • 자신이 맡은 일 성공/실패를 어떻게 결정하는지 생각
        • 매니저와 소통 중요
        • 성공/실패 지표에 대해 생각
      • 일을 그냥 하지 말고 항상 '왜' 이 일이 필요하고 큰 그림 생각
        • 질문하기
    • 피드백의 중요성
      • 스킬셋 관련 피드백
        • ex) 코드 리뷰
        • 유닛 테스트 작성하기
      • 행동 양식 피드백
        • Comfort zone과 연결되면 어려워짐
        • 레벨이 올라갈수록 중요해진다.
        • 편한 것만 하려고 하지 말고, 어려운 것에도 부딪히고 도전해보자
  • 취준 성공기 엿보기

  • 실무 필요 역량
    • 논문 구현 기술
      • Documentation 참고하기
      • 구글 검색하는 건 당연한 일이다! 
      • Baseline되는 모델 찾기 (안정적 코드 선택)
      • 왜 그래야 하는가? -> 대부분의 코드는 라이센스 문제가 있다. 기업은 이 라이센스 문제에 예민할 수 밖에 없기 때문에 직접 구현할 수 있는 기술을 가진 사람을 원한다
      • 구현해보고 정답과 비교하기
        • 처음 논문을 구현하면, 구현된 코드가 잇는 것을 시도하라
          • 첫 번째 : 학습 결과 비교
          • 두 번째 : 구현 스킬 비교
        • 논문 실험 결과와 비교하라
      • 구현을 정말 못하겠으면 구현된 코드를 내 스타일 코드로 변경하라
    • pytorch <-> tensorflow
      • pytorch로 되어있는걸 tf로 tf로 구현되어있는걸 torch로 바꿔보기
      • 왜 필요할까?
        • 연구자들은 torch를 선호한다
        • TPU로 학습해야 하는 경우 tensorflow만 가능
        • Python은 서버로 큰 오버헤드가 될 수 있다.
      • 일단 둘 중 하나 마스터하기
      • https://github.com/tango4j/tensorflow-vs-pytorch
    • 최신 기술 빠른 조사 및 적용
      • Papers with code
      • 블로그나 유튜브로 논문 리뷰해놓은 곳 보고 면접 때 활용하기..ㅎ
      • 캐글 적극적으로 활용하기
        • 데이터셋도 다 주고 TPU 환경까지 지원한다!
        • EDA code > Train code > Inference Code
      • 논문도 좋은 논문 읽기
        • conference 논문 매우 짧은 주기
        • journal 논문 검토하는 데 굉장히 많은 시간을 들인다. 
        • 대부분의 가치로는 저널 > 학회 그러나 컴퓨터는 학회에서의 가치가 굉장히 높다. 빠른 변화때문에!
      • 학회 : CVPR(Top Tier), ICCV/ECCV, SIGGRAPH, NIPS, ICML, AAAI, ACL, EMNLP, ... -> 믿을만하다!
        • Arxiv는 학회 저널은 아니고 논문을 자유롭게 올릴 수 있는 블로그같은 곳이다.. 검토가 덜 됐는데 다른 사람한테 검토를 받고 싶을 때 올리는게 아카이브.
      • 행사 : 네이버 데뷰, if kakao, NVIDIA GTC, ...
      • 커뮤니티 - Facebook tensorflow korea 등
  • 포장은 나쁜 것이 아니다
    • 거짓말을 많이 하라는 것은 아니다!
    • 들어 가기 전엔 나의 경험, 나의 방법을 잘 포장, 들어가면 회사 실적, 회사 방법을 잘 포장해야 한다.
    • 가고 싶은 기업에 대해 좋은 것만 보고 회사의 가치를 높여주어야 한다. 회사가 추구하는 가치를 직원이 잘 이해하고 있음을 표현하면 회사의 방향과 align되는 것이니 아주 유리하게 작용할 것.
    • 포폴에 쓴 것이 정말 내 것이 맞는 지 검증하고자 면접을 하는데 이 때 스토리텔링을 통해 가치를 심자. 시작부터 차근차근 설명해나가는 스토리를 적어나가자. 그 가운데 만난 역경을 이겨낸 경험, 실패한 경험들을 흥미롭게 느낀다.
    • 그렇다고 하지 않은 것을, 할 수 없는 것을 했다고 말하지는 말자... 거짓말은 최악인듯 들키면 완전 망...ㅎ
    • 면접관이 더 효율적이나 어려운 방법을 제안했을 때 아 그거 해보려고 했는데 잘 안 됐어요.. 이러면 탈락. 왜냐면 면접관이 해보고 더 좋은 결과를 이미 냈었던 것이기 때문에. 그 사람이 한 것을 무시하고, 틀렸다고 하는 것이 될 수 있다. 더 좋은 아이디어 주셔서 감사합니다.. 하고 실제로 집 가서 해보기! 실제로 여러 회사에 비슷한 직군으로 면접을 다니게 될텐데 다들 비슷한 기술에 대해서 관심이 있을 것이기 때문에.
      • 직접 실험해보고 실제 좋은 성과를 낸 경우가 있었다면 당연히 이를 적극적으로 어필해야 한다. 그러나 이는 도박..
    • 상대가 문제내기 전에 자신이 먼저 문제를 내고 해결해 나가라!
  • 들어가기 전 : 나의 경험, 나의 방법
    • 예제 코드로 다른 데이터에 적용해보자!
      • 자신이 직접 데이터를 모으고, 전처리하는 과정을 경험한 것을 선호한다. 이 과정에서 문제를 설정하게 되기도 한다.
      • 구현하기 쉬운거 찾아(loss function이 쉽다) 내 코드에 적용시켜 성능이 향상했다는 스토리텔링 굿
      • 뭘 바꿔야할지 모르겠으면 일단 다 추가하자! 그러다 하나씩 빼면서 테스팅하자. 그러다 갑자기 성능이 갑자기 확 나빠지면 그 직전에 뺀 것이 성능을 크게 늘리는데 기여를 한 것이다.
    • 지원하고자 하는 곳과 유사 컨셉으로 수정
    • 무난한 성공보단 역경있는 실패
    • 포폴에 쓴 기술은 아무리 이해못해도 사전적으로라도 꼭 외워두고 가야한다.
  • 들어가면서 : 회사 실적, 회사 방법
    • 회사에서 어떤 일을 하고 싶은가?
    • 회사에서 어떻게 일을 할 것인가?
  • 관련 기업과 세부직군
    • 머신러닝 기업 
      • UPSTAGE
      • MINDs Lab
      • oddconcepts
      • Lunit
      • SCATTER LAB
      • VUNO
      • JLK INSPECTION
      • sendbird
      • Riiid
      • bepro
      • 인공지능만 다루기 때문에 길게 오래 한 프로젝트를 갖고 간다.
    • 기업에서 머신러닝
      • 삼성전자, 종기원, 리서치 등
      • LG 전자, CNS, CTO 등
      • 네이버, 클로바, 랩스, 라인 등
      • 카카오, AI, 뱅크, 엔터프라이즈, 엔터테인먼트 등
      • 조직 변화가 굉장히 빠르다. 하다가 잘 안되면 금방 뒤집어 엎음
    • b2b와 b2c 차이, 최고는 연구조직(상품 팔 필요가 없으니 연구만 하면 됨)
    • 상상도 못한 정체인 기업들
      • 이마트 24 - data scientist
      • LG 화학 - 인공지능, 빅데이터
      • 아모레퍼시픽 - 머신러닝 엔지니어
      • 외주 주고 검수하는 정도가 될 수 있음. 규모가 굉장히 작아서...
    • 직무를 보고 직업을 고르는게 맞다. 개인적으로 생각하는게 다 다르기 때문에
    • 유사직군
      • 프로덕트 분석가
      • 비즈니스 분석가
      • 퍼포먼스 마케터
      • CRM 마케터
      • 그로스 해커
  • 좋은 회사 고르는 법
    • 회사 정보 보는 법(직무, 구성원, 복지 등)
      • 직무가 자세하면.. 좋다 이는 개인 취향으로 보고 끌리면 지원하는게 좋지 않을까?! 
      • 회사 구성원 보기. 능력있는 사람이 있는가?
      • 복지 좋은 회사! 연차 자율성, 출퇴근 제도
    • 잡플래닛, 블라인드 살펴보기
      • 리뷰들 믿을 만하다..
    • 선발대(선배, 친구, 동료)의 후기, 하지만 결국 팀바팀, 사바사
  • 들려주고 싶은 이야기
    • 초봉의 중요성
      • 개발자와 데이터사이언티스트/머신러닝/인공지능 구분
        • 당신 직무가 구분이 없을 수 있다. 그러면 당신은 일반 개발자의 업무 비중이 더 높을 수 있고, 나중에 포트폴리오도 원하는 방향으로 쌓이지 않아 이직이 어려워진다.
        • 일반 개발자가 3800, 머신러닝 개발자도 3800.. 이러면 가면 안 된다. 일에 구분을 두지 않게 될 수 있다.
      • 사람을 얼마나 중요하게 생각하는지에 대한 증거
        • 직원을 중요히 생각하지 않으며 사소한 일부터 큰 일까지 다양한 문제들 발생
      • 연봉 인상은 %로 이뤄진다.
      • 이직할 때 직전 직장 연봉 기준으로 % 인상
      • 좋은 회사 오래 다니는 것보다 이직하면서 연봉을 높여가는게 더 좋다
    • 커뮤니티 활동
      • 많은 회사와 팀들 직무에 대한 정보를 얻을 기회
      • 추천 입사 중요성
      • 입사만 생각할게 아닌 이직도 생각하기
      • 지속적 배움의 기회
      • 새로운 분야에 대한 접근 기회
    • 공모전과 경진대회
      • 요즘 유행하는 것
      • 하지만 아직 인식에서는 실무보단 쉬운 것
        • 실무랑 크게 다르지 않단 것을 (면접관이 하고 있는 일 수준을 낮추는 방법은 절대 안 됨!) 문제 난이도가 높다는 것을 잘 설명
    • 불합격의 의미
      • 서류
        • 실패해도 서류는 포장 꼭 잘하기!!
      • 코딩 테스트
        • 이직 시에도 본다. 계속 공부해야 한다... 코딩은 무조건 공부해야 한다.ㅜㅜ 구글은 디자인패턴도 가고 더 복잡해진다.
      • 기술 면접
        • 내 프로젝트에 대한 기술적 지식이 부족했는지 이해하고 보완해야 한다.
      • 임원 면접
        • 태도 문제. 회사가 원하는 인재상에 맞추지 못했다는 것. 솔직하게 말했는데 맞지 않으면 그래서 불합격하게 된다면 회사 자체가 나한테 맞지 않은 회사인 것이니.. 오히려 좋아
        • 회사를 떠날지에 대한 질문을 할 때가 있다. 대학원 갈 생각있냐? 스타트업할 생각있냐? 이런건 함정 질문. 무조건 아니라고 하기! 맞아도 아니다!

  • 클라우드 활용하는게 이점이 되는 회사가 있고, 아닌 회사가 있다.
    • 욕심이 있는 회사는 자사가 클라우드를 운영함
    • 클라우드 다루는 회사는 한정되어 있다
  • 쿠다 GPU 연산 프로그래밍이 따로 있다. 임베디드 시스템에 많이 쓰임. 자동차에 많이 쓰이는 시스템. 그런 회사 아니면... 쓸모 없음
  • Flask는 소규모 서버 (micro 단위) Django 모듈 이식할 때. 학습한 모델 서빙은 Flask가 어울린다. 그걸 이용해 웹서비스까지 만들면 Django. 근데 대부분 Django는 안 쓰기 때문에.. Flask 연동하는 정도만 해도 괜찮음. 기업 규모가 작으면 Django를 쓰지만...
  • 도커는 구분 없이 다 다룰줄 알아야 한다
  • 쿠버네티스는 배포할 줄 아는 사람이 필요. MLOps 필요. 그러나 나머진 크게 필요하진... 그런데 MLOps가 없는 회사도 많기 때문에 이런 회사는 ML 엔지니어가 이런 부분도 다룸
  • cs 지식 면접볼 때만 필요. 백엔드는 100%해야함 머신러닝 리서처는 안 해도 되는 추세. 페이징같은 것. 세그먼트 가상 메모리 이정도만 물어봄. 이직할 땐 안 물어봄
  • 코딩 테스트를 우선 많이 공부해야 한다.
  • 고프 디자인 패턴 책 읽어서 객체 지향형 프로그래밍 공부
  • google.qwiklabs.com 강의가 있다. 클라우드 관련 빅데이터 관련 강좌를 들으면 실습 클라우드 서비스를 다 제공해준다. 이를 활용하면 대용량 데이터 처리를 하는 데 감을 얻을 수 있을 것
  • 선형대수 공부하자. 딥러닝 행렬 연산에 대해서 이해할 수 있어야 하니까...
    • 인과관계와 상관관계의 차이점이 무엇인가?
    • A/B 테스트란?
  • 계산을 해보자. AI를 안 할 것이라면 새로운 것을 할 것이다. 그러면 새로운 것에 대한 공부를 해서 취업을 하는.. 여기에서의 시간과 AI로 일단 취업하고 거기서 직무를 바꾸는 것에 걸리는 시간.... 공부하면서 느끼는 흥미와 일하면서 느끼는 흥미는 다르기 때문에 일단 취업해서 일해보는 것을 추천
  • 아무것도 안 한 것같은 날들도 분명히 되돌이켜보면 해놓은 것이 있을 것이다. 이것을 잘 포장하면 1년동안 한 일이 의미있는 일로 탈바꿈할 수 있을 것이다!
  • 모델 가속화 - 모델 가지치기(Pruning)
  • Ops는 개발자와 운영진을 연결해주는 역할

+ Recent posts