본문 바로가기

멘탈관리

[2022 회고] 머신러닝 엔지니어로 새로운 시작과 또다른 좌절

22년에는 많은 것이 바뀌었다. 21년 부터 공부하던 AI의 직무로 새로운 커리어 전환을 하게 되었으며. 또다른 커리어 고민들에 둘러 쌓여 하루하루 힘겹게 지냈고 그것이 쌓이다보니 어느샌가 2023년이 되어버렸다.

“이거 아니면 난 죽는다”

21년 처음 AI를 공부 하기로 생각했을때는, 앞으로 계속 할 수 있는 일에 대한 고민과 나만 할 수 있는 기술을 갖고 일을 하고 싶다고 생각했다. 그동안 나는 온전히 인문 사회학적 관점과 미학적인 관점에서 업무를 하고 미디어를 분석 했기 때문에 정량화 될 수 없는 분석을 하다가 나의 약점이라면 약점일수 있는 정량 분석, 즉 내가 두려워하고 어려워 하는것에 도전해보자 였다. 그리고 30대초반이 훌쩍 지난 나이로 시작한 커리어 전환에 대한 포부는 “이거 아니면 난 죽는다”였다.
그런 마음으로 시작한 공부는 인문옛ㄹ학을 하던 나에겐 처음 마주친 미분 적분이 있었고 통계와 수학 공식들을 마주하는 좌절이 있었다. 공부 초반에 24/7 공부만 하려는 의지가 너무 강해서 후반으로 갈 수록 이게 맞나? 다들 잘하는데 나는 이렇게 얼레벌레 알고 있는 이 상황이 맞나? 하는 고민과 스트레스가 나를 짖누르고 21년 12월 우울증이 극에 달한다.

나의 아픔을 널리 알리자!

우울증이 극에 달하자 하루가 어떻게 가는지도 모르게 눈을 감았다 뜨면 일주일이 지나있고, 인지능력이 떨어지며 소화 불량과 기억력 감퇴등 육체적으로도 고통스러운 나날을 보내면서, 나혼자서는 극복 할 수 없겠다,. 도움이 너무 필요하다고 인지 하게 되었다. 그렇게 22년 1월을 맞이 했고, 보통의 사람들보다 무겁고 힘든 몸을 움직여 국가에서 도움을 주는 청년취업도움을 받으면서 취업에 대한 도움 뿐만 아니라 심리 상담 프로그램을 추가로 받게 되었다.
심리 상담의 첫날, 역시 예상했듯이 상담실에 앉아 통곡을 했다. 세상에서 도태되고 그동안 나의 선택들이 모두 그릇된 선택이었을것 같은 두려움을 똑바로 맞이하고 입밖으로 나의 슬픔을 토해냈다.
대인 기피증에 줌으로도 사람들과 소통하기가 힘들었던 몇달을 보내고 전문가의 도움을 받으며 서서히 나를 찾아 갔다.
다시 나의 선택에 당당하고 후회하지 않는 나를 차츰 차츰 찾으며 예전만큼의 커뮤니케이션이 가능해졌다. 그러면서 그동안 공부했던 코드스테이츠에서 이전기수와 1:1 멘토링을 받고 이력서-자소서-포트폴리오  프로그램을 들으면서 점점 자신감과 취업을 할 수 있다는 막연한 긍정적 감정이 피어나기 시작했다.
그 심리-정신 전문가의 상담과 취업 전문가의 취업 상담과 응원등을 아무런 의심없이 받아들일수 있게 되었고 나의 아픔을 친구들을 만나면서 말하기 시작했다.
지난 1년여간 어떤 어려움을 겪었는지 공부하면서 어떤 슬픔을 맛보았는지, 취업을 준비하면서 어떤 좌절감을 통해 우울증이 극심해지며 다시 일어나게 된 나를 내가 의지하고 믿는 친구들에게 하나씩 말하기 시작했다.
이러한 과정에서 나는 조금더 단단해지고 세상과 나를 똑바로 볼 수 있게 되었다. 중간중간 개인 프로젝트와 사람들을 모아 팀 프로젝트를 진행하면서 하루의 시간을 50% 공부 30% 취업 준비 20% 운동으로 하루하루를 건강하게 보낼 수 있게 되며 점점 나를 제대로 찾을 무렵 면접에 합격하게 되었다.

