본문 바로가기
잡다한 이야기

코딩 관련 해왔고, 앞으로 하고 싶은 일들

by 유피 2023. 9. 4.

(23.09.04 Update)

 

데이터 분석 업무를 하면서 차츰 MBTI가 P에서 J로 가고 있는 것 같다.

이에 따라 자연스레 내가 하고 싶은 것들에 대해 까먹지 않기 위해, 그리고 머리 속에 떠도는 생각들을 주저리주저리 기록하고자 한다.

 

 

현재 나와 제일 많이 같이 일하시는 분의 경우, 새로운 라이브러리를 접하게 되면 자세히 이해하고 나서 본격적으로 활용하고는 한다. 이에 반해, 나와 같은 경우에는 적당히 이해한 뒤 이리저리 써보면서 필요한 부분들에 대해 구글링 하여 체득을 한다.

 

이와 같이 서로의 접근 방식이 반대이다보니 밸런스가 잘 맞는 게, 나는 코드에 대한 활용을 통해 체화한 것을 바탕으로 그분의 이해 및 활용을 도와주고, 반대로 그분은 이후 내가 몰라서 쓰지 않고 있던 활용법들에 대해 알려주고는 한다.

 

이는 새로운 기술 스텍에 대한 접근에서도 차이가 나는데, 나는 계속 새로운 분야로 이것저것 다양하게 시도하고 배우려고 하는 한편, 그분은 파이썬에 대해 끝을 보고 넘어가고 싶어 한다.

 

이로 인해 아쉽지만, 서버 관리 분야로는 다른 분과 같이 업무를 진행하게 되었고 이에 대해 공부를 시작해나가고 있는 상황이다. 이에 대해서는 별도로 글을 작성하도록 하겠다.

 


1. 데이터 분석 (20년 ~ 현재 진행 중)

-. 18~19년 : Spotfire나 JMP와 같은 BI Tool을 활용한 분석업무 및 시각화

 

-. 20년(R) : Curve Fitting을 통해 신규인자 개발까지는 아니지만 개선방향 도출에 활용

   (직접적으로 코딩을 하기보다는, 아이디어 도출을 통해 사내 분석팀으로부터 기초 코드를 받아 수정하며 활용했다)

 

-. 21년 (Python) : Alpha Shape 및 Convex hull 과 같은 신발끈 이론(Shoelace Theory)을 활용하여 신규인자 개발

   (양지보다는 음지에서 사내 마음이 맞는 분과 사이드 프로젝트로 업무 진행. 이때부터 직접 코딩을 하며 공부 시작)

 

-. 22년 (Python) :

   1) Pycaret을 활용하여 X-Y 인자에 대한 Regression Model을 통해

       Feature Importance 및 Shap PDP Graph 등을 참고하여 Y인자에 대한 관리를 위한 Insight 도출

 

22년, 회사 차원에서 분석에 대한 관심이 높아져 데이터 분석을 기반으로 한 프로젝트들에 대한 도출 및 운영이 필요해졌었다. 이를 위해 ADsP를 공부하며 봤던 내용들을 참조하여

 

1) 프로젝트 운영 Process 정의  2)도출된 프로젝트들에 대한 적합성 검토  3) 분석팀 - 프로젝트 담당자 간 의견 조율

 

등을 하며 분석 업무 전반에 대해 많이 배우는 기회를 가질 수 있는 좋은 기회였다. AdSP를 공부하며 과연 이러한 내용들을 쓸 일이 있을까 했던 것을 실제로 활용할 수 있어 재미있었고, 이를 통해 분석 업무를 주업무로 할 수 있게 된 계기가 된 것 같다.

 

-. 23년 (Python) : 분석 업무를 주 업무로 하게 되며, 상당히 많은 프로젝트를 진행하게 되었다.

                             자세히 적을 수는 없지만, 각 프로젝트별 간략히 정리하도록 하겠다.

   1) 1~2월 : 신규 구성원들에 대한 Python 기초 교육

   2) 3~4월 : Image Processing을 통해 Defect 이미지 검출 및 분류 + Deep Learning을 통한 (~~~~~) 진행

       (Deep Learning 은 다른 분의 도움을 받았다)

   3) 4~5월 : AutoML Process (Regression) 구현 및 exe 파일 생성 (Feature Selection 1차 + deap + Feature Selection 2차)

   4) 5~6월 : 기존의 AutoML에 Classification, 차원축소, PDP 등의 기능 추가

   5) 6월 : 불량 이슈 발생 관련 TSNE를 활용한 클러스터링 및 해당 결과 기반 Classification 분석

   6) 6~7월 : 특정 공정 Tree 계열 모델 활용 Regression 분석

   7) 7월 : 물류최적화 (중단)

   8) 7월 : AutoML Process 수정 (전체 Dataset이 아닌 Group별 분석)

   9) 7~8월 : 재무데이터 기반 예상주가 분석

   10) 8월 : 특정 공정 Regression, Featrue Importance, Shap Value, PDP 2d graph를 통해 Insight 도출

   11) 8월 : Combo box 기반 그룹 선택을 통해 EDA 결과 및 모델링 결과 시각화 UI 구현 및 exe 생성

   12) 8~ : Scroll bar / Spin box / Combo box / Check box 활용, 모델링 + 최적조건 도출 UI 구현 및 exe 생성

         (약식 APC System)

    13) Flask - Dash Plotly로 모델 배포 서버 및 홈페이지 구현 / VIT 활영 시계열 Data Classification / Pretrained model 활용 Image Classification / Object Detection / 

    ETC) 1~9월 : 개별 프로젝트들에 대한 코드 구현 (전처리, 분석, 시각화 등)

 

