Skip to content

Commit 2f86038

Browse files
committed
docs: architecture page feedback
1 parent 0e3eefb commit 2f86038

File tree

1 file changed

+33
-35
lines changed
  • i18n/kr/docusaurus-plugin-content-docs/current/about/understanding

1 file changed

+33
-35
lines changed

i18n/kr/docusaurus-plugin-content-docs/current/about/understanding/architecture.md

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,76 +10,74 @@ sidebar_position: 1
1010

1111
### Bus-factor & 온보딩
1212

13-
제한된 수의 사람들만이 프로젝트와 그 아키텍처를 이해합니다.
13+
제한된 인원만이 프로젝트와 그 아키텍처를 이해합니다.
1414

1515
**예시:**
1616

17-
- *"개발에 새로운 인력을 추가하기가 어렵습니다""*
18-
- *"모든 문제에 대해 각자가 해결 방법에 대한 자신만의 의견을 가지고 있습니다 (앵귤러가 부러워요)"*
17+
- *"개발에 새로운 인력을 추가하기가 어렵습니다"*
18+
- *"문제 해결 방식에 대한 명확한 가이드라인이 없어 개발자마다 각기 다른 접근 방식을 사용합니다"*
1919
- *"이 거대한 모놀리스에서 무슨 일이 일어나고 있는지 이해할 수 없습니다"*
2020

21-
### 암묵적이고 통제되지 않는 결과들
21+
### 의도치 않은 부작용과 통제되지 않는 영향
2222

23-
개발/리팩토링 중 많은 암묵적인 부작용들이 있습니다 *("모든 것이 모든 것에 의존합니다")*
23+
개발/리팩토링 중 많은 의도치 않은 부작용들이 있습니다 *("모든 것이 모든 것에 의존합니다")*
2424

2525
**예시:**
2626

27-
- *"기능이 다른 기능을 임포트합니다"*
28-
- *"한 페이지의 스토어를 업데이트했더니 다른 페이지의 기능이 작동하지 않습니다*
29-
- *"로직이 애플리케이션 전체에 퍼져있어서 어디가 시작이고 어디가 끝인지 추적할 수 없습니다"*
27+
- *"기능 간의 부적절한 의존성이 발생하고 있습니다"*
28+
- *"한 페이지의 상태(store) 변경이 다른 페이지의 기능에 예기치 않은 영향을 미칩니다"*
29+
- *"비즈니스 로직이 애플리케이션 전반에 분산되어 있어 로직의 흐름을 추적하기 어렵습니다"*
3030

3131
### 통제되지 않는 로직의 재사용
3232

3333
기존 로직을 재사용하거나 수정하기 어렵습니다.
3434