비정형 데이터 분석만 했던 제가 머신러닝 엔지니어요?

공부를 하면서 안다루어 본것은 아니지만 가장 어렵고 아직도 갈길이 멀구나라고 느끼던 개발자가 되었다. 나는 데이터 사이언티스트를 꿈꾸는 (비정형 데이터 기반)의 데이터 분석가 이력서를 넣었고 면접에서도 정형데이터는 다루는것이 어렵다는것을 말했는데 그날의 운이 너무 좋았던것인지. 머신러닝 엔지니어로 취업을 하게 되었다.
8월 부터 일을 시작하고, 서른의 중반 신입으로 들어간 회사의 사라들은 너무 좋았다. 그렇기 때문에 내가 잘 할 수있을까 했던 분야기는 했지만 다른 게임회사보다 지금 다니는 회사를 선택했다.
데이터 사이언티스트로서 엔지니어링부터 해보는것이 궁극적으로 큰 도움이 될것 같았다.
하지만 역시 나는 초짜 신입이고, 진짜 회사의 데이터를 다루어 보는 것은 처음이었다. 출근 시간 한시간~한시간반 전에 도착해서 그날의 할일을 체크하고 공부를 미리 하고 하루의 업무를 시작했다. 모자르다 싶은 부분이 있다고 생각하면 따로 수업도 끊어서 들어보고 부단히 노력했다.
시기가 좋지 않았다, 회사의 대대적인 앱/웹 리뉴얼 시기와 맞물려 신입 초짜바리를 가르쳐줄 사람은 없었고 알아서 혼자서 해야하는 물어보는것도 너무 눈치가 보여서 혼자 고군 분투하는 3개월을 보냈다. 그리고 신입에게는 가혹할 수도 오히려 좋을 수도 있을 만큼의 업무가 주어졌다.
데이터 분석을 매주 하고 인사이트를 만들어봐야했으며 월간 데이터를 정제해서 인사이트를 도출 할 수 있는 분석을 해야했고. 하나의 머시러닝 프로젝트를 오롯이 맡아 하게 되었다.
해보고 싶던거 다하게 해주는데, 그게 신입이 결과를 내기에는 너무나도 무리한 업무량이었다. 제대로된 결과를 낼 수 없었고 나의 문제점을 되짚어 보는 시간을 갖게 되었다.

그래서 뭐 어쩌려고?

메타인지 메타인지… 너도 나도 부르짖는 메타인지. 나를 알고 적을 알면 백전백승!
하지만 나는 나를 잘 몰랐다. 생각을 할 수 없었고 그날그날 해야할 분량을 처내기에 너무 바빴다. 일단 핑계는 여기까지 하고…. 나의 문제를 RECAP 해본다.

  • 1. 통계/회계 분야의 데이터를 잘 읽지 못한다.
  • 2. 정형 데이터를 분석 할때 실수 가 많고 분석 인사이트에 너무 많은것을 넣으려 한다.
  • 3. 필요 없는 데이터도 활용하려 한다.
  • 4. 내 데이터에 대한 확신이 없다.


