FE System Design
설계의 중요성을 강조하기 전에 설계를 제대로 안하면 발생할 문제들이 있다.
- 유지보수성 : 수정 자체는 30분이 걸리는데, 이를 조사하기 위한 컨텍스트 파악에 하루 이상 걸릴 수 있다.
- 확장성 : 기존 컨텍스트 파악이 완료 되었으나, 기능 추가시 리팩터링이 반드시 필요하다면 확장가능한 구조가 아니다.
- 일관성 : 동일한 유효성 검사 로직인데 어디는 커스텀 validator, zod, joi 등 여러 방법을 쓴다면 이것역시 비용이다.
- 성능 최적화 : 성능이슈로 수정을 하는데 대규모 리팩터링이 필요하다면 수정이 불가능에 가깝다.
- 테스터블 모듈 : 의존성 분리가 어렵고 테스트 가능한 단위가 명확하지 않으면 기능추가에 사이드 이팩트를 보장할 수 없다.
- -> 스파게티 코드, 개발 속도 저하, 협업 커뮤니케이션 비용, 사용자 경험 악화