2023년 중간 개인 회고록

DOYOUNG KIM·2023년 11월 8일
0

생활


대부분 오전 7시 40분에 기상해 준비하고 8시 10분에 출근하는 루틴을 지켰다.
최소 10분전에는 회사에 도착하려고 노력했으며 업무 준비를 시작했다.

퇴근은 6시보다 조금 지난 시간에 7시 이전에 퇴근하려고 노력했다.
칼퇴근을 위해서 최대한 업무 집중도를 높이고자 노력했다.

회사는 업무 공간, 집은 개인 공간이라는 공간 분리를 명확하게 하고자 개인 업무는 최대한 집에서 하고 회사에서는 업무만 하고자 노력했다.

나는 공간 분리가 안되면 집에서도 오늘 난 에러 생각, 회사에서도 개인 업무 생각등 잡생각으로 뭐 하나 제대로 되는게 없기 때문이다.

퇴근 후에는 최대한 개인 공부를 하려고 한다.
물론 이런 생각을 가지고 실천에 옮긴 건 아직 1달 가량이지만 10월 부터는 개인 공부를 실행했다.

조금 더 빨리 개인 공부를 하고 자기계발을 하지 않은 것이 후회된다.
회사에서 하는 업무만 열심히 해도 나를 성장시킬수 있을 것이라는 안일한 생각으로 보낸 반년이 너무 후회스럽다.
하지만 다행인건 지금이라도 생각머리를 고치고 살아가고 있다는 거 아닐까?
최소 2시간 못해도 1시간 이상은 공부나 프로젝트 개발을 계속하려고 한다.

회사 업무


개인 공부를 시작한 트리거는 직무 변경 때문이다.
지금 나는 머신러닝 엔지니어로 스타트업에서 일을 하는 중이다.

너도 나도 AI 라고 외치던 AI 붐을 학부 시절에 몸소 겪었다. 군대 가기전 잠시 의료 AI 연구실의 학부 연구생으로 참여한 경험 때문에 AI 공부를 조금 했었고 복학 후 임베디드 AI 연구실에 참여한 1년가량 연구를 했었다.
논문도 쓰고, 경험 살려 캡스톤 프로젝트 최우수상, 해외 학회 등 좋은 경험을 정말 많이 했다.

이런 경험에 기반해서 스타트업에 취업했고, 나는 여기서 머신러닝 엔지니어로 개발된 AI 모델에 관련된 대부분의 업무를 수행했다.