23년, 사내에서 코딩에 관심있는 사람들을 모아 신생팀을 만들었다. 대부분 코딩에 관심은 있지만 아예 해보지 않은 분들이다보니, 마치 내가 20년도에 그랬던 것처럼 그분들이 아이디어를 내면 내가 코드로 구현하는 작업들을 하였다. 이를 통해 단시간에 다양한 Dataset들에 대해 각기 다른 방향으로 코드를 구현하며 작년의 동일 시점에 고민하던 것들을 이제는 가볍게 구현할 수 있는 실력을 확보하게 된 것 같다.

 

한가지 아쉬운 점은 딥러닝 프로젝트를 할 기회가 별로 없었다는 점, 그리고 물류최적화에 대해 다시 한번 제대로 해보고 싶다는 점이다.

 

 

2. 서버 관리 (23.09 ~ )

많은 프로젝트들이 동시다발적으로 진행 중이며, 이제 시작인 것도, 마무리된 것도 있다.

프로젝트가 완료되었다 하더라도 시스템에 전산화하기까지는 다소 시간이 소요되며, 이를 현업팀에서 활용하기 위해 임시로 실행파일을 만들어 주더라도 GPU 사용도 없고 컴퓨터 사양도 부족하여 실질적으로 사용하기 어려운 상황에 있다.

 

이를 해결하고자, 자체적인 Linux 서버를 구축하고자 한다.

서버 구축 프로젝트를 맡은 이들 모두 해당 분야로 해보지 않았기에 공부하고 있으며, 기본 Concept만 있는 상태이며,

 

-. Linux 서버 구축 (Cent OS를 사용할 것 같다) : 다중 접속하여 여러명이 각자 원하는 프로젝트 산출물을 활용하기 위함

-. Docker 사용 : 각 프로젝트별 관리 및 리소스 관리를 용이하게 하고자 함.

   → 단시간 내 GUI 서비스 구현을 위해 1차적으로는 venv 활용. 추후 Docker 적용 예정

-. VS Code : 서버에서 각 사용자가 코딩을 할지 잘 모르겠다. 추가 논의 필요

   → 각자 개별 가상환경에서 Main.py로 GUI 코드 구동해서 활용.

-. Dash : GUI로 만들어 개별 배포하는 것들에 대해 dash를 활용하여 웹 기반 배포를 진행하고자 함.

   → Dash를 하기 위한 지식 습득 범위가 넓어 (flask, css 등) 추후 streamlit으로 검토 예정

 

 

3. 앱 개발 (23년 ~ )

앱 개발에 대한 관심은 21년도쯤?부터 계속 있었다. 하지만 파이썬이라는 언어 하나만으로 이미 충분히 낯설던 시절이였고, 데이터 전처리 코드를 짜는 것만으로도 허덕이는 와중에 새로운 언어를 습득하여 개발할 자신이 없었다.

 

해당 부분은 개인적인 관심으로 공부를 하고자 하는 분야이며, Flutter와 React Native 중에 고민을 하다 Flutter로 일단 해보기로 마음먹었다. 현재 Flutter에 앞서 Dart를 공부하고 있으며, 공부하다보니 대학시절 배우던 C++이 생각나고는 한다.

 

대학 시절, C++을 배우며 코딩 쪽으로 흥미를 잃고 HTML이나 가끔 만지작거리다 졸업을 하고 취직을 하여 돌고 돌아 다시 C++과 비슷한 Dart를 공부하게 되었다. 그때 당시, C++이 아니라 Python을 가르쳐줬다면 이렇게 돌아가지 않을 수도 있지 않았을까 하는 생각이 들기는 하지만, 한편으로는 덕분에 개발자의 시야만이 아닌 프로젝트를 내는 사람들의 입장에서도 생각할 수 있는 것 같다.

 

앱 개발 공부하는 부분에 대하여도 별도로 작성을 해보도록 하겠다.

댓글