주요 콘텐츠로 건너뛰기

Knowledge types

소프트웨어 프로젝트를 개발할 때 다루게 되는 지식은 크게 다음 세 가지 유형으로 나눌 수 있습니다.

기반 지식 (Fundamental Knowledge)

프로그래밍의 기초가 되는 지식으로, 시간이 지나도 거의 변하지 않습니다.

  • 알고리즘과 자료구조
  • 컴퓨터 과학의 핵심 개념
  • 프로그래밍 언어의 기본 원리와 핵심 API

기술 스택 (Technical Stack)

프로젝트를 실제로 개발할 때 사용하는 도구들에 대한 지식입니다.

  • 프로그래밍 언어와 프레임워크
  • 라이브러리와 개발 도구
  • (선택적으로) 개발 환경, 배포 도구, CI/CD 설정 등

프로젝트 도메인 지식 (Project Knowledge)

특정 프로젝트에만 존재하는 고유한 지식입니다.

  • 비즈니스 로직과 규칙
  • 해당 프로젝트만의 아키텍처 결정 사항
  • 팀 내 개발 규칙과 관례

이러한 지식은 다른 프로젝트에서는 재사용 가치가 상대적으로 낮지만,
새로운 팀원이 이 프로젝트에 기여하기 위해서는 반드시 필요한 정보입니다.

note

Feature-Sliced Design은 위와 같은 지식 유형을 염두에 두고 설계된 아키텍처입니다.

  • 프로젝트 도메인 지식에 대한 의존도를 가능한 한 줄이고
  • 아키텍처가 더 많은 책임을 맡도록 하며
  • 기술 스택 관련 지식을 구조적으로 정리하고
  • 새로운 팀원이 온보딩할 때 필요한 학습량을 줄이는 것을 목표로 합니다.

참고 자료