JUINTINATION
ETRI 2024 동계 연구연수생 - 마무리 본문
마지막 후기..
2달 동안의 ETRI 연구연수생 생활이 끝이 났다. 드디어라는 표현도 애매하고 결국이라는 표현도 애매한.. 뭐 그렇게 끝이 났는데 결론은 경험적으로 얻어 가는 것도 많았고 좋은 사람들도 많이 만나게 돼서 감사한 시간이었던 것 같다.
Weekly 추천에서 Monthly 추천으로
지난 글에서 적지 않았던 마지막 과제가 있는데 바로 기존의 주별로 상품을 추천하던 모델을 월별로 상품을 추천하도록 모델을 수정하는 것이다. 주별로 데이터를 자르게 된다면 그냥 7일 단위로 자르면 되기 때문에 아무런 문제 없이 진행했는데 월별로 자르려고 하니까 각 월마다 30일인 월이 있고 31일 월이 있고.. 2월은 또 윤년까지.. 이런 조건들을 만족시키는 로직을 작성하려고 하니까 코드가 너무 지저분해질 것 같고 귀찮기도 했다. 그래서 지난주에 잠깐 끄적이다가 포기했는데 월요일에 출근하고 남은 며칠이라는 기간 동안 더 발전시킬 수 있는 것이 없을 것 같던 코드를 한없이 바라보다가 번쩍하고 생각났다. 예를 들어 2024년 3월이면 2024.3과 같이 연도와 월을 소수점으로 나누면 간단한 연산으로도 데이터를 나눌 수 있지 않을까? 바로 시도해 봤고 이 과정에서 발견한 문제들이 많았다.
첫 번째 문제
첫 번째 문제는 Weekly에서 Monthly으로 바뀌면서 데이터의 개수가 당연하게도 확 줄게 된다. 그래서 train 데이터와 test 데이터를 나눌 때 비율로 나누게 되는데 이 때 test 데이터의 개수가 0개가 되는 상품이 생기게 된다. 그래서 애초에 전체 데이터 중 (WINDOW * (1//(1-PERCENTAGE) + 1))보다 작은 데이터는 삭제하도록 로직을 수정했고 Weekly 추천 모델에도 똑같이 적용시켰다.
두 번째 문제
두 번째 문제는 파이썬의 부동소수점 관련 문제였다. 분명 2023.6에서 0.1을 뺐는데 2023.4999999가 되는 등 분명 코드에는 문제가 없었는데 이상한 부분에서 말썽을 일으킨 것이었다. 이것도 해결 방법은 간단했는데 그냥 Decimal 라이브러리를 써서 해결했다.
마지막 문제
마지막 문제는 위에서 2024년 3월이면 2024.3로 표현한다고 했는데 사실 모델링에 사용한 데이터는 2023년 6월까지밖에 없어서 target_month를 1개월 전부터 5개월 전까지 설정을 해도 2022년까지 내려가지 않기 때문에 테스트 결과에는 문제가 생기지 않았지만 다시 코드리뷰를 천천히 해보는 과정에서 이 로직은 문제가 있다는 것을 깨닫게 되었다. 예를 들어 2022년 12월을 기준으로 데이터를 자르게 되면 2022.12보다 작은 행만 남기게 되는데 이러면 2022년 데이터는 2022.1과 2022.11만 남게 된다. 애초에 문자열을 float으로 형변환 시키는 식으로 로직을 구현했었기 때문에 그냥 2024.3은 2024.03과 같이 1월부터 9월까지는 앞에 0을 추가하도록 수정만 하면 됐었다.
물론 하나의 코드에서 Weekly에서 Monthly로 바로 전환되지는 않는다. 딱 하루만 더 시간이 있었으면 거기까지 구현했을텐데.. 아쉽지만 둘은 학습하는 로직은 같지만 데이터를 나누는 과정 때문에 서로 다른 코드로 각각 구현해두었다.
진짜 퇴직
에트리에서의 퇴직 절차는 생각보다 훨씬 더 신경쓸 것이 많았다. 직접 어디어디 돌아다니면서 서명을 받아야 했고 그런 과정도 생각보다 복잡하게 글이 작성되어있어서 머리가 아팠다. 좀 더 간단하게 설명이 되어있었으면 좋을 것 같다는 생각이 들었다. 아무튼 나는 7동에서 근무중인 친구의 팁을 받아서 서명을 받으러 돌아다녔는데 이 서류들은 7동 어디에서 서명을 받아야 한다고 적혀있어서 처음에 7동에 갔었다. 서명은 받긴 했었는데 다른 서류가 필요하다고 해서 다시 돌아와서 먼저 조기퇴사한 동기한테 물어보니 7동을 왜 가냐고 하는 것이었다. 각 동마다 그 부서가 있는 것 같았는데 진짜 안 물어봤으면 큰일날 뻔했다.. 다행히도 프린트를 다시 해야할 필요는 없었고 담당자님이 화이트로 쓱쓱 지워주신 다음에 그 위에 다시 서명을 해주셨다. 아무튼 모든 서류에 대해 서명을 받고 마지막 날이 되었다. 박사님께 마지막으로 코드와 내가 정리한 문서들에 대한 설명을 드린 뒤에 마지막 보안 관련 서류 처리를 하고 신분증, 주차증 등등을 제출하고 바로 퇴사를 했다.
결론
결국 마지막까지 이 과제를 완벽하게 끝내진 못했다. 내가 봐도 부족한 부분이 너무 많았고 그에 대한 해결책도 마땅히 떠오르질 않았다. 너무 아쉬웠는데 그만큼 내가 얼마나 진심이었는지 되돌아보게 되는 시간이었다. 모델에 대한 성능이 잘 나오지 않으면 스트레스를 너무 많이 받기도 했고.. 어쩌다가 잘 나오면 왜 그런지 의심부터 하게 되고.. 진짜 연구원분들은 정말 대단하다는 생각도 많이 했는데 이번에 대학원으로 입학하는 입사 동기와 인턴 기간이 더 길어서 에트리에 남아있는 동기, 그리고 책임 연구원 박사님들 모두 좋은 사람들이어서 즐겁게 회사생활했던 것 같다. 동기들 너무너무 고맙고 같이 인턴 생활한 대학 동기들, 그리고 많은 도움 주시고 편의 많이 봐주신 박사님들께도 너무나도 감사드린다는 말을 끝으로 길다면 길고 짧다면 짧은 연구연수생 생활을 마무리하려고 한다.
2개월동안 에트리에서 얻어가는 수많은 경험들이 헛되지 않도록 더 열심히 공부하고 준비해서 앞으로 더 멋진 사람이 되어야겠다~~
'ETRI(한국전자통신연구원)' 카테고리의 다른 글
ETRI 2024 동계 연구연수생 - 8주차 (1) | 2024.02.25 |
---|---|
ETRI 2024 동계 연구연수생 - 7주차 (1) | 2024.02.18 |
ETRI 2024 동계 연구연수생 - 6주차 (1) | 2024.02.11 |
ETRI 2024 동계 연구연수생 - 5주차 (1) | 2024.02.04 |
ETRI 2024 동계 연구연수생 - 4주차 (2) | 2024.01.28 |