3535
동시에, 보통 [두 가지 극단적인 경우](https://github.com/feature-sliced/documentation/discussions/14)가 나타납니다:
3636

37-
- 각 모듈에 대해 로직을 완전히 처음부터 작성하거나 *(기존 코드베이스에서 반복 가능한 부분을 포함하여)*
38-
- 또는 모든 구현된 모듈을 `shared` 폴더로 옮기려는 경향이 있어, *대부분 한 곳에서만 사용되는 모듈들로 이루어진 커다란 코드 dump 만들어집니다.*
37+
- 각 모듈에 대해 로직을 완전히 처음부터 작성하거나 *(기존 코드베이스에서 재사용 가능한 부분까지 포함하여)*
38+
- 또는 모든 구현된 모듈을 `shared` 폴더로 이동하려는 경향이 있어, *대부분 단일 사용 목적의 모듈들이 무분별하게 축적되는 현상이 발생합니다.*
3939

4040
**예시:**
4141

42-
- *"프로젝트에 동일한 비즈니스 로직이 **N**구현되어 있으며, 이를 유지하는 데 지속적으로 비용이 발생하고 있습니다."*
43-
- *"button/pop-up/... 의 6가지 같은 형태의 컴포넌트가 있습니다"*
44-
- *"Dump of helpers"*
42+
- *"프로젝트 내에 동일한 비즈니스 로직이 **N**번 중복 구현되어 있어 유지보수 비용이 지속적으로 발생합니다"*
43+
- *"동일한 기능의 버튼/팝업 등 UI 컴포넌트가 여러 버전으로 존재합니다"*
44+
- *"유틸리티 함수들이 체계 없이 누적되어 있습니다"*
4545

4646
## 요구사항
4747

48-
따라서 이상적인 아키텍처를 위한 *필요 요건*정의하는 것이 합리적일 것입니다.
48+
이상적인 아키텍처를 위한 *핵심 요구사항*다음과 같이 정의할 수 있습니다.
4949

5050
:::note
51-
52-
"쉽다"는 대부분의 개발자들이 상대적으로 쉽게 이해할 수 있다는 의미입니다. [모든 사람에게 완벽한 솔루션을 제공하는 것은 현실적으로 불가능하기 때문입니다.](/docs/about/mission#limitations)
53-
51+
여기서 "쉽다"라는 표현은 "대다수의 개발자들이 합리적인 시간 내에 이해하고 적용할 수 있다"는 의미입니다. [모든 개발자와 상황에 완벽하게 부합하는 솔루션은 현실적으로 불가능하기 때문입니다.](/docs/about/mission#limitations)
5452
:::
5553

5654
### 명시성
5755

58-
- 팀이 프로젝트와 아키텍처를 **쉽게 이해하고 설명할 수 있어야** 합니다.
59-
- 구조는 프로젝트의 **비즈니스 가치를 반영**해야 합니다.
60-
- 추상화 간의 **연결과 부작용**이 명확히 드러나야 합니다.
61-
- **중복된 로직을 쉽게 탐지**할 수 있어야 합니다.
56+
- 팀원들이 프로젝트 구조와 아키텍처를 **직관적으로 이해하고 설명할 수 있어야** 합니다.
57+
- 아키텍처는 프로젝트의 **비즈니스 도메인과 가치를 명확히 반영**해야 합니다.
58+
- 추상화 계층 간의 **의존성과 부작용**이 명확히 파악되어야 합니다.
59+
- **중복 로직을 효과적으로 식별**할 수 있어야 합니다.
6260
- 프로젝트 전반에 걸쳐 **로직이 분산**되지 않도록 해야 합니다.
63-
- **너무 많은 이질적인 추상화와 규칙**이 생기지 않도록 해야 합니다.
61+
- **불필요한 추상화와 복잡한 규칙**을 최소화해야 합니다.
6462

6563
### 제어
6664

67-
- 좋은 아키텍처는 **기능 추가와 문제 해결 속도를 높여야** 합니다.
68-
- 프로젝트의 전반적인 개발 과정을 효율적으로 제어할 수 있어야 합니다.
69-
- **코드를 확장, 수정, 삭제하기** 쉽게 만들어야 합니다.
70-
- 기능별로 **분리와 격리**명확히 이루어져야 합니다.
71-
- 각 컴포넌트는 **쉽게 교체하고 제거할 수 있어야** 합니다.
72-
- *[변경을 대비한 최적화는 필수가 아닙니다][ext-kof-not-modification] - 미래를 정확히 예측할 수 없기 때문입니다.*
73-
- *[삭제를 용이하게 하는 최적화가 더 중요합니다][ext-kof-but-removing] - 이미 존재하는 컨텍스트를 기반으로 작업하는 것이현실적입니다.*
65+
- 효과적인 아키텍처는 **새로운 기능 개발과 문제 해결의 생산성을 향상**시켜야 합니다.
66+
- 프로젝트의 전반적인 개발 흐름을 효율적으로 관리할 수 있어야 합니다.
67+
- **코드의 확장성, 유지보수성, 제거 용이성**을 보장해야 합니다.
68+
- 기능 단위의 **명확한 경계와 격리**보장되어야 합니다.
69+
- 각 컴포넌트는 **높은 교체성과 제거 용이성**을 가져야 합니다.
70+
- *[변경을 위한 과도한 최적화는 지양합니다][ext-kof-not-modification] - 미래의 변경사항을 정확히 예측하기 어렵기 때문입니다.*
71+
- *[제거 용이성을 위한 설계가 더 중요합니다][ext-kof-but-removing] - 현재의 컨텍스트를 기반으로 한 의사결정이실용적이기 때문입니다.*
7472

7573
### 적응성
7674

77-
- 좋은 아키텍처는 **대다수의 프로젝트**에서 활용 가능해야 합니다.
78-
- *기존 인프라와 잘 연동될 수 있어야 합니다.*
79-
- *개발의 모든 단계에서 유연하게 적용될 수 있어야 합니다.*
80-
- 특정 프레임워크나 플랫폼에 의존하지 않아야 합니다.
81-
- 개발이 병렬로 진행될 수 있도록 하며, **프로젝트와 팀을 쉽게 확장**할 수 있어야 합니다.
82-
- **변화하는 요구사항과 상황에도 쉽게 적응** 수 있어야 합니다.
75+
- 효과적인 아키텍처는 **다양한 규모와 유형의 프로젝트**에 적용 가능해야 합니다.
76+
- *기존 시스템 및 인프라와의 원활한 통합이 가능해야 합니다.*
77+
- *프로젝트의 모든 개발 단계에서 일관되게 적용될 수 있어야 합니다.*
78+
- 특정 기술 스택이나 플랫폼에 종속되지 않아야 합니다.
79+
- **병렬 개발과 팀 확장**이 용이해야 합니다.
80+
- **비즈니스 요구사항과 기술 환경의 변화**에 유연하게 대응할 수 있어야 합니다.
8381

8482
## See also
8583

0 commit comments

Comments
 (0)