크게 5가지 업무를 진행했다.
1. 데이터 전처리
2. AI 모델 학습 관리
3. 신규 AI 모델 도입
4. AI 모델 관련 신규 프로젝트 개발
5. Vision 관련 알고리즘 개발

  • 데이터 전처리
    처음 왔을때 사용하던 Object Detection 모델을 라벨링 표준을 설정하고 대부분의 데이터 라벨링을 진행했다.
    신규 탐지 개체가 생길때 마다 새롭게 라벨링을 진행했다.
    대략 10000장 정도는 하지 않았을까?
    최근에는 데이터세트 안정화가 어느 정도 되어서 바운딩박스 라벨링은 하지 않지만 신규 모델 도입을 위해서 새로운 라벨링을 진행중이다.

  • AI 모델 학습 관리
    가장 신경을 많이 쓰고 어려웠던 부분이다.
    먼저 현재 AI 를 사용하고 있지만 모델 학습 주기, 데이터 파이프라인 등 모델 이외의 것들은 전혀 준비 되지 않았었다.
    RAW 데이터를 읽어오고 학습용 데이터로 만들고 학습 하는 과정 까지를 자동화 시키는 파이프라인을 구축하려고 했다.
    현재는 학습용 데이터로 만드는 과정까지가 자동화

  • 신규 모델 적용
    기존의 2가지 딥러닝 모델을 사용하고 있었고 입사 후 나는 분류 기반 모델 하나와 Tracking 알고리즘을 기존 솔루션에 적용하는 업무를 진행했다.
    결과적으로 두가지 모델 모두 성공적으로 개발하여 기존 솔루션에 탑재되었지만 몇가지 문제점이 아직 남아있다.
    첫번째, Tracking 알고리즘의 속도 문제이다.
    최대한 모델 경령화를 진행하고 GPU 사용량, Threading 과 같은 방법으로 추론 속도를 증가시켰지만 Tracking 알고리즘은 C# 으로 개발을 못해 여전히 Python 엔진으로 개발중이다.
    두번째, 데이터세트 부족이다. 이상 감지는 항상 데이터세트가 부족하다. 최대한 정제하고 이상에 가까운 데이터만 수집해서 모델을 학습했지만 여전히 데이터가 부족하다. 또한 데이터 불균형으로 학습 결과가 좋지 못해 임시방편으로 CrossEntorpy에서 가중치를 적용해 모델 편향을 해결했지만 타 프로젝트 참여 등 다른 핵심 이슈들로 현재까지 해결하지 못하고 있다.
    두가지 문제를 퇴사 전에는 해결하고 퇴사하려고 한다.

  • AI 모델 관련 신규 프로젝트 개발
    해당 프로젝트는 회사 솔루션이 아닌 솔루션의 원천 기술을 활용한 타사 시스템 외주 프로젝트였다.
    자사 솔루션에 사용하는 AI 기술을 활용해서 하드웨어 설치 부터 소프트웨어 개발까지 진행하였고
    프로젝트는 마지막 크기 분석 모듈 개발 이외에 필요한 시스템을 모두 개발하였다.
    프로젝트 중간에 타사 C레벨과의 의견 마찰로 인해서 일정 연기 되었고 현재까지도 대략 2개월 이상 프로젝트 진행이 연기되고 있다.
    아마도 프로젝트에서 진행한 자사 시스템과의 연동 문제에서 결국 의견 조율이 되지 않아 프로젝트 자체가 무산된 듯 하다.
    열심히 2달이상 투자해서 개발한 시스템이었는데 실제 현장에서 동작하는 모습을 보지 못한 것은 아쉽지만 Thread 생성을 통한 비동기, UI, 간단한 DB 설계를 해볼 수 있는 경험이라 나름 만족한다.

  • Vision 관련 알고리즘 개발
    해당 프로젝트는 대외비로 진행되어 언급이외의 다른 것은 할 수 가 없지만.
    비전 알고리즘을 많이 알았고 문서화 작업, 타사와의 협업과 같은 여러 경험을 가질 수 있어서 좋았다.

퇴사 결심


곧 재직 1년차가 되고 내년에 상반기 중 퇴사를 하려고 결심했다.
퇴사를 결심한 시점에서 객관적이고 냉정하고 회사와 나의 상태에 대해서 점검해보려 한다.
먼저 퇴사를 하려고 하는 이유이다
각각 최대 10가지를 작성한다.

  • 퇴사 이유
  1. 개발 문화의 부재
    git을 사용한 소스 관리 이외에는 아무 개발 문화 없음
  2. 잦은 현장 출장
    소프트웨어 점검이 아닌 하드웨어 설치
  3. 서비스 방향의 차이
    윈도우 프로그램으로 개발하고 배포 또한 수작업으로 업데이트 후 배포를 진행
    개인적으로 Django기반 웹 서비스나 파이썬을 활용해서 하면 이점이 많을 것 같지만 현재로서는 전환하기 힘듬(인력 부족, 타 프로젝트)
    많은 사람이 사용하는 웹 서비스를 개발하고 싶고 트래픽 처리와 같은 실시간 서비스 개발을 하고싶음
  4. 기술 스택
    딥러닝 학습은 Python
    프로덕트는 C# 기반은 WPF 프로그램을 사용해서 개발
    TensorRT와 같은 하드웨어 가속도 불가능
    국내에서는 애매한 기술 스택으로 인한 불리함 작용
  5. AI 기술 이해도 부족
    AI에 대한 연구, 개발을 진행한 개발 팀원 부재
    이전에는 타 기업에게 외주를 통한 기술 개발을 선행
    석사급 경력직 채용 의사는 있지만 채용이 될지는 모름
  6. 잦은 문서 작업
    최근 국가 연구 개발에 참여하기 위해서 여러 문서 작업을 하는중 AI를 아는 개발자가 나뿐이라 기술 문서에 필요한 작업을 자주 하는 중
    추후 연구 개발에 참여한다고 하면 대부분은 연구 노트 등 문서 작업은 혼자 담당할 것으로 보임
  • 남아있어야하는 이유
  1. 진취적인 CEO
    대표님의 비전이나 마인드가 굉장히 좋으며 CEO로써 직원들을 리딩하고 이끄는 능력이 좋다고 보여짐
    개인커리어도 좋은 편
  2. 비전있는 사업 분야
    국내에서 많이 하고 있지 않은 분야이기 때문에 현재 위치에서 자리잡으면 충분히 안정적인 사업성을 가질 것으로 보임
  3. 괜찮은 사내 분위기
    사내에서 커뮤니케이션은 원활하게 이루어지고 낮은 직급의 의견도 잘 수렴해서 적용 가능
  4. 캐시 카우
    개발팀에서 진행하는 솔루션 이외에도 캐시 카우를 위한 타 프로젝트가 성공적으로 이루어지고 있어 앞으로 회사의 자금에 크게 문제가 없을 것으로 보인다.