일단, 업무 초반에는 파이썬에 sql문을 넣어 사용하는 법을 처음 배우고 이전 담당자가 했던 분석 그대로 복붙하고 일단 그 데이터를 어떻게 봐야하는지 제대로 읽지도 못했다. 그날그날의 코딩조차 버거웠기 때문에…. 도메인 지식도 습득하면서 데이터를 읽어야 하는데 잘 보이지 않았다. 아무리 설명을 들어도 성에 차지 않았고 뭐라고 하는지 모를 말만 하는 사수가 그저 천재같고 나는 바보 같았다. 결국은 그나마 내가 잘 할 수 있다고 생각했던 데이터 분석 조차 제대로 하지 못하는 사람이 되어버려있었다.
그래서 나는 뭐 어쩌려고 이 일을 하려고 했는지 혼란의 카오스속에서 또다시 불안증이 올라 오기 시작했다. 추가 공부는 무슨 매일매일의 업무를 소화하는것도 버겁고 힘들어 매일 야근을 자처하고 앱리뉴얼하는 선배들 속에서 데이터 분석을 잡고 씨름하면서 선배들의 틈이 보이는 순간 모아놓았던 질문을 쏟아내고 혼자 해보고를 반복했다.
그래도 잘 되지는 않았다. 제대로 문제를 인지할 시간이 부족했다.
또다시 자책의 시간을 가지면서 내가 이 커리어를 이어나가는게 맞는지 고민이 될 무렵, 해외에서 데이터 사이언티스트로 활동하는 나의 멘토에게 이 상활을 모두 읊어주며 도움을 청했다.
결론은 지금의 업무량이 너무 많기 때문에 벌어진 일이었다. 물론 나의 부족함도 있겠지만 지금의 업무 하나하나는 보통 팀을 짜서 진행되는 업무들이니 너무 자책하지 말고 할 수 있는한 최선을 다해보자고 서로의 행운을 빌어주며 상황을 정리해 주었다. 내가 가려는 길을 미리 가본 사람이 곁에 있는것은 너무나도 큰 복이다.
그렇게 3개월가량을 혼란의 카오스속에서 보내고 업무를 대하는 태도를 바꾸었다.

성실함은 능력과 관계 없다.

성실함은 인성이다, 능력과는 관계 없다. 내가 제일 싫어하는 말이 애는 착한데 일을 못해 라는 말인데… 지금 내꼴이 꼭 그런것 같았다. 비참하고 스스로 자책하면서 이 문제들을 어떻게 풀어야할지 곰곰히 생각해 보았다.
우선 체력이 생각하는 힘에 큰 영향을 주므로 체력을 잘 분배해야 했다.
무리하며 출근 시간 1시간전까지 출근하지 않고 체력을 조금 더 비축했다. 매일 아침의 기분을 좋게 만들기 위해서 출근전 카페에 들려 달달한 음료를 한잔 했다. 앉아서 오늘의 기분 좋을일들을 떠올리려 애썼다.
일에 압도 당하지 않으려고 점점 거리를 둬보기 시작했다. 야근도 최대한으로 안하고 정해진 시간안에 내가 할 수 있는 최대한의 최선을 다했다.
점점 공부를 해야할것과 내가 파보아야할것들이 하나씩 보이기 시작했다.
능력을 키우기 위해서는 일에 압도당하지 않아야 한다. 성실함이란 이름으로 게으른 성장을 하고 있었다.

그래도 일보 전진
그래도 22년 했던 일들을 정리해보자
1. NLP 팀 프로젝트 : 22년 대선의 주요 키워드를 통해 누리꾼 및 언론의 키워드를 통해 대선과 공약의 상관관계 분석
- 데이터 크롤링 (트위터)
- 각 후보의 키워드로 살펴보는 공약과 누리꾼들의 민심 확인
- 대선의 주요 키워드였던 여성부폐지 공약이 대선에 미친 결과 확인
- 각 키워드별 EDA를 통해 주요 단어를 선별 각 후보별 가장 영향이 컸던 단어 확인
- 주요 언론의 보도 자료와 트위터에서의 주요 언급 단어의 관계 분석
- 워드 클라우드를 통해 키워드 확인
- 대선전 4주동안 각 주별 주요 이슈 발화 체크
- 결론 : 비방과 불평등의 대선, 주요 후보들의 공약(여성부폐지에 대한 이슈와 같은)에 대한 언급 보다는 상대 후보에 대한 비방과 무지성 후보 추천으로 기울어진 대선이었다.
2. 데이터 분석 (mySQL, Python, pandas, Tableau)
- 앱/웹의 로그 백업 데이터 활용을 통해 주간 로그인(앱오픈)/회원가입/매물 클릭/ 매물 등록/ 샌드버드 발생량 분석 및 인사이트 도출.
- 각 유저의 종류별 활동성 지표 분석 : 각 유저의 종류별로 주요한 활동 지표를 찾고 이에 따라 활동성 지표 확인 및 유저 여정 분석
- 앱/웹 로그 백업 데이터를 활용한 대시보드 작성(TABLEAU)
- 국가누리통계 자료 정제 및 분석 - 타겟 item의 월별 추이 분석
- 배치성 데이터 와 사내 데이터 조합을 통한 데이터 분석 및 인사이트 도출
- 배운점:
1. 분석및 인사이트 도출을 위한 계획 잡기
- 타이틀을 잡고 세미 타이틀을 잡고 시작(목록부터 만들기_)
- 데이터를 분석하면서 동시에 정리 하기.
- 수식걸어서 계산한 내용은 수식에 대하여 이해 풀어서 쓰기, 검증의 절차로 생각 하기.
- 데이터에 대한 이해가 선제 되어야 함.
- rename은 바로 바로 바꾸어서 헷갈리지 않게.
- 실서버 데이터는 바로바로 sql로 테이블 불러오는것도 좋음.
- 각 시트에는 분석한 데이터별 정리
- OVERVIEW 시트에는 결과만 정리.
- analysis basic PROCESS
     1. Tiitle과 주제를 정하고.
     2. 사용할 DATA를 정하고 각 데이터에서 필요한 부분 체크
     3. 사용할 DATA에서 필요부분으로 무엇을 할지 각각 체크 하여 정리
         예)
1. DATA
                 - 1.sendbird
                     - Call
                 2. BDB : 리텐션, funnel
                     - App open,
                     - 매물페이지 open
                 3. 실DB 회원가입 변동률
                     - 회원가입 : 각 유저 종류별로
- 앱 업데이트와 다운로드는 광고비발생 즉 광고 유무와 밀접한 관련이 있기 때문에 해당 데이터를 함께 보는게 좋음 (구글 데이터 등)
4. 만들어놓은 테이블의 기준 테이블을 잡고 그것에 맞춰서 모두 merge 혹은 concat
5. 리텐션 분석 (가입일로부터 주ㅠ요 활동에대한 발생량 확인)
2. github 를 통한 협업 및 브랜치 관리
- git checkout -> master -> fetch 최신화화 -> pull 최신화 가져오기  -> 브랜치 만들기 git checkout -b 브랜치이름/만들이름 3. 추천 서비스 기획 및 진행 (ML)
- 설문기반 추천 시스템 기획 및 분류 정의
- 각 그룹별 데이터 분석
- 데이터 정제
- API 설계
예 ) * API - 로그수집 설계
     1. DB Table을 하나 만든다 -> log table
         1. Column name. DataType, Location으로 나누어 구상.
     2. 고려사항
         1. API&DB
         2. Description
     3. 파이썬 으로 가지고 와서 creat table 쿼리 실행
     4. 중간에 만든 테이블이므로
     5. 기존의 데이터를 가지고 와서 INSERT
         1. 기존필요한 테이블의 컬럼을 가지고 와서 하나의 데이터 타입을 지정
         2. Data의 컨벤션을 유지하기 위한 컬럼을 함꼐 가져와서 오더 바이로 진행 한다.
         3. INSERT INTO TB_LOG
     6. 배포전에 위의 사항을 다 해놔야한다
         1. 그러므로 개발서버에서 먼저 진행하는것이 중요
     7. API 수정
         1. 자바는 동기
         2. 비동기로 강제로 만들어서 순차적으로 로그가 넘겨질 수 있도록 한다 (waterfall 함수)
     8. 유저 타입별로 - 회원가입 js 에 로그 쌓이게 넣어주기

23년 Quick Plan


1. 매주 회고를 통해서 업무에 대한 이해와 아쉬운점들을 기록한다
- 이력서와 자소서와 포트폴리오를 꾸준하게 업데이트 하는 방식도 좋음
2. 퇴근하고 꼭 개인 공부를 진행 할것 - 예) 프로그래머스 테스트 min 5개 풀기, 인문학적 책 읽기, 개발 관련 책읽기
3. 비즈니스 데이터 분석에 대한 이해를 높이기 - 예 ) 비즈니스에 사용되는 주요 지표들을 정리 하기
4. API 이해력 높이기, 데이터 베이스 설계에 대한 체계 익히고 실제로 활용하기
5. 주말중 하루는 영화 비평 작성하기
6. 꾸준히 운동하고 절식 하기

그래서 22년 한해는 불안을 마주하고 한보 전진했다. 애써 나의 느린 업무 처리 속도를 꾸짖지 않을것이다. 스스로에게 너그러워 질것이다. 충분히 외부에서 채찍질을 하므로…