Mission
이 문서는 우리가 이 방법론을 설계할 때 어떤 목표를 가지고 있는지, 그리고 실제로 적용할 때 어떤 한계가 있는지를 설명합니다.
이 방법론의 목표는 이념적 완벽함과 실용적인 단순성 사이의 균형을 맞추는 것입니다. 모든 사람과 모든 프로젝트에 100% 들어맞는 만능 해결책은 존재하지 않습니다.
그럼에도 불구하고, 이 방법론은 다양한 개발자들이 쉽게 접근할 수 있고, 실제 업무에서 충분히 쓸 만해야 합니다.
다양한 개발자에게 직관적이고 명확하게
섹션 제목: “다양한 개발자에게 직관적이고 명확하게”방법론은 프로젝트에 참여하는 대부분의 팀원들이 쉽게 이해하고 사용할 수 있도록 설계되어야 합니다.
새로운 도구나 개념이 추가되었을 때, 시니어나 리더급 개발자만 이해할 수 있다면 그 방법론은 충분하지 않습니다.
일상적인 문제 해결
섹션 제목: “일상적인 문제 해결”방법론은 실제 개발 과정에서 자주 맞닥뜨리는 문제들에 대해 명확한 기준과 해결책을 제시해야 합니다.
이를 위해 CLI, 린터(linter) 같은 도구도 함께 제공하는 것이 중요합니다.
이런 도구들을 통해 개발자들은
- 아키텍처 설계나 구현 과정에서 반복적으로 발생하는 문제를 줄이고,
- 이미 검증된 접근 방식을 자연스럽게 사용할 수 있습니다.
@sergeysova: 방법론을 기반으로 코드를 작성하는 개발자는 이미 많은 문제에 대한 “해법 세트”를 가지고 시작한다고 상상해 보세요. 문제 발생 빈도가 10배 정도 줄어든다고 생각할 수 있습니다.
우리는 특정 관점을 강요하지 않으려 하면서도, 동시에 개발자로서 기존 습관이 오히려 문제 해결을 방해할 수 있다는 점도 인지하고 있습니다.
개발자마다 시스템 설계 경험과 개발 경력이 다르기 때문에, 아래 내용을 이해하는 것이 중요합니다.
-
항상 통하지는 않음 단순하고 명확한 접근법이라고 해서 모든 상황, 모든 사람에게 항상 효과적이라고 볼 수는 없습니다.
@sergeysova: 어떤 개념은 직접 문제를 겪고, 오랜 시간 고민하며 해결해 보는 과정을 거쳐야만 비로소 직관적으로 이해할 수 있습니다.
- 수학: 그래프 이론
- 물리학: 양자 역학
- 프로그래밍: 애플리케이션 아키텍처
-
가능하고 바람직한 방향 이 방법론은 단순함과 확장 가능성을 지향하는 방향으로 설계되었습니다.