회사 분위기가 사내 문화등으로 보았을때 나쁘지 않은 회사임에는 틀림없다.
하지만 앞으로 내가 개발 커리어를 쌓아가면서 과연 지금 회사에서 계속해서 경력을 쌓는 것이 정말 도움이 될까, 회사의 성장이 나의 성장으로 이어질까에 대한 의문을 던지면 아니라고 말할 것 같다.
AI 라는 분야를 더이상 연구하고 이 분야를 중점으로 하는 개발자, 연구자 보단 대중들이 사용하는 서비스를 개발하고 AI를 잘 활용하는 좋은 개발자가 되고 싶다.
핑계지만 AI에 대한 연구를 함께하는 개발자, 연구원이 존재했다면 AI라는 분야를 계속했을지도 모른다. 혼자서 끙끙대며 1년이라는 시간동안 도전하고 내가 내린 결론이다.
최종적으로 내가 원하는 교육하는 개발자가 되려면 현재에 머무르기 보단 많은 사람들이 사용하는 웹 개발이라는 새로운 분야로 넘어가 새롭게 시작하는 것이 더욱 좋다고 생각했다.

퇴사 준비


퇴사를 준비하기 이전에 내가 가져야 할 목표와 단계를 준비했다.
퇴사 예정 시점은 24년도 2월-3월 쯤에 하려고 한다.
퇴사 이후의 첫 목표는 구름톤 트레이닝 참여이다.

첫 목표 수행을 위해서 1차적인 목표를 설정하려고 한다.
먼저 Node 기반으로 개발 공부를 진행하고 이를 기반해서 프로젝트를 만들어 보려고 한다.
1월 이후의 프로젝트 진행 사항은 추가 업데이트를 한다.
현재 python, C# 이외의 언어는 잘 모르기 때문에 언어의 핵심 문법 위주로 공부 후 가장 기본인 게시판 만들기를 해본다.

11월 2주차 : 우테코 프리코스 제출(완성도 있게)
11월 3주차 : 노드 JS 강의 수강 절반 (제로초)
11월 4주차 : 노드 JS 강의 완강

12월 1주차 : 노드 JS CRUD 게시만 만들기
12월 2주차 : 클론 코딩 강의 수강
12월 3주차 : 드리퍼 프로젝트 설계
12월 4주차 : 드리퍼 데이터 테이블 설계
12월 5주차 : 드리퍼 개발 시작

마무리


2023년이 끝나가는 11월에 돌아본 나의 2023년은 바쁘고 피곤하고 힘들었지만 사실 실속 없는 한해였다.
스타트업에 입사해 5개월간 미친듯이 일했고 새로운 지식도 많이 알게 되었다.
하지만 실속은 없었다. 실질적으로 내가 하고싶은게 뭔지 몰랐고 그렇기 때문에 Step을 밟아 나가는 것 없이 그저 주어진 일에만 충실했다.
한해를 돌아보고 이제라도 나를 인지한 이 시점부터 다시 쌓아보려고 한다.
남들보다 조금 늦게 시작한 공부기 때문에 조금 더 독해져야 하고 조금 더 바빠야한다.
잠을 줄어야하고 스스로를 몰아붙어야한다.
2023년에 남은 두달간의 나의 모습을 돌아보고 노력하며 연말에 다시 스스로를 돌아보는 회고록을 작성하겠다.

profile
매일 1%씩 성장하는 개발 공부 블로그 입니다.

0개의 댓글