오픈빌더 기술적부채상환 - ChoDragon9/posts GitHub Wiki
범블비가 롱런가능한 프로젝트로 만들기 위해 18.12 오픈빌더 리펙토링를 일부 진행했었다. 그리고 FRP(함수형 리엑티브 프로그래밍)을 적용하기 위해 RxJs와 RP(리엑티브 프로그래밍)에 대한 정의를 다시 리서치를 했고, FP(함수형 프로그래밍)에 대한 깊은 내용을 학습하고 있었다.
하지만 중요한 사실을 놓치고 간것 같다. 현재 남아 있는 기술적부채를 상환하지 않고 리엑티브 프로그래밍을 적용한다면 아래와 같은 문제가 발생될 거라 생각한다.
1. 전체 프로젝트에서 일부만 RP이 되어 있다.
현실적으로 RP를 적용하기 위해서는 많은 학습시간과 적용하면서 습득하는 경험이 필요하다. 그리고 모든 모듈에 적용하기에는 스펙들이 계속 치고 들어오기 때문에 전체를 RP로 적용하려면 시간이 굉장히 많이 소요될 것이다.
2. 스펙 수정 및 추가가 되지 않는 모듈은 여전히 기술적부채가 남아 있다.
1번에 연속으로 스펙이 계속 치고들어오고, 학습시간을 필요하는 데 전체를 볼 수 있는 여유가 있을 까 생각해보면 나는 불가능하다고 본다. 즉, 신경쓰지 못한 부분이 생기게 되고 일관성 없고 구린내나는 코드가 남게 된다.
3. Angular, TypeScript, RxJs라는 러닝커브가 높은 오픈소스로 인해 프로젝트의 진입점이 높아진다.
사용방법만 알고 프로젝트에 적용하는 것과 오픈소스의 철학을 알고 적용하는 것은 다른 문제이다. 오픈소스의 철학을 알고 사용방법을 알아야만 해당 오픈소스를 사용하는 효과가 발생하게 된다. Vue, React, Vanilla Js를 사용하던 개발자라면 짧은 시간에 Angular, TypeScript, RxJs의 모두 학습한체 전투에 투입될 수 있을 까? 이것 또한 불가능하다고 본다. 이 오픈소스들을 학습하려면 오랜 시간이 걸리지만 현실적으로는 의사결정권자들은 전투에 바로 투입되길 원할 것이다. 그럼 다시 기술적부채가 쌓이지 않을 까 생각된다.
결론
위와 같은 이유들 때문에 개발자 1명이라는 제한된 인력과 시간으로 범블비를 지속가능하게 하려면 새로운 프로그래밍 페러다임(현재는 일반적인 FRP가 적용안되있음)을 적용하기 앞서 기술적부채를 상환하는 게 먼저이다!!
기술적부채는 어떻게 상환할것인가??
모든 명확한 기술이 중요하다고 생각한다. 기술적부채는 Code Climate 도구에서 제시하는 분석 포인트 10가지를 기준으로 할 것이다. 이러한 학습의 결과물은 Technical Debt에 정리하여 지속적으로 사용할 생각이다.