2024년 이직 후 많은 업무가 연말에 업무가 몰리기도 했고 실무적으로의 성장하는 기간이 더 필요하다 생각해서 2024, 2025 회고를 한번에 작성한다.
오픈전 심각한 문제들로 API를 전수로 전환하는 작업이 필요했다. 이 과정에서 설계의 중요성을 느꼈고 오픈 이후 테이블 설계 또한 수정하면서 체감했다. 확장성을 고려하기 위해 DDD 관련된 문서와 책들을 찾아 읽고 시스템을 만드는 방법을 익혔다.
*JPA를 이용한 개발 생산성은 뛰어나지만 최근 MSA 아키텍처에서는 JdbcTemplate 주로 사용하기도 한다.
확장성과 유지보수성을 기준으로 문제 해결 방향성으로 잡고 어떤 테이블이 좋은 것인지 스스로 찾아내고 판단하기 위해 테이블을 수없이 생성하고 삭제를 반복했다. API와 스토어드 프로시저를 설계로 이어져 개발 속도가 빨라지고 편해지는 것을 느꼈다.
차기 프로젝트를 위한 확장성을 위해 리팩토링을 시작했다. REST URI는 심플하고 직관적으로 만들고 성공적인 리팩토링을 위해 점진적으로 진행했다. 테스트 코드를 통해 검증하고 배포 후 대체하는 과정을 거쳤다.
이전까지는 API 구현은 요구사항에 맞는 개발만 치중해 있엇다. 그렇다보니 추가 요구사항에 대한 확장성이 부족한 설계로 테이블들은 기형적으로 변하고 관리 포인트만 늘어나 기술부채가 쌓이고 사람에 의한 개발로 이어져갔다.
기능들이 합쳐져 더 큰 기능이 아닌 시스템이 될 수 있도록 확장성을 고려하고, 다음에 발생할 요구사항까지 미리 대처하고 안정적인 기능 구현에 대한 개발 감각을 늘려갔고 그것을 단순하게 구현할 우선순위를 정하는 힘을 늘렸다.
25년도 작업 중 가장 기념비적인 일 중에 하나였다. 그렇게 많은 데이터가 아니지만 이렇게 다뤄볼 기회는 저연차 개발자에겐 아주 흔하지 않을 일이라 생각한다. OLAP 작업을 하면서 소위 말하는 데이터를 말아 올리는 작업이 어떤 것인가를 볼 수 있었고 다양한 데이터들을 집계하고 정갈하게 만드는 작업을 했다.
프로시저 내에서 다양한 문법들(쿼리튜닝, 인덱싱, CTE, 임시 테이블, 커서 등)을 다루며 쿼리 능력 또한 향상시켰다. 내가 만든 테이블들을 다시 돌아보고 쿼리를 다시 튜닝하고 성능 개선까지 일련의 작업을 반복 숙달했다.
올해 말, 마침내
Merge into(MySQL 에서는INSERT … ON DUPLICATE KEY UPDATE)를 실무에서 써보게 되엇다.
Clean Architecture
DDD Start!
애자일 데이터웨어하우스 디자인
친절한 SQL 튜닝
데이터 분석을 위한 SQL 레시피
어느 정도 개발이든 쿼리 작성이든 개개인의 방법이라던가 노하우는 저마다 다르지만 결국 비슷한 결과가 되는 것을 보면서 성장을 체감했다.