민턴 레슨을 다시 받기 시작했다. 사실 10월보다 11월에 프로젝트 관련 작업을 더 많이 했지만, 마음의 여유가 달라서 할 수 있었던 것 같다. 9월 말에는 목표만 정했지, 그걸 이룰 수 있는 방법을 알지 못했고, 10월 말에는 목표와 달성 방법을 알고 있었다. 10월에는 대회도 두 개가 있어서 시간을 더 많이 쓸 것이라 생각했었다. 하지만 소모임을 갔다가 저녁 뒷풀이까지 가면 시간은 비슷하거나 대회 이상으로 쓴 것 같다.

멘토님 잠수를 사무국에도 알리고 멘토님들과의 연락 문제 때문에 멘토링 일정에 차질이 생기고 있다고 말했다. 멘토링 횟수는 다른 멘토님들의 멘토링으로도 채울 수 있게 되었다. 다른 멘토님들과 멘토링을 하면서 우리 팀이 개발 방법론을 제대로 활용하지 못했다는 것을 알 수 있었다. 엑스퍼트나 멘토님들에게 조언을 구하긴 해봤지만, 우리가 질문할 수 있는 내용은 사실 이론적인 것 뿐이었고, 실무에서 사용할 수 있는 조언(선배포의 중요성, 스프린트 기간 관리 등)은 우리 팀의 내용을 처음부터 소개해야 들을 수 있는 내용이었다. 초반에는 일정 관리를 부탁드린 멘토님께 우리 프로젝트의 내용을 제대로 전달하지 못했고, 중후반에는 멘토님이 연락이 끊겨 조언을 받지 못했다. 9월 중순부터 10월 초까지 배포때문에 고민했던 기간을 생각하면 참 아쉬운 부분이다.

API가 필요한 payload를 주고받는 것은 확인했기 때문에 11월에는 인퍼런스를 최적화하는 것에 신경썼다. 다행히도 둘 다 PyTorch 기반이라서 하나의 파일로 합치고, psd 파일에서 필요한 데이터 추출, 결과물 후처리 등을 추가해서 (웹에서 받은 파일 → 인퍼런스 → 웹으로 보낼 파일)을 하나의 파이썬 코드 압축했다. 이 과정에서 시간을 줄이기 위해 동일한 기능을 하는 라이브러리들의 속도를 측정하고 중복되는 코드를 줄였다.

이때까지는 Unity WebGL은 서버에 따로 추가했는데, 이 과정도 배포 코드에 추가해서 배포할 때의 복잡함을 줄였다. 최종 발표 이후에는 springaws 책의 남은 챕터들을 진행했다. ci/cd, 무중단 배포가 주요 내용이었다. 12월 1일에 바로 aws 계정을 닫는다 했는데 끝까지 진행을 해서 다행이었다. 웹 프로젝트의 끝단계인 ci/cd를 해봤다는게 좀 뿌듯했다. 우리 프로젝트에도 적용했다면 어땠을까하는 생각이 들었다. webgl이랑 웹서버 사이에도 요청을 보내는데, 무중단 배포할 때 이 포트번호만 바꿔주면 될 것 같지만, 막상 하면 또 여러 문제가 생겼을 것이다.

이거랑은 별개로 아키텍처에 관한 아쉬움도 있다. sagemaker를 사용해보지 못한 것과 로드 밸런싱을 사용하지 않은 것이다. 이게 첫배포가 늦어진 이유이기도 한데, 돌이켜보면 내가 개발을 하는 자세와 외부 멘토님들을 잘 활용하지 못해서 생긴 문제인 것 같다. 내가 만든건 다 설명할 수 있다라는 생각을 가지고 개발했기 때문에 모르는게 나오면 계속 딥다이브하면서 시간을 소모했다. 이때문에 sagemaker, 로드 밸런서도 막막하게 느꼈었고, 멘토링에도 부담을 가졌었다. 이제 파고드는 것을 끊어야 하는 지점도 알게 되었으니 다음 번에 진행할 때는 최대한 빠르게 만들어 봐야겠다.

Leave a comment