Skip to content

Commit 58d5661

Browse files
committed
docs: README.md 간소화
1 parent 4c475cf commit 58d5661

File tree

1 file changed

+8
-176
lines changed

1 file changed

+8
-176
lines changed

README.md

+8-176
Original file line numberDiff line numberDiff line change
@@ -1,185 +1,17 @@
1-
# Triple Frontend Monorepo
1+
# Triple Frontend
22

33
[![codecov](https://codecov.io/gh/titicacadev/triple-frontend/branch/main/graph/badge.svg?token=B1ME2OJD68)](https://codecov.io/gh/titicacadev/triple-frontend)
44

5-
트리플 프론트엔드 공용 컴포넌트 및 라이브러리의 [Monorepo](https://en.wikipedia.org/wiki/Monorepo)입니다.
5+
트리플 프론트엔드 공용 컴포넌트 및 라이브러리입니다.
66

7-
[Lerna](https://lerna.js.org/)를 이용해서 작업하고 있습니다.
7+
## 문서
88

9-
`pnpm`이 필요합니다.
9+
[Triple Frontend Storybook](https://storybook.triple-corp.com)에서 컴포넌트 문서와 예시를 볼 수 있습니다.
1010

11-
[설치하기](https://pnpm.io/ko/installation)
11+
## 기여하기
1212

13-
## 소개
13+
[CONTRIBUTING.md](./CONTRIBUTING.md)를 참고해주세요.
1414

15-
프론트엔드 관련 프로젝트 중 애플리케이션 프로젝트에 속하지 않는 공용 컴포넌트 및
16-
라이브러리 프로젝트를 이 저장소에 모아서 관리합니다. 애플리케이션 프로젝트들은
17-
유연한 비즈니스 요구사항 대응을 위해 별도 저장소로 운영해서, 버전 충돌을 피하고
18-
비교적 단순한 배포 주기를 가져갈 수 있도록 합니다.
15+
## 라이선스
1916

20-
이 저장소에 속한 패키지들은 npm의 `@titicaca` 조직이 포함합니다.
21-
22-
### 기능 요청 및 문의
23-
24-
Slack `@frontend` 그룹, `#triple-web-dev` 채널 및 GitHub `@frontend`
25-
26-
### Package Versioning
27-
28-
모든 패키지를 동시에 같은 버전으로 릴리즈합니다. 버저닝 방식은 하위 패키지 전체를
29-
아우르는 [Semantic Versioning](https://semver.org)을 사용합니다: `MAJOR.MINOR.PATCH`
30-
버저닝하며, 아래 설명을 참고하여 해당하는 버전을 올립니다.
31-
32-
> 1. `MAJOR` version when you make incompatible API changes,
33-
> 2. `MINOR` version when you add functionality in a backwards compatible manner, and
34-
> 3. `PATCH` version when you make backwards compatible bug fixes.
35-
36-
#### Versioning by Examples
37-
38-
- 특정 패키지에 기능 추가: 인터페이스 변경 없이 특정 패키지의 기능이
39-
추가되었다면 `MINOR` 버전을 올립니다.
40-
- 패키지 추가: 다른 패키지에 영향이 없는 범위에서 패키지가 추가되었다면 기능
41-
추가로 볼 수 있고, `MINOR` 버전을 올립니다.
42-
- 패키지 분리: 분리 대상인 패키지의 인터페이스에 변경이 일어납니다. 해당
43-
패키지를 이용하는 프로젝트들에 코드 변경이 필요하기 때문에 `MAJOR` 버전
44-
올림에 해당합니다.
45-
- 인터페이스 개선: 인터페이스 변경이 하위 호환을 보장하는지 여부에 따라서
46-
`MAJOR` 혹은 `MINOR` 버전 올림에 해당합니다.
47-
- 버그 수정: 인터페이스 변경이 없는 버그 수정은 `PATCH` 버전 올림입니다.
48-
49-
### Documentation
50-
51-
[Triple Frontend Storybook](https://storybook.triple-corp.com) 페이지에서 컴포넌트
52-
목록과 뷰, 동작을 볼 수 있습니다. `main` 브랜치에 변경 사항을 푸시할 때마다
53-
페이지를 업데이트합니다.
54-
55-
### CI/CD
56-
57-
- GitHub Actions를 이용해 CI/CD를 수행합니다.
58-
- CI: 모든 PR 이벤트마다 동작합니다.
59-
- CD: 슬랙의 `/release triple-frontend` 커맨드로 트리거합니다.
60-
61-
### History
62-
63-
많은 1.0 버전 이전의 변경사항은 [triple-design-system](https://github.com/titicacadev/triple-design-system)
64-
저장소의 PR 및 코멘트를 참조해야 할 수 있습니다.
65-
66-
## 기여
67-
68-
프로젝트 기여자들이 작업하는데 필요한 준비 및 작업 과정을 설명합니다.
69-
70-
### Prerequisites
71-
72-
- Node.js LTS
73-
- pnpm
74-
75-
### Setup
76-
77-
프로젝트를 클론합니다:
78-
79-
```sh
80-
git clone [email protected]:titicacadev/triple-frontend.git && cd triple-frontend
81-
```
82-
83-
디펜던시를 설치합니다:
84-
85-
```sh
86-
pnpm install
87-
```
88-
89-
### Workflow
90-
91-
#### 기능 추가
92-
93-
1. 작업자가 코드 기여
94-
2. 의존성 변경이 있으면, `pnpm run sync-deps` 명령어 실행
95-
3. 커밋 & 푸시
96-
4. PR 생성 & 리뷰
97-
5. 버전 생성 (Optional): `pnpm run version` (경우에 따라 PR과 함께 혹은 별도로 생성)
98-
6. main 머지
99-
7. `/release` 커맨드로 배포
100-
8. 배포 (Optional): CD에서 패키지 publish, npm 페이지 통해서 확인
101-
102-
#### 패키지 추가
103-
104-
1. `lerna create [패키지명]` 커맨드로 패키지 추가
105-
2. 적절한 `package.json``tsconfig.json` 수정 및 생성
106-
3. `pnpm run sync-deps` 명령어 실행
107-
4. `src`에 코드 작성
108-
5. 버전 생성 (Optional): 기존 패키지에서 분리가 일어나서 API 인터페이스에
109-
변경이 있었다면 MAJOR, 기존 패키지와 관련 없는 패키지 추가라면 MINOR 버전
110-
올림
111-
- `pnpm run version -- major`
112-
- `pnpm run version -- minor`
113-
6. 커밋 & 푸시
114-
7. PR 생성 & 리뷰
115-
8. main 머지
116-
9. `/release` 커맨드로 배포
117-
10. 배포 (Optional): CD에서 패키지 publish, npm 페이지 통해서 확인
118-
119-
#### 패키지에 의존성 추가
120-
121-
```bash
122-
pnpm install --workspace=<의존성을 추가할 대상 패키지> <추가할 패키지>
123-
```
124-
125-
devDependency이면 --dev를, peer dependency이면 --peer를 추가합니다.
126-
127-
### Testing
128-
129-
각 패키지별 유닛 테스트를 추가할 예정입니다.
130-
131-
### Review
132-
133-
- 모든 PR 리뷰는 GitHub의 `@frontend` 팀에게 자동으로 할당됩니다.
134-
- 팀 멤버 2인 이상이 승인해야 머지할 수 있습니다.
135-
- 머지 전 머지 체크리스트를 모두 확인해야 합니다.
136-
137-
### 배포하기
138-
139-
새로운 버전에 반영할 내용은 마일스톤을 통해 관리합니다. 가장 먼저 할 일은
140-
이번 릴리즈에 해당하는 마일스톤에서 완료되지 않은 작업을 챙기는 일입니다.
141-
각 이슈의 작업자에게 찾아가 이번 릴리즈에 포함할 예정인지 물어봅시다. 이번 릴리즈에 포함해야 하는데 리뷰가 덜 된 Pull Request는 리뷰를 독려합니다.
142-
143-
마일스톤의 모든 이슈가 완료되었다면 이제 새 버전을 릴리즈할 차례입니다. 다음 순서로 진행합니다.
144-
145-
1. 최신 기본 브랜치에서 릴리즈용 브랜치를 만듭니다.
146-
147-
```bash
148-
git switch -c release/v2.9.0
149-
```
150-
151-
2. 새로운 버전을 올립니다. 원하는 버전을 선택하면 lerna가 알아서 모든 패키지의 버전을 바꿉니다.
152-
153-
```bash
154-
pnpm run version
155-
156-
> version
157-
> lerna version --no-push --force-publish
158-
159-
lerna notice cli v3.22.1
160-
lerna info current version 2.8.0
161-
lerna WARN force-publish all packages
162-
lerna info Assuming all packages changed
163-
? Select a new version (currently 2.8.0) (Use arrow keys)
164-
Patch (2.8.1)
165-
❯ Minor (2.9.0)
166-
Major (3.0.0)
167-
Prepatch (2.8.1-alpha.0)
168-
Preminor (2.9.0-alpha.0)
169-
Premajor (3.0.0-alpha.0)
170-
Custom Prerelease
171-
Custom Version
172-
```
173-
174-
3. Pull Request를 생성하여 변경 내역을 기본 브랜치로 머지합니다. 이때, Pull Request에 `release` 라벨과 마일스톤이 등록되어 있어야 CHANGELOG가 자동으로 작성됩니다. 릴리즈 PR을 생성할 때 반드시 `release` 라벨과 마일스톤을 등록해주세요!
175-
176-
4. `#triple-web-dev-notifications` 채널에서 `/release triple-frontend main`을 입력하여 CD를 실행합니다.
177-
178-
5. 릴리즈가 완료되면 마일스톤을 닫고, 다음 minor 버전의 마일스톤을 생성합니다.
179-
180-
### 주의사항
181-
182-
- Docs를 비롯한 패키지 내에서 다른 패키지를 import하는 경우, 대상 패키지를
183-
빌드한 이후에만 의도한 동작을 수행할 수 있습니다.
184-
- 뷰 및 기능에 변경이 있는 기여인 경우, docs 페이지도 그에 준하게 업데이트해야
185-
합니다.
17+
[MIT License](./LICENSE)

0 commit comments

Comments
 (0)