Knowledge types
소프트웨어 프로젝트를 개발할 때 다루게 되는 지식은 크게 세 가지로 나눌 수 있습니다:
기반 지식 (Fundamental Knowledge)
프로그래밍의 기초가 되는 지식으로, 시간이 지나도 크게 변하지 않습니다:
- 알고리즘과 자료구조
- 컴퓨터 과학의 핵심 개념
- 프로그래밍 언어의 기본 원리와 API
기술 스택 (Technical Stack)
프로젝트 개발에 직접적으로 사용되는 도구들에 대한 지식입니다:
- 프로그래밍 언어와 프레임워크
- 라이브러리와 개발 도구
- (선택적으로) 개발 환경과 배포 도구
프로젝트 도메인 지식 (Project Knowledge)
특정 프로젝트에만 해당하는 고유한 지식입니다:
- 비즈니스 로직과 규칙
- 프로젝트만의 아키텍처 결정사항
- 팀 내 개발 규칙과 관례
이러한 지식은 다른 프로젝트에서는 크게 가치가 없지만, 신규 팀원이 프로젝트에 기여하기 위해서는 반드시 필요합니다.
note
Feature-Sliced Design은 이러한 지식 유형을 고려하여 설계되었습니다:
- 프로젝트 도메인 지식에 대한 의존도를 최소화
- 아키텍처가 더 많은 책임을 지도록 설계
- 기술 스택 지식을 체계적으로 구조화
- 새로운 팀원의 온보딩 과정을 단순화