[회고록/2021] AI 개발자에서 Back-End 개발까지

최진영·2022년 1월 3일
2

"할 수 있다"





2019년 12월에 서울에 올라와 강의를 하다가, 실력의 부족함을 깨닫고 2020년 6월에 입사한 첫 회사를 시작해서 2020년 11월에 퇴사했다. 곧바로 현재 재직 중인 회사에 바로 입사를 하였고 개발자의 경력으로서 꽉 채운 첫 1년이다.

1. 회사

2020년 초 팀원은 나 포함 5명 이였다. 당시에 TIPS 투자를 준비 중이였고, 인공지능 관련 지식이 상대적으로 많았 던 내 역할이 꽤 중요한듯 보였다. 개발자로는 프론트엔드, 백엔드 그리고 나 이렇게 3명 이였고 지금은 TIPS투자를 받아서인지 개발자의 비중이 높은 편이다.

1-1 상반기 업무

내가 처음 채용 됐던 포지션은 추천시스템 개발이였는데, DataBase에 대한 지식이 부족했던 나는 DataBase에 대한 이해와 함께 추천시스템 개발을 하기 위한 다양한 시도를 했다.

1-1-1 추천시스템



첫번째 시도는 추천을 위한 데이터를 가지고 [Python을 이용한 개인화 추천시스템](Python을 이용한 개인화 추천시스템 ) 이라는 책을 읽고 실제 구현을 했다. Collaborative Filtering, Matrix Factorization, Deep Learning을 활용하여 DataBase에 적용할 수 있는 데이터를 바탕으로 실제 적용 했다.



하지만 예제 데이터와 DataBase의 데이터는 달랐다. 가장 큰 차이는 예제는 대부분 평점과 같이 item에 대해서 1~5점 까지 평가한 데이터가 대부분이였고 내가 가진 데이터는 0과 1로 표현 되는 다운로드 여부, 플레이 여부 같은 데이터가 많았다. 그나마 가지고 있던 log를 가지고 머무른 시간이나 이런 정보들을 종합해서 예제에 맞게 최대한 1~5점에 맞게 수정해서 추천시스템을 작성하려 했지만 당시 사이트 유저는 평균 유지일이 1~3개월으로 매우 낮았고, 데이터를 기반해서 추천시스템을 만들었을 때 취향을 추천해준다기 보다는 비슷한 시기에 생성 된 음악을 추천했다. 그래서 나는 아래와 같은 결론을 내렸다.


1. Deep Learning을 활용한 추천 시스템은 이르다.
2. User similarity를 구할 수 있는 데이터는 매우 적다.
3. 데이터의 편향이 매우 심하다.


그래서 나는 다양한 시도 끝에 item이 가진 metadata를 가지고 item의 similarity를 계산해서 유사한 item을 Jaccard similarity를 활용하여 유사 item 추천을 구현했다.

두번째 시도는 mel spectogram을 활용한 추천이다. 유저의 log를 통해서 추천하는 것은 다소 어렵다고 판단했고 그래서 아이템 자체의 특성을 가지고 mel spectogram을 활용하여 곡의 유사도를 계산하거나 일부 사람의 업무를 대체할 수 있는 시스템을 만들고자 했다. 결과는 accuracy가 60%도 안나올 정도로 활용하기 어려웠다. 당시에 판단하기로는 활용 할 수 있는 데이터가 3000개 쯤 됐던 것으로 기억하는데 데이터가 다소 부족했고, 나의 Audio Data 핸들링 능력 부족도 영향이 있지 않을까 싶었다. 데이터 부족의 영향이 더 크다고 판단해서 가벼운 모델의 accuracy만 확인하고 마무리 했다.

1-1-2 TIPS

TIPS 자료를 많이 작성했다. 나는 2019년 4월 부터 7월 까지 POSCO & POSTECH에서 AI ACADEMY를 수강했는데, 당시에 발표자료 작성법이 도움이 많이 됐다. 깊진 않지만 폭넓은 ML과 DL에 관련 지식이 많이 도움이 됐고, 무사히 합격하여 지금은 해당 프로젝트로 업무 중이다.

1-1-3 데이터 분석 & 시각화

내가 입사 초기에는 별도의 업무지시가 없었다. 지금 돌이켜보면 팀원을 믿는 좋은 문화 였지만, 입사 초기에는 무엇을 해야할 지 모르겠어서 많이 방황을 했었는데 추천시스템이 어느정도 마무리 되고 내가 평소에 좋아했던 다양한 시각화를 시도 했다. 유저나 다양한 인사이트를 제공해서 제안하고 공유도 했다.

1-1-4 SQL 공부

나는 비전공자 출신(공대 기계과)이라 컴퓨터 관련 지식이 부족하다는 것이 엄청난 콤플렉스로 느껴졌는데, 추천시스템에 필요한 데이터를 불러오기 위해서 sqlalchemy와 SQL작성하는 실력이 많이 늘었다.

1-2 하반기 업무

1-2-1 TIPS 프로젝트 진행

(1) 자연어 데이터를 핸들링 해서 classification해야 하는 Task가 있었고, konlpy를 활용하여 가볍게 결과만 도출해 봤다. 이후에는 Ai를 담당해주시는 동료가 오셔서 인수인계 했다.

(2) YOLO, CNN, R-CNN 등 다양한 알고리즘을 활용해서 object detection, image classification을 했다. 결과론 적으로는 obejct detection는 필요 없었고 image classification를 활용해야 겠다는 결론만 짓고 CNN Model을 생성 뒤에 마찬가지로 인수인계 했다.

1-2-2 Back-End 개발

TIPS프로젝트를 진행 중이지만 현재 개발 되어있는 웹사이트를 제외하고 새롭게 시작하는 프로젝트의 Back-End 개발을 할 사람이 없었다. 그나마 일전의 DataBase에 대한 이해를 바탕으로 내가 가장 적합했고 앞서서 AI 관련 업무를 인수인계 했던 이유가 여기에 있다. 그래서 Fast API를 활용하여 현재도 개발 중이다. 내가 강의와 인공지능을 공부하면서 느꼈던 부족한 개발 실력이 시간이 지나면 지날 수록 실력이 느는 듯한 느낌이 들어서 좋다.

1-2-3 결국 추천시스템 개발

모든 스타트업이 그런지 모르겠지만 상반기에서 하반기로 넘어오면서 데이터는 많이 축척됐고, Deep Learning을 활용한 방법을 활용하지는 않았지만 User의 Cosine similarity 활용 하여 결국 개인화 된 추천시스템을 구현했다. 프론트엔드 동료가 시각적으로 강조까지 해주었고 가장 중요한 위치에 노출되어서 뿌듯했다. 아직은 검색의존도가 높지만 언젠가 개인적으로 검색을 없애고 추천만으로 우리 서비스를 잘 이용하게 하는 것이 목표다.

1-3 생활

회사 생활은 만족스럽다. 맡은 업무에 대해서 믿어주고 일을 해낼 수 있을 때 까지 기다려 주는 문화가 마음에 든다. 내 성향은 내 마음에 들지 않은 것은 억지로 하기 힘들어하고 주도적으로 하는 것을 좋아하는 성향 때문인지 굉장히 만족스럽다.

입사 초기에만 해도 전체 인원이 5명 이였지만 현재는 개발자만 5명이며 함께하는 동료가 12명이나 된다. 한분한분 정말 좋은 분들이다. 어쩌면 내가 제일 돌I일지도...?

1-4 자취

처음 2019년 12월 서울에 올라 올때 차를 가지고 처음에 본 방을 바로 계약했는데 당시 집이 2.5평 정도 되는 것 같다. 재택근무라던지 집에서 요리라던지 너무 불편해서 힘들었는데 2021년 12월에 전세로 계약 후에는 이사할 때 꽤나 큰 비용을 투자해서 훨씬 쾌적하게 생활 하고 있고 재택근무를 할 때에도 훨씬 집중이 잘 된다. 기회가 된다면 친구, 동료를 초대해서 함께 좋은 시간을 보내고 싶다.

2. 강의

개발을 시작하기 전에 우연한 기회로 특이하게도 나의 커리어는 강의로 시작하는데, 그 인연 때문인지 주말과 연차를 활용해서 가끔 강의를 한다. 2021년에는 아래와 같은 강의가 있었다.

  1. 테이블 데이터 분석(56H) : excel, csv file과 같은 데이터를 read 해서 pandas 라이브러리를 활용하여 인사이트를 도출하고 시각화, ML model을 구현

  2. ML 기초 (12H) : supervised learning, unsupervised learning 등 Deep Learning을 이해하기 위한 ML의 이론적 지식과 코드로 구현해서 확인해보는 강의를 했다. 해당 강의를 준비하면서 나도 ML에 대해서 많이 정리가 됐다.

  3. 빅데이터 분석 파이썬 라이브러리 기초 (12H) : python programing, numpy, pandas 등 분석을 하기 위한 라이브러리를 강의 했다.

  4. 인공지능을 활용한 투자 (56H) : 사실 금융 관련 투자는 처음이였는데, 열심히 준비했다. 관련 도서를 5권 정도 다 읽은 뒤 포트폴리오, 시각화, 자동매매 등을 강의 자료로 준비하여 강의 했다. 실제로 투자를 하고 있어서 인지 스스로 공부가 많이 됐고, 수강생의 만족도가 높아 기뻤다.


    전반적으로 pandas와 ML 기초에 대한 강의가 많았다.

3. 아쉬웠던 점

집, 회사, 강의가 거의 전부였던 한해였다. 가르치는 것이 내가 확실히 실력을 키울 수 있는 것이라 믿기 때문에 강의를 준비했던 시간은 아깝진 않았다. 손쉽게 했던 강의는 금전적으로 도움이 됐지만 시간이 들었고 너무 바쁘게 달렸던 나머지 중요한 것은 무심코 지나치지 않았을까 싶은 생각이 든다.

개발과 강의를 위한 한해였고 사이드프로젝트로 주식투자에 도움이 되는 로직을 구성하고 싶었는데 실천을 하지 못해 다소 아쉽다.



4. 2022년 목표

(1) github
github을 제대로 운영해보고 싶다. 회사 프로젝트를 올릴 순 없기에 개인적으로 프로젝트를 많이 진행하거나 개인적인 커리어로 남기기 위해서는 velog와 사이드프로젝트를 통해서 github을 잘 활용해야 겠다.


(2) youtube
실제 강의 경험이 있던 나는 나름 AI나 ML을 쉽게 설명한다고 자부한다. 가르치는 것이 가장 잘 배우는 것이라고 생각하는 나는 강의를 준비해서 내가 공부하는 것을 좀 더 명확하게 공부하고 그것을 공유하고 싶다.


(3) 양식
나는 요리에 관심이 많은데 한식은 백종원 선생님 덕분에 어느정도 경지?에 도달한 것 같다. 이제는 양식...!



5. 마무리

생각보다 이렇게 글이 길어질지 몰랐다. 1년의 내용을 기억하는 것도 꽤 어려웠는데, 아마 생략된 내용도 많을 것이라 생각한다. 2022년에는 생략된 내용이 최대한 적고 제대로 회고하기 위해 상반기와 하반기에 나누어서 작성해야 겠다.

"이 모든 경험이 언젠가 도움이 된다."고 믿는다.

0개의 댓글