-
개편의 기술 - 배달 플랫폼에서 겪은 N번의 개편 경험기 - 권용근세미나, 영상 요약정리 2022. 10. 9. 00:01728x90
인프콘 2022 다시 보기의 권용근님의 발표를 요약한 내용입니다.
https://www.inflearn.com/course/infcon2022
개편의 기술
제 1장 의존성을 한 방향으로 정리하라
사이드 이펙트가 어디서 발생하는지 추측하기 어려워서 개편의 하기 어려운 상황입니다.
따라서 의존성을 한 방향으로 관리하여 문제가 발생했을 때 원인을 추척하는것이 가능해집니다.
제2장 변경 대상에 대한 경계를 나눈다.
레이어드 아키텍처처럼 Controller, Service , Repository로 경계를 나누고 책임과 역할을 부여합니다.
따라서 변경 대상에 대해서 모듈, 패키지로 나누어 해당 계층에 책임과 역할을 분리합니다.
개인적 생각!
이렇게 되면 변경이 일어날 경우에 어느 코드를 건드려야 할 지 한눈에 파악되기 때문에 편리할 것 같다고 느꼈습니다.
제3장 테스트를 확보한다
인터페이스만 동일한 상태로 언어, 프레임워크가 달라지게 되면 테스트 케이스는 재사용이 불가능합니다.
테스트 케이스를 복사해서 가지고 오려고 했지만 이 또한 시간이 부족했습니다.
3개월의 시간이 주어졌고 테스트를 가져오는 시간이 1~2달이 예상되었기 때문에 json 요청을 diff를 떠서 요청에 대한 정상 응답이 되는지를 테스트했습니다.
또한 nGrinder를 활용해 부하 테스트를 진행했습니다.
블랙박스 E2E 테스트
HTTP 요청과 DB값만 가지고 나머지 로직들은 검증하지 않은 채 수행
테스트를 확보하여 변경해도 괜찮다는 안정감을 얻게됩니다.
여기까지 보았을 때 우리가 유지 보수하기 좋은 소프트웨어를 만들기 위해서는 위의 3가지가 잘 지켜지고 있는지 생각해보면 좋을 것 같습니다.
만약 1,2,3 단계를 잘 지키면서 개발해왔다면 추후 개편 과정에서 편리함을 얻을 수 있습니다.
제4장 프로젝트 가시성 확보
라면을 끓이는데 시간이 얼마나 들까요?
이처럼 큰 문제를 작은 문제로 만들어 풀어나가며 더 정확한 일정 예측이 가능해집니다.
이로 인해 일정에 대한 리스크를 더 잘 관리할 수 있습니다.
또한 이런 일정들은 가시화하여 문서화한다면 이해 관계자들을 설득, 후원하기 원활해집니다.
부록 : 도메인 이해 공유
주문 시스템 개편이라면 도메인이란 주문에 대한 이해를 의미합니다.
구성원들 간 도메인에 대한 이해도가 다를 수 있기 때문에 이런 도메인에 학습하는 것 또한 하나의 장벽입니다.
또한 도메인의 이해도가 떨어지게 된다면 의사결정 과정에 참여하기가 어렵습니다.
반대로 도메인의 이해도가 높은 사람들은 자신의 결정이 그대로 반영될 수 있기 때문에 부담감이 커지게 됩니다.
따라서 도메인의 이해하기 위해서 자세한 내용은 "이벤트 스토밍" 영상을 참고하면 좋을 것 같습니다.
https://www.youtube.com/watch?v=hUcpv5fdCIk
이벤트 스토밍은 소프트웨어 프로그램 도메인에서 무슨 일이 일어나고 있는지 빠르게 알아내기 위한 워크숍 기반 방법입니다.
이를 통해 모든 구성원이 도메인에 대한 이해를 공유하고 같은 방향으로 나아갈 수 있게 됩니다.
부록 2. 변화를 측정한다
주문수 10%가 증가하고 비용은 10% 줄었다.
반대로 CPU의 10%가 증가하고 TPS가 10%는 줄어들 수 있습니다.
이처럼 결과가 좋아지던 안 좋아지던 변화를 측정하여 공유한다면 동료들에게 도전, trade off에 대한 영감을 줄 수 있습니다.
728x90'세미나, 영상 요약정리' 카테고리의 다른 글
실전! 멀티 모듈 프로젝트 구조와 설계 - 김대성 (0) 2022.10.11 어느 날 고민 많은 주니어 개발자가 찾아왔다 - 김영한 (0) 2022.10.10 테스트하기 쉬운 코드로 개발하기 - 정진욱 (0) 2022.10.02 [마틴 파울러] 소프트웨어 아키텍처의 중요성 (한글 자막) (0) 2022.10.01 어디 가서 코틀린 매우 알은 체하기! - 제이슨 (0) 2022.09.27