Upgrade to Pro — share decks privately, control downloads, hide ads and more …

회사는 어떤 사람을 데이터 분석가로 채용하고 싶어하는 것일까?

Sunmi Yoon
October 19, 2018

회사는 어떤 사람을 데이터 분석가로 채용하고 싶어하는 것일까?

2018 데이터야놀자 트랙2 10시 발표 자료입니다.

한글로 쓰여진 직무설명서를 데이터분석하면서 겪었던 스토리와 분석 결과를 담았습니다. 많은 직무설명서들 중에도 '데이터 분석가'과 관련한 공고에 초점을 맞췄습니다. 한국어 데이터 처리, 분석 방법에 대해 관심 있는 분들에게도 재미있는 발표가 되었으리라 생각합니다.

키워드: 직무설명서, 인사데이터, 취뽀(?), KoNLPy, Pre-trained word vectors, NLP, t-SNE, TF-IDF
데이터야놀자 프로그램 페이지: https://datayanolja.github.io/program.html
데이터야놀자 연사 및 발표 소개 페이지: https://datayanolja.github.io/speakers/sunmiyoon.html

Sunmi Yoon

October 19, 2018
Tweet

More Decks by Sunmi Yoon

Other Decks in Technology

Transcript

  1. 소개 윤선미 [email protected] https://www.linkedin.com/in/yoonsunmi/ 배송 시스템 부서에서 데이터 분석 안녕하세요.

    만 2년차 주니어 데이터 분석가 윤선미입니다. 데이터야놀자2018 트랙2 10시 발표자료입니다. 자료 공유를 요청 해 주신 분들이 있어 이렇게 주석을 달아 공개하게 되었습니다.
  2. 발표의 목적 • 오늘 발표를 들으러 온 사람들이 직무설명서(Job Description)와

    친해진다. • 직무설명서 데이터화에 관심을 가지게 한다. • 한국어 데이터 처리, 분석 방법에 대해 약간의 지식을 전달한다. • 앞으로 할 프로젝트 같이 하자고 꼬셔본다.
  3. 직무설명서에 대한 오해(1) 정작 필요한 정보는 없을 것이다 (https://imgflip.com/i/1252m3) 이

    발표를 계기로 얼마전에 채용 플랫폼 운영하는 스타트업에 계시는 분과 이야기를 나누었는데요. 이렇게 직무 설명서를 표현 하시더라구요. ‘JD는 팀장님 또는 인사팀의 이상형에 대해서 서술 해 놓은 문서다’ 실제로 채용이 된 사람이 가지고 있는 스펙과 JD에 서술된 스펙에 많은 차이가 있을 수 있다는 건 사실입니다.
  4. 샘플 리디(RIDIBOOKS) 데이터 애널리스트 (https://www.wanted.co.kr/wd/2075) • 주요업무, 자격요건, 우대사항 에

    대해서 기술 • 사용 기술(SQL, R, Python 등) • 요구되는 실무 경험 • 관련 전공 • 회사에서 제공하는 특혜, 복지 • 문화와 비전에 대한 정보를 제공하기도 사용하는 단어에는 차이가 있을 수 있지만, 어느 직무설명서나 주요업무, 자격요건, 우대사항을 기본 골자로 합니다.
  5. 요즘 직무설명서를 누가 읽죠? Feat. 15년차 개발자 발표내용에 대한 주변인들의

    피드백을 받으면서 가장 많이 받은 질문입니다. 뒷장을 보시면 아시겠지만 일면 타당한 주장입니다. 직무설명서가 정작 잘 표현해야하는 타겟 포지션에 대한 정보를 거의 제공해주지 못한다는 것입니다.
  6. 요즘 직무설명서를 누가 읽어요? 요즘 그걸 누가 읽냐 파 (15년차

    개발자) • 정작 필요한 정보는 없다. 특히 이직은 그 회사에 다니고 있는 사람에게 물어 가는 것이다. 직무설명서만 읽고 지원하기에는 내용이 너무 부실하다. • 정직하게 쓰지 않을 것이다. • 기본도 못하는 직무설명서가 너무 많다. • 어차피 내용을 보면 다 비슷비슷하다. 차이점이 보이지 않는다. • 채용하는 사람들도 자기들이 어떤 사람을 뽑고 싶은지 모른다. 그래도 다 쓸모가 있다 파 (2년차 분석가) • 나는 학사 신입 또는 비전공자라 그나마 정보를 얻을 수 있는 방법은 모두 활용해야한다. • 직무설명서에 쓰여있는 단어 하나하나가 그냥 쓰여진 것이라고 생각하지 않는다. 외부로 공개되는 문서는 그 조직 문화, 분위기의 전반을 보여준다. • 사용 기술에 대한 설명은 구체적인 편이다. • 각 직군에 대한 인식의 변천사를 볼 수 있는 가장 객관적인 문서다.
  7. 어쨌든 많은 사람들이 읽고, 정보를 얻고, 인생의 중요한 결정을 내렸을

    수도 있지만 분석을 해 본 사람은 (as far as I know) 없었다! 데이터를 볼까요? 발표가 끝나고 알았습니다! 비슷한 것을 시도 해 본 사람이 있었구나! 발표 끝나고 험난한 직무설명서 데이터 수집기를 들려주신 그분의 연락을 기다립니다…
  8. 데이터 수집 손수집 • 공고 1개 당 약 10줄의 정보

    • 11개 서비스 • 70개 회사 • 103개의 포스팅 • 1152줄의 정보 네이버채용, 데브시스터즈채용, 로켓펀치, 사람인, 카카오채용, 링크드인, 원티드, 잡플래닛 등
  9. 데이터 수집 • Business Analyst: 4 • Data Analyst: 34

    • Data Scientist: 21 • Growth Hacker: 6 • Machine Learning Specialist: 21 • NLP Specialist: 5 • Recommenation Specialist:5
  10. 데이터 수집 힘들었던 점 • 왜 회사 공고를 이미지 파일로?

    • 데이터의 비정형성 • 데이터 소스의 다양성 • 어디까지가 분석가고, 어디부터는 개발자인가? 역시 빠르게 프로토타이핑 분석을 해보기에는 손 크롤링이 좋았습니다. 채용 플랫폼이 다양하고, 플랫폼을 사용하지 않은 공고들 또한 분석에 포함시키고 싶었기 때문에 크롤링과 데이터 정제를 한 방에 해결하는 손수집을 택했습니다. 퇴근 이후 시간 정도 사용하여 이틀 걸렸습니다.
  11. 데이터 수집 원티드 크롤링 • 2848개의 공고 • 586개의 회사

    • 1922개의 포지션 원티드 웹서비스에 2018년 10월 17일 기준 올라와있던 모든 공고 데이터 정형화가 잘 되어있는 원티드는 지인 찬스로 데이터를 전부 모아 주요업무, 자격요건, 우대사항으로 카테고리 나누는 작업까지 진행했는데요. 이번 발표에는 이 자료를 활용하지 못해서 아쉬웠습니다. 다음을 기약하죠.. 마침 캡쳐 할 때 메인 광고로 제가 요즘 애용하는 서비스인 타다가 올라와있었네요. 참고로 저 쏘카 직원 아닙니다.
  12. Word Cloud for Total document 도대체 언제적 디자인인지 모르겠는 워드클라우드입니다.

    하지만 역시 스트링 데이터 보여주기에는 이만한게 없는 것 같아요. 일반명사와 영어단어를 나누어서 그려보았습니다. 영어단어는 주로 분석언어, 데이터베이스 관련 용어 등 기술용어들이 많이 보입니다.
  13. 분류작업 ['데이터분석가' 'Business Analyst' '데이터 분석가(Growth hacker)' '데이터 애널리스트' '데이터

    분석가' '컴퓨터비전 및 머신러닝 전문가 영입' '데이터 분석 담당자' '머신러닝 엔지니어' '데이터 과학자' 'Growth Hacker' '교육 데이터 분석' '데이터 사이언티스트' '게임 데이터 분석가' 'NLP 분석가' 'Data Scientist' 'Data Analyst' 'NLP/NLU 엔진 개발자' '추천 알고리즘 개발 전문가' '머신러닝 개발 담당자' '머신러닝 리서치 엔지니어' 'Data Scientist & Big Data Engineer' '개인화서비스 Data Scientist' '딥러닝 / 머신러닝 엔지니어' 'Machine Learning Engineer' '자연어 처리 / 머신러닝 엔지니어' '비즈니스애널리스트(BA)' '데이터 엔지니어 / 사이언티스트' '추천 시스템 개발 데이터 엔지니어 / 사이언티스트' '데이터 분석가(Data Scientist)' '데이터사이언티스트' '머신러닝 데이터 사이언티스트' '그로스 해커' '그로스 해커 Growth Hacker' 'Data Analyst / Data Scientist' '데이터 분석 전문가 / Data Scientist / Data Analyst / Director' '데이터 과학자 (Data Scientist)' 'Growth Hacker, 그로쓰해커 (시니어)' '머신러닝 Platform 개발' '자연어처리/머신러닝엔지니어' '머신러닝 사이언티스트' 'Business Intelligence Analyst' '데이터 분석 & Anomaly Detection' '추천 알고리즘 연구/개발' '통계 전문가' 'Algorithm 전문가' '빅데이터 분석가' '데이터 사이언티스트(데이터 분석가)' '추천 통계분석/데이터사이언티스트' '머신 러닝을 이용한 자연어 컨텍스트 이해 기술 연구/개발' 'Data Researcher' '데이터 사이언스 전문가 및 머신러닝 전문가' '검색 데이터 분석 및 머신러닝 분야' '자연어 처리 전문가' '추천 시스템 연구/개발' 'AD Platform 연구 및 개발' '광고 어뷰징 방지 Platform 연구 및 개발' '인공지능 빅데이터 분석' '빅데이터 처리 및 모형 개발' '통계/데이터 분석(DA) 담당자' '데이터분석 전문가' '머신러닝 전문가' '데이터 분석 컨설턴트(Data Analyst/Data Scientist)' '데이터분석' '빅데이터 분석/개발 전문가 채용' '데이터 분석' '데이터 엔지니어 & 사이언티스트'] 직무설명서 제목들을 모아봤습니다. 생각한 것보다 상황이 심각합니다. 분류가 가능하긴 할까 싶습니다.
  14. 분류작업 [Data Analyst, Data Scientist, Business analyst, Growth Hacker …]

    일종의 직업병.. 카테고리를 만들어야겠다고 생각했습니다. 그리고 각 카테고리 별 차이점을 보여주고 싶었습니다. 예를 들어 Data Analyst 와 Data Scientist 사이에는 어떤 차이점이 있는가? 같은 질문에 답변을 하고 싶었어요. 데이터 분석 직군 하위의 많은 세부 직군들을 어떻게 분류해야 할지 고민이 시작됐습니다. 머신러닝 엔지니어와 자연어처리 전문가는 같은 카테고리인가. 같은 고민을 했습니다.
  15. 분류작업 • 직군별 주요업무, 자격요건, 우대사항의 차이를 보여주고 싶었음 •

    임의로 카테고리를 나누고 싶지는 않았음 • 공고 제목으로 클러스터링을 해보자!
  16. 분류작업 • 직군별 주요업무, 자격요건, 우대사항의 차이를 보여주고 싶었음 •

    임의로 카테고리를 나누고 싶지는 않았음 • 공고 제목으로 클러스터링이 될까?
  17. Pre-trained Word Vectors • Word Vectors?: 간단하게는 텍스트를 N개의 숫자로

    변환한 것 • 의미가 비슷한 단어일수록 가깝다. • 텍스트를 숫자로 변환하면 기존의 수학 연산(더하기, 빼기, 평균 등)을 할 수 있게 됩니다! • 사용한 자료: Pre-trained word vectors of 30+ languages(https://github.com/Kyubyong/wordvectors) • Word2vec, fastText 두 가지 버전을 모두 제공하는데 w2v을 사용 • Spec: Vector size: 200 / vocabulary size: 30185 / corpus size: 339M
  18. Hangulization 한글과 영어가 함께 들어있는 pre-trained embedded vector를 찾지 못했어요.

    그래서 아예 한가지 언어(한글)로 공고 제목들을 바꿔줍니다. 굳이 이렇게 해야하냐고 물어보시면… 전 나름 재밌었다는 답변밖에는… 데이터가 많지 않아서 해 볼 수 있는 시도였습니다. 나중에 한글문서에 약간씩 섞여있는 영어정도는 함께 트레이닝 시킨 embedded vector 만들어 보고 싶다는 생각도 했습니다. 직무설명서를 잔뜩 모아서 직무설명서 분석용 벡터를 만들어도 재밌겠네요.
  19. t-SNE • 단어 벡터와 같이 고차원 데이터를 시각화 하는데 인기있는

    알고리즘 • 데이터 차원축소(Dimensionality reduction)의 방법에는 t-SNE만 있는 것은 아닙니다. 대표적인 방법으로 PCA(Principal component analysis)도 있습니다.
  20. 실제결과 좌절을 뒤로하고 각 노드마다 어떤 값들을 가지고 있는지 찍어봤습니다.

    명확한 클러스터가 보이지는 않았지만 그래도 비슷한 직군들끼리 모여있는 것을 볼 수 있습니다!
  21. 공고 내용으로도 해보자 사실 공고의 제목에는 많은 내용이 담겨있지 않습니다.

    데이터 분석가가 공고 제목이었다면 기껏해야 [데이터, 분석가] 이렇게 두 단어만이 정보로서 사용됩니다. 이 정도 정보만을 사용하여 확인한 군집 양상으로 직군 간의 유의미한 차이가 있다고 설명하기에는 근거가 부족하다고 생각했습니다. 그래서 공고 내용 전체를 활용하여 다시 한 번 군집 여부를 보기로 했습니다.
  22. 일반명사와 영단어 추출 • 일반명사(NNG) • 영단어(SL): 기술용어 (예. Python)

    • 예시 넥슨코리아/데이터분석가/자격요건 - ‘SQL 기본 활용 능력’ - NNG: [기본, 활용, 능력] - Sl: [SQL] Korean POS tags comparison chart: see references
  23. 사용 패키지: KoNLPy / Mecab 왜 많은 KoNLPy 클래스들 중에

    Mecab? (KoNLPy comparison between classes: https://konlpy- ko.readthedocs.io/ko/v0.4.3/morph/#comparison-between-pos-tagging-classes) 한국어 정보처리
  24. TF-IDF • TF(단어 빈도, term frequency)는 특정한 단어가 문서 내에

    얼마나 자주 등장하는지를 나타내는 값. • 하지만 하나의 문서에서 많이 나오지 않고 다른 문서에서 자주 등장하면 단어의 중요도는 낮아진다. • DF(문서 빈도, document frequency)라고 하며, 이 값의 역수를 IDF(역문서 빈도, inverse document frequency)라고 한다. • TF-IDF는 TF와 IDF를 곱한 값으로 점수가 높은 단어일수록 다른 문서에는 많지 않고 해당 문서에서 자주 등장하는 단어를 의미한다. • TF(Term Frequency), IDF(Inverse Document Frequency)를 계산하는 방법에는 여러가지가 있다. (ex. Inverse document frequency, Inverse document frequency smooth, probabilistic inverse document frequency 등)
  25. 요즘 직무설명서를 누가 읽어요? 요즘 그걸 누가 읽냐 파 (15년차

    개발자) • 정작 필요한 정보는 없다. 특히 이직은 그 회사에 다니고 있는 사람에게 물어 가는 것이다. 직무설명서만 읽고 지원하기에는 내용이 너무 부실하다. • 정직하게 쓰지 않을 것이다. • 기본도 못하는 직무설명서가 너무 많다. • 어차피 내용을 보면 다 비슷비슷하다. 차이점이 보이지 않는다. • 채용하는 사람들도 자기들이 어떤 사람을 뽑고 싶은지 모른다. 그래도 다 쓸모가 있다 파 (2년차 분석가) • 나는 학사 신입 또는 비전공자라 그나마 정보를 얻을 수 있는 방법은 모두 활용해야한다. • 직무설명서에 쓰여있는 단어 하나하나가 그냥 쓰여진 것이라고 생각하지 않는다. 외부로 공개되는 문서는 그 조직 문화, 분위기의 전반을 보여준다. • 사용 기술에 대한 설명은 구체적인 편이다. • 각 직군에 대한 인식의 변천사를 볼 수 있는 가장 객관적인 문서다. 어차피 공고들간 내용이 다 비슷비슷하다는 ‘요즘 그걸 누가 읽냐 파’의 주장을 데이터를 통해 반박할 수 있게 되었습니다!
  26. 분류작업 [Data Analyst, Data Scientist, Business analyst, Growth Hacker, Machine

    Learning Specialist, Recommendation Specialist, NLP Specialist] 앞에서 명확한 클러스터가 보이지 않았기 때문에 제 주관이 아예 배제되었다고 말 할 수는 없어졌지만, 데이터 분석 직군 하위의 다양한 포지션들을 이런 카테고리로 나누어 볼 수 있었습니다.
  27. 주요업무 Business Analyst Data Analyst Data Scientist Growth Hacker Machine

    Learning Specialist NLP Specialist Recommendation Specialist 지표 설계 기반 개선 모델 처리 추천 비즈니스 기반 처리 채널 연구 문제 알고리즘 기반 도출 통계 통계 알고리즘 자연어 시스템 필요 게임 기법 온라인 검색 모델 포스트 도출 업무 모델링 도출 기반 기술 예측 Document 전반에 걸쳐 많이 등장하는 단어인 ['분석', '데이터', '경험', '개발', '관련', '서비스', '러닝', '이상', '활용', '머신’] 은 표에서 제외 각 카테고리별로 주요업무에서 등장하는 단어들은 이런 차이를 보였습니다. Business Analyst 공고에서는 비즈니스, 지표라는 단어를 많이 사용하면서 비즈니스와 도메인 지식에 대한 중요성을 강조합니다. 오른쪽에 위치한 Machine Learning Specialist, NLP Specialist, Recommendation Specialist 들은 상대적으로 알고리즘, 모델 등 엔지니어링 용어를 다른 직군들보다 상대적으로 많이 사용합니다. 비즈니스 애널리스트가 CEO에 가깝다면, 오른쪽 세 직군들은 CTO에 가깝다고도 얘기 할 수 있을 것 같습니다.
  28. 자격요건 Business Analyst Data Analyst Data Scientist Growth Hacker Machine

    Learning Specialist NLP Specialist Recommendation Specialist 능력 가능 능력 능력 경력 사용 능력 이해 능력 통계 이해 전공 도구 가능 통계 경력 이해 앱 사용 유경 언어 기술 통계 가능 원활 분야 프로그래밍 논리 이해도 지식 업무 험자 능력 딥 구현 Document 전반에 걸쳐 많이 등장하는 단어인 ['분석', '데이터', '경험', '개발', '관련', '서비스', '러닝', '이상', '활용', '머신’] 은 표에서 제외 자격요건은 공통적으로 통계를 강조하는 걸 볼 수 있었습니다. 혹시 표에 이상한 단어들이 보이시나요. ‘험자’, ’유경’ 같은 단어들이 어떻게 출현하게 되었는지 함께 유추해보는 것도 발표장에서 할 수 있는 재미있는 커뮤니케이션 중 하나였습니다. 표에는 없지만 ‘징’이라는 단어도 꽤 많이 출현했는데요. 어디에서 온 단어일까요? 형태소 분석기의 한계로 잘못 태깅 된 명사들을 보며 즐거워 할 수 있는 건 아직 이 데이터를 이용해서 서비스 개발을 하지 않았기 때문이겠죠…
  29. 우대사항 Business Analyst Data Analyst Data Scientist Growth Hacker Machine

    Learning Specialist NLP Specialist Recommendation Specialist R R Python R Spark AWS International Python Python learning Hacking AI ML Recommender BI Hadoop Spark Python learning C Conference SQL Spark R SQL Hadoop ICCV Prediction SQL Data Scala AAAI Mining Document 전반에 걸쳐 기술 용어는 ['python', 'r', 'data', 'learning', 'sql', 'spark', 'machine', 'tensorflow', 'hadoop', 'deep'] 순으로 많이 사용됨 분석 언어로는 Python과 R, Scala 등이 보였고, 이외에도 Hadoop, SQL, NoSQL 등 데이터베이스 관련 용어도 많이 출현 특히 NLP, 추천 Specialist 직군에 AAAI, ICCV 등 Top tier 컨퍼런스 관련 단어들이 등장
  30. 이외에도 • 프로그래밍 언어 or 분석용 언어: R, Python, Scala,

    Java, SAS • 데이터 베이스 관련: SQL, MongoDB, Oracle, MSSQL, Firebase, Impala, Presto, hbase • 대규모 데이터 처리 관련: Spark, Hadoop, Hive, PySpark • 머신러닝 & 딥러닝 관련: Tensorflow, PyTorch, Keras, Caffe • 분석툴: Tableau, Zeppelin • 분석 용어: Classification, NLP, Regression, Funnel, Clustering, Reinforcement, PCA • 도메인: AD, language, image • 컨퍼런스: AAAI, ICCV, NIPS, ACM, ICML • 코워킹 도구: Github, Git 등등이 출현했습니다.
  31. Future work • 직무설명서 분석의 서비스화: 직무설명서 작성을 어려워하는 많은

    Tech Leader, HR 담당자들을 위해 적절한 기술 용어 추천, 직무설명서 평가 등 마이크로 서비스화가 가능한 포인트들에 대해 고민 • 시간에 따른 직군에 대한 인식과 자격요건 등의 변천사 분석 • 특히 데이터 분석 직군으로 커리어 디자인을 하고싶은 사람들을 위한 정보 정리와 제공 • (저에게는 완전히 새로운 분야인) Graph theory & Network Analysis 이용해 JD 분석. JD간의 관계 등을 명확하게 보여줄 수 있을 것이라 예상. • Language가 2개 이상(특히 한글과 영어)일 때 embedding vector 활용 방법에 대해 고민 • 영어 Job description 분석 등 대상 언어 넓히기
  32. References • KoNLPy official: https://konlpy-ko.readthedocs.io/ko/v0.4.3/#indices- and-tables • Pre-trained word vectors

    of 30+ languages: https://github.com/Kyubyong/wordvectors • TF-IDF(blog): https://nesoy.github.io/articles/2017-11/tf-idf • TF-IDF(Wikipedia): https://en.wikipedia.org/wiki/Tf%E2%80%93idf • Korean POS tags comparison chart: https://docs.google.com/spreadsheets/d/1OGAjUvalBuX-oZvZ_- 9tEfYD2gQe7hTGsgUpiiBSXI8/edit#gid=0
  33. Q&A e-mail: [email protected] You can find my LinkedIn and Git

    account in datayanolja speaker’s profile 발표자료, 데이터, 코드 정리해서 업로드 계획하고 있습니다