시니어 개발자가 짊어지는 '프로젝트 완수'와 '주니어 성장'이라는 상충하는 책임을, 도전을 없애는 대신 실패의 범위를 측정하고 격리하는 방식으로 푸는 방법을 다룬다. 업무 분해로 위험을 재고 코드 구조로 실패를 가두는 기술적 안전망을 프론트엔드 사례로 구체화한다.
핵심 포인트- 익숙한 사람에게만 일을 주면 truck factor가 커지고 너무 어려운 일은 자신감과 안정성을 함께 잃는 딜레마를, 실패 범위를 측정·격리하는 구조 설계로 해소
- feature slicing으로 큰 프로젝트를 작은 단위로 쪼개 주니어·시니어의 공수 예상 차를 줄이고, planning poker를 일정 숫자보다 이해도를 맞추고 rabbit-hole을 조기 감지하는 신호로 활용
- Interface Segregation Principle로 거대한 API 응답 대신 프로필·연락처·관리자용 작은 view model·interface만 제공해 주니어의 책임 범위와 실패 반경을 좁힘
- Dependency Inversion과 React hook으로 fetch·loading·error를 hook 뒤에 숨겨, 내부를 fetch→React Query로 바꿔도 화면 코드는 그대로 두고 실패를 hook 안에 고립 — UI와 데이터 로직을 독립 테스트
왜 읽나주니어에게 도전을 맡기면서도 프로젝트 리스크를 통제해야 하는 팀 리드·시니어에게 SOLID 원칙을 성장 관리 도구로 쓰는 구체적 방법을 주는 발표.