2023 회고
2024년 새해를 맞아 개발 블로그를 쓰기로 다짐. 2023 1년동안 나의 발자취를 기록?해본다.
AI마타
2023.3 1차오픈
2022년 7월에 입사한 후 계속 해서 진행중인 프로젝트이다. java8 + jsp 로 이루어져있던 기존 마타수학 프로젝트를 Spring과 React로 마이그레이션 하는 작업이 있었다. 나는 마이그레이션 중간 지점에서 합류하였고, 2023년 3월 1차 오픈을 목표로 백엔드를 구현하였다.
내가 맡은 도메인은 크게 User, Org, Dept로 가입한 학교 계정에 대한 전반적인 기능 개발을 하였다. User의 타입이 3가지로 분류되어 있고, 각각 타입마다 가질 수 있는 특성이 약간 다른점이 있었기에 Join Table 전략을 사용하여 table을 구성하려고 시도하였다. 하지만 타입이 변경 가능해야 했기에 오픈 몇 주전에 Single Table 전략으로 변경하였다.
차장님과 새벽까지 코드 수정을 같이하였다. 죄송합니다 ㅎ서비스를 이용하는 유저의 플로우를 정확하게 파악하지 못해서 생기는 문제라고 생각한다. 만약 유저 플로우를 정확하게 파악하고 있었더라면, 이러한 삽질은 하지 않았을지도..
2023.8 2차오픈
2차 오픈에는 선생님께서 커리큘럼과 수업을 커스텀할 수 있는 기능이 추가되었다. 이 작업은 기존 마타수학에 따온 db를 그대로 사용하지 못하기 때문에 db 마이그레이션을 진행하였다.
어디에 어떻게 FK를 걸어야 하는지, 각각의 table의 역할은 무엇인지 각자 생각하는 방향에 대해 토의하였다. 대회의실(
추후 커멘드 센터라고 불림)에 몇 주동안 백엔드 개발팀 전원이 같이 일을 하면서 주말에 출근하기도 하고 새벽에 퇴근하는 일도 잦았다. 이러한 토의를 바탕으로 기존 레거시 코드들을 수정하였다. 비록 오랜 근무시간에 힘들었지만, 주니어 개발자가 이런 경험을 할 수 있다는 것에 감사했고 또 재밌었다.Logging
학생들의 학습 패턴을 분석하기 위해 Log data가 필요하다는 데이터 팀의 요청이 있었다. 이에 나는 단순히 백엔드에 찍히는 로그들을 주면 되겠거니 생각했었으나, 데이터 팀에서는 백엔드에 기록되지 않는 정보들도 수집하고 분석하길 원하셨고, 이를 기록하기 위해 프론트에 Logging을 위한 시스템을 구축해야했다.
학습분석 데이터 수집체계 표준 Caliper Analytics
프론트에 대한 지식이 많이 부족한 상황에서 다른 프론트 분들의 도움을 받았다. 유저가 어떤 버튼을 클릭할 때 마다 api가 나가고 이 로그들을 efs에 로그파일로 쌓는다. 데이터 팀에서 이를 확인할 수 있도록 매일 새벽 efs에서 s3로 파일들을 옮기도록 하였다.
물론 이 플로우가 전반적으로 맘에 들지 않는다. 그 이유는 다음과 같다.
- 유지보수하기 매우 힘들다. 프론트에 대한 지식이 부족하기 때문에 주먹구구식으로 짠 나의 코드를 추후 누군가 수정 수 있을지 의문이다.
- 비정상적인 로그들이 많이 쌓인다는 말을 들었는데, 해당 로그들이 왜 그렇게 쌓이는지 원인을 찾기 매우 힘들다.
- observability tool을 사용하지 않기 때문에, 데이터 팀에서 이를 분석하기 어렵다.
추후 개선한다면 AWS Kinesis를 통해 click stream을 수집하고 Athena나 Kibana를 사용하여 검색 및 분석을 쉽게 하려고 한다.
끝없는 공부
모든 분야가 마찬가지겠지만, 특히 개발분야에게 더 중요하다고 생각한다. 기술은 새롭게 발전하고, 그 새로운 기술들도 언젠가는 또 레거시가 될 것이다. 이러한 흐름에 맞춰 개발자는 끊임없이 공부해야 살아남을 수 있다고 생각한다. 2023년에 EKS와 LLM에 대한 스터디를 진행하면서 더 크게 와닿았다. 내가 어떤 기술을 잘 다루지 못하더라도 그 기술이 존재하는 지 아는 것과 모르는 것은 천지차이다. 기술의 존재를 알고 있다면 어떤 문제를 해결할 수 있는 도구가 하나 추가되는 것이기에 현재 내가 필요로 하지 않는 기술이더라도 공부는 불가피하다.
올해 목표
- java, Spring에 대한 더 깊은 공부
- 사이드 프로젝트로 뭐든 하나 출시해보기