배달의 민족 정산프로젝트 고도화 과정
정산 프로젝트는 과거 모 대기업에 외주를 맡긴 프로젝트였는데,
저희회사 규모에서는 제법 큰 비용과 일정을 사용했습니다.1년 6개월의 개발과 유지보수 기간동안 특급 개발자도 여러명 참여했습니다.
프로젝트를 분석해보니대부분 SQL에 비즈니스 로직
이 녹아있고,
DB 테이블 중심으로 개발
이 되어 있었습니다.수천라인의 동적 쿼리들이 수두록 했고, 하나를 수정하면 둘 이상의 버그가 생성되었습니다. > 문제는 앞으로 비즈니스를 계속 확장해야 하는데, 정산이 비즈니스 로직도 성능도 다 병목지점이 되어가고 있었습니다.
CTO 조직은 이 프로젝트를 기술적 파산 단계로 정의하고 사내에서 다시 개발하기로 했습니다.
재개발 프로젝트여서 정산을 운영하시는 분들이나 고객 입장에서는 크게 바뀌지는 않았지만, 기획부터 개발 프로세스, 테이블 설계까지 모든 것을 다시 시작했습니다.
기술적인 결과는 다음과 같습니다.
이런 극적인 변화가 단순히 JPA만으로 얻어진 것은 아닙니다.
기획, 설계, 운영 프로세스 개선 등 여러 부분을 기획과 개발
이 함께 고민하고 최적화 했기에 가능했습니다.JPA는 수 많은 단순 반복 쿼리들을 자동화 해 주었고, 그 덕분에 작성해야 하는 코드 라인도 많이 줄었습니다.
하지만 이보다 더 중요한 점은 JPA를 사용한 덕분에 SQL 중심에서 객체 중심으로 개발 패러다임이 손쉽게 전환되었다는 점입니다.
개발자들은 SQL에 얽매이지 않고, 객체 지향의 장점들을 적극 활용해서 애플리케이션을 더 유연하고, 견고하게 개발할 수 있었습니다.
빅테크 회사의 기술이 답이다가 아니라 최소한 갖춰야 할 제반시스템을 구성을 해야 확장 시 용이 할 거라고 생각함.
테스트케이스 도입
(현시점에서 오픈시점 오류방지 및 인수인계의 문서대용으로 테스트 케이스 작성을 필수로 보여짐.)
레거시의 변경
프로세스의 기획, 설계, 운영 방안