Pair Programming(PP)을 도입하면 여러 장점이 있다.
- 지식 공유
- 자연스러운 백업, 기술 이전
- 함께 고민, 디버깅, 해결이 빠름
- 업무에 집중
- 실시간 코드 리뷰
- 오류 최소화
- 품질 상승
- 팀워크 향상
- 궁극적으로 생산성, 품질 향상
하지만 이렇게 좋은 PP를 잘 도입하지 않는다.
왜 그럴까?
- 생산성 저하
- 비용 증가
- 감정 문제, 피로드 상승 등등
PP의 장점은 알지만 당장의 손해, 투자 때문에 망설이거나 포기하게 된다.
MSA도 마찬가지라 생각한다.
궁극적인 방향성과 장점은 알지만, 당장 적용하기에는 어려운게 현실적인 상황이다.
[우아콘2020] 배달의민족 마이크로서비스 여행기의 마지막 부분을 보면 이러한 질문을 한다.
왜 MSA를 도입하려는가?
MSA가 필요한가?
당연히 모든 도메인 업무와 조직에 필요하지 않다.
그렇다면 어떤 곳에 MSA가 필요한가?
위의 여행기에서는 이렇게 얘기하고 있다.
기존과 같이 통합 DB로 되어 있다면 Join Query로 간단히 끝날 일이 서비스별 DB를 독립적으로 구성, Event를 발행하고 데이터 동기화하는 등의 노력이 거의 10배가 들었다.
이러한 비용과 노력이 드는데 왜 하는가?
이러한 것들을 상쇄하고도 남을 만한 가치가 있는가?
자문하지 않을 수 없다.
MSA를 도입하려는 곳은 반드시 이 숙제를 풀어야 한다.
그것도 조직, 구성원 스스로...
배민에서는 '생존'과 '절실함' 때문에 도입했다고 한다.
(왜 그랬는지는 영상을 보면 안다.)
이처럼 MSA를 왜 도입하려는지 그 근본적인 질문에 답을 할 수 없다면 아직 도입할 준비가 되지 않은것이라고 보면 된다.
MSA 단점 및 고려사항이 많음에도 불구하고
왜 MSA를 도입하려는가?
꼭 필요한가?
어떤 장점을 얻으려고 하는가?
여러 단점과 고려사항, 투자가 필요함에도 불구하고, 이를 극복하고도 남을만한 장점이 있는가?
위의 질문에 대답할 수 있어야 MSA의 장점, 도입 시 기대효과를 얻을 수 있다.
'MSA해설 > MSA 관련 개념' 카테고리의 다른 글
시스템 복잡성과 생산성(Monolith, Microservices) (0) | 2022.12.13 |
---|---|
MSA 이해 (0) | 2022.11.24 |
MSA 등장배경 (0) | 2022.11.24 |
MSA 단점 및 고려사항 (0) | 2022.11.24 |
MSA 장점 및 도입 시 효과 (0) | 2022.11.24 |