Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boostcampwm2023/web01-gitchallenge
๐ง๐ปโ๐ป Git Challenge | ๐ฎ๐ฐ๐ป์ ๋ํด ์ผ๋ง๋ ์๊ณ ์๋~?
https://github.com/boostcampwm2023/web01-gitchallenge
git
Last synced: 2 months ago
JSON representation
๐ง๐ปโ๐ป Git Challenge | ๐ฎ๐ฐ๐ป์ ๋ํด ์ผ๋ง๋ ์๊ณ ์๋~?
- Host: GitHub
- URL: https://github.com/boostcampwm2023/web01-gitchallenge
- Owner: boostcampwm2023
- Created: 2023-11-06T01:18:53.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-06T08:13:03.000Z (8 months ago)
- Last Synced: 2024-06-06T09:36:07.901Z (8 months ago)
- Topics: git
- Language: TypeScript
- Homepage: https://git-challenge.com
- Size: 2.45 MB
- Stars: 174
- Watchers: 5
- Forks: 2
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Git Challenge
![Frame 30](https://github.com/boostcampwm2023/web01-GitChallenge/assets/79246447/fe5e7fbd-93fe-40ea-be09-a902b712f6c3)> ๋ฐฐํฌ ๋งํฌ
> **https://git-challenge.com/**
ํ ๋ ธ์
ย | ย
๋ฐฑ๋ก๊ทธ
ย | ย
๊ธฐํ์ ย | ย
figma
๊ทธ๋ผ์ด๋ ๋ฃฐ
ย | ย
๊ฐ๋ฐ ์ํค## ๐ ๋ชฉ์ฐจ
- [๐ ๋ชฉ์ฐจ](#-๋ชฉ์ฐจ)
- [โ๐ป ํ๋ก์ ํธ ๊ฐ์](#-ํ๋ก์ ํธ-๊ฐ์)
- [๐ ํต์ฌ ๊ธฐ๋ฅ](#-ํต์ฌ-๊ธฐ๋ฅ)
- [์์ฃผ ๋ง์ฃผ์น ์ ์๋ Git ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋ณด์ธ์](#์์ฃผ-๋ง์ฃผ์น -์-์๋-git-๋ฌธ์ ๋ฅผ-ํด๊ฒฐํด-๋ณด์ธ์)
- [ํฐ๋ฏธ๋ ํ๊ฒฝ์์ Git์ ์กฐ์ํ ์ ์์ด์](#ํฐ๋ฏธ๋-ํ๊ฒฝ์์-git์-์กฐ์ํ -์-์์ด์)
- [Git ๊ทธ๋ํ๋ก ๋ณํ๋๋ Git ์ํฉ์ ํ์ธํ ์ ์์ด์](#git-๊ทธ๋ํ๋ก-๋ณํ๋๋-git-์ํฉ์-ํ์ธํ -์-์์ด์)
- [๋ฌธ์ ํด๊ฒฐ์ด ์ด๋ ต๋ค๋ฉด ๋์๋ฐ์ ์ ์์ด์](#๋ฌธ์ -ํด๊ฒฐ์ด-์ด๋ ต๋ค๋ฉด-๋์๋ฐ์-์-์์ด์)
- [์ ๋ต์ ๋ง์ถ๋ฉด ๋ด ๋ต์์ ๊ณต์ ํ ์ ์์ด์](#์ ๋ต์-๋ง์ถ๋ฉด-๋ด-๋ต์์-๊ณต์ ํ -์-์์ด์)
- [โ๏ธ ๊ธฐ์ ์คํ](#๏ธ-๊ธฐ์ -์คํ)
- [๐๏ธ ์์คํ ์ํคํ ์ฒ](#๏ธ-์์คํ -์ํคํ ์ฒ)
- [๐ FE ๊ธฐ์ ์ ๋์ ](#-fe-๊ธฐ์ ์ -๋์ )
- [๋์์ธ ์์คํ ๊ตฌ์ถ](#๋์์ธ-์์คํ -๊ตฌ์ถ)
- [์ปดํฌ๋ํธ ํ ์คํธ ์ฝ๋](#์ปดํฌ๋ํธ-ํ ์คํธ-์ฝ๋)
- [D3๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์๊ฐํ](#d3๋ฅผ-์ด์ฉํ-๋ฐ์ดํฐ-์๊ฐํ)
- [UX ๊ฐ์ ](#ux-๊ฐ์ )
- [๐ BE ๊ธฐ์ ์ ๋์ ](#-be-๊ธฐ์ ์ -๋์ )
- [๋์ปค ์ปจํ ์ด๋](#๋์ปค-์ปจํ ์ด๋)
- [HTTP๋ก ์๊ฒฉ ํฐ๋ฏธ๋ ์กฐ์ํ๊ธฐ](#http๋ก-์๊ฒฉ-ํฐ๋ฏธ๋-์กฐ์ํ๊ธฐ)
- [Git editor ์ปค์คํ ](#git-editor-์ปค์คํ )
- [์ฑ์ ์ ์ํด Jest๋ฅผ ์ฐ์ง ์์ ์ด์ ](#์ฑ์ ์-์ํด-jest๋ฅผ-์ฐ์ง-์์-์ด์ )
- [AI ์์คํ ํ๋กฌํํธ ์ค์ ํ๊ธฐ](#ai-์์คํ -ํ๋กฌํํธ-์ค์ ํ๊ธฐ)
- [๐งก ํ์ ์๊ฐ](#-ํ์-์๊ฐ)
## โ๐ป ํ๋ก์ ํธ ๊ฐ์
Git Challenge๋ ์ฌ์ฉ์๋ค์ด git์ ์ฌ์ฉํ๋ฉฐ ๋ฐ์ํ ์ ์๋ ๋ค์ํ ์ํฉ์ ๋ฏธ๋ฆฌ ์ฒดํํ๊ณ , ํ์ตํ ์ ์๋๋ก ๋์์ฃผ๋ ์๋น์ค์ ๋๋ค. ์ด ์๋น์ค๋ฅผ ํตํด ์ฌ์ฉ์๋ค์ git ๋ช ๋ น์ด์ ๋ํด ์ค์ตํ๊ณ , ์ค์ ๋ก ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ํฉ์ ํด๊ฒฐํ๋ ๊ฒฝํ์ ํ ์ ์์ต๋๋ค.
## ๐ ํต์ฌ ๊ธฐ๋ฅ
### ์์ฃผ ๋ง์ฃผ์น ์ ์๋ Git ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋ณด์ธ์
> ์ด ์ธ๊ฐ์ง ๋์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ฒช์ ์ ์๋ Git ๋ฌธ์ ์ํฉ์ ์ค์ตํ๋ฉฐ ์ฐ์ตํด๋ณด์ธ์!
- ํํ ๋ฆฌ์ผ ์ ๋์ ๋์ด๋ **Git start**
- Git start๋ณด๋ค ์ด๋ ค์ด ๋์ด๋์ด๋ฉฐ ์คํ ๋ฆฌ ํ์์ **Git advanced**
- ์๊ฒฉ ์ ์ฅ์์ ๊ด๋ จ๋ ๋ฌธ์ ์ด๋ฉฐ ์คํ ๋ฆฌ ํ์์ **Remote start**### ํฐ๋ฏธ๋ ํ๊ฒฝ์์ Git์ ์กฐ์ํ ์ ์์ด์
> ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ์ง์ Git ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ณ , vi ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉฐ
> ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์ธ์.### Git ๊ทธ๋ํ๋ก ๋ณํ๋๋ Git ์ํฉ์ ํ์ธํ ์ ์์ด์
> Git ๋ช ๋ น์ด ๋์์ ๋ฐ๋ผ ๋ณํ๋๋ Git ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉฐ, Git์ ๋ํ ์ดํด๋ฅผ ๋์ฌ๋ณด์ธ์.
### ๋ฌธ์ ํด๊ฒฐ์ด ์ด๋ ต๋ค๋ฉด ๋์๋ฐ์ ์ ์์ด์
> ๋ฌธ์ ํ์ด์ ํ์ํ ํต์ฌ ๋ช ๋ น์ด์ ๋ชจ๋ฒ ๋ต์์ผ๋ก Git์ ํ์ตํ ํ ๋ฌธ์ ๋ฅผ ๋ค์ ํ์ด๋ณด์ธ์.
### ์ ๋ต์ ๋ง์ถ๋ฉด ๋ด ๋ต์์ ๊ณต์ ํ ์ ์์ด์
> ๋ฌธ์ ๋ฅผ ๋ง์ท๋ค๋ฉด ๋ด ํ์ด๋ฅผ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ณต์ ํด ๋ณด์ธ์.
## โ๏ธ ๊ธฐ์ ์คํ
๋ถ๋ฅ
๊ธฐ์ ์คํ
๊ณตํต
ํ๋ก ํธ์๋
๋ฐฑ์๋
ํจํค์ง ๋งค๋์
๋ฐฐํฌ
ํ์
## ๐๏ธ ์์คํ ์ํคํ ์ฒ
![แแ ตแแ ณแแ ฆแท แแ กแแ ตแแ ฆแจแแ ฅ](https://github.com/boostcampwm2023/web01-GitChallenge/assets/96400112/d94724b8-a7a7-48e6-bba8-891bc7bfd696)
## ๐ FE ๊ธฐ์ ์ ๋์
### ๋์์ธ ์์คํ ๊ตฌ์ถ
| ์ปฌ๋ฌ, ํ์ดํฌ๊ทธ๋ํผ ์์คํ | Semantic Token |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| | |- ์์๊ณผ ๊ธ๊ผด์ ๋์์ธ ํ ํฐ์ผ๋ก ์ถ์ํํ **์ปฌ๋ฌ, ํ์ดํฌ๊ทธ๋ํผ ์์คํ **์ผ๋ก **๋์์ธ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ ์ฝ๊ฒ ๊ด๋ฆฌ**ํ ์ ์์์ต๋๋ค.
- ์์๊ณผ ๊ธ๊ผด์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ **Semantic Token์ผ๋ก ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ์ ์ ์ฝ**ํ ์ ์์์ต๋๋ค.
- ๋์์ธ ๋ณ๊ฒฝ์ด ํ์ํ ๋ ๋ณ์์ ์ฃผ์ ๋ ์์ ์ฝ๋๋ง ์์ ํ๋ฉด ๋์ด **์ด๊ธฐ ๊ฐ๋ฐ ๋จ๊ณ์์ ๋์์ธ ๋ณ๊ฒฝ์ ๋ํ ์ ์ฐ์ฑ์ ํ๋ณด**ํ ์ ์์์ต๋๋ค.### ์ปดํฌ๋ํธ ํ ์คํธ ์ฝ๋
- Describe-Context-It, **DCI ํจํด์ผ๋ก ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ณ์ธตํ**ํ์ฌ ํ ์คํธ ๊ฒฐ๊ณผ์ ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ์ต๋๋ค.
- ๋ณต์กํ ๋ก์ง์ ๊ฐ ๊ตฌ๋ฌธ, ํจ์, ๋ถ๊ธฐ๋ณ๋ก ์ฒ ์ ํ ํ ์คํธํ์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋ฆฌํฉํ ๋ง ์์๋ **์ปดํฌ๋ํธ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์ง**ํ ์ ์์์ต๋๋ค.
- ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ฉฐ ๋์น ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ์ ํ์ ํ์ฌ **TDD๋ก ๊ตฌํ**ํ์ต๋๋ค.### D3๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์๊ฐํ
- Problem
- D3 tree๋ ํธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ ์ด์์์ ๋๋ค. ํ์ง๋ง **Git ๋ก๊ทธ ๋ฐ์ดํฐ๋ ํธ๋ฆฌ๊ฐ ์๋ ๋คํธ์ํฌ ๊ทธ๋ํ ๋ฐ์ดํฐ**์ด๊ธฐ ๋๋ฌธ์ D3 tree ๋ ์ด์์์ ์ ์ฉํ ์ ์๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
- Solved
- Git ๋ก๊ทธ ๋ฐ์ดํฐ์์ **Multiple Parents ๋ ธ๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด,** ์ผ๋ถ ๊ฐ์ ์ ๋ถ๋ฆฌํ์ฌ ํธ๋ฆฌ ๋ฐ์ดํฐ๋ก ๊ฐ๊ณตํ ํ D3 tree ๋ ์ด์์์ ์ ์ฉํ์ต๋๋ค. ์ดํ์๋ **๋ถ๋ฆฌํ ๊ฐ์ ์ ๋ค์ ์ถ๊ฐํ์ฌ ๋คํธ์ํฌ ๊ทธ๋ํ๋ฅผ ์๊ฐํ**ํ์ต๋๋ค.| ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๊ต | ๋ฌธ์ ํด๊ฒฐ |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| | |### UX ๊ฐ์
| ๋๋ฉ ํ์ด์ง | Git ๊ทธ๋ํ ๋ณํ |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| | |- Intersection Observer๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ํ๋ฉด์์ ํ์ฌ ๋ณด์ด๋ ์์ญ์ ๋์ ์ผ๋ก ๊ฐ์งํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก **์คํฌ๋กค ์ด๋ฒคํธ ์ ๋๋ฉ์ด์ ์ ์ค๊ณํ๊ณ ๊ตฌํ**ํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋น์ค์ ์ฒ์ ์ง์ ํ์ ๋ ์ฌ์ฉ์์๊ฒ ์ ์ ํ ๋งฅ๋ฝ์ ์ ๋ฌํ๊ณ , **์์ฐ์ค๋ฌ์ด ํ๋ฉด ์ ํ์ ์ ๊ณต**ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ Git ๋ช ๋ น์ด์ ๋์์ ์๊ฐ์ ์ผ๋ก ํ์ ํ ์ ์๋๋ก Git ๊ทธ๋ํ ๋ณํ์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ์ต๋๋ค. D3์ ๋ฐ์ดํฐ ์กฐ์ธ์ ์ด์ฉํด ๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ๊ทธ๋ฆฌ๊ณ ์ญ์ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ์ต๋๋ค.
## ๐ BE ๊ธฐ์ ์ ๋์
### ๋์ปค ์ปจํ ์ด๋
- ์ฌ์ฉ์๋ณ **๊ฒฉ๋ฆฌ๋** git ๋ฌธ์ ํ์ด ํ๊ฒฝ์ ์ ๊ณตํ๋ฉด์๋, git์ ์ ์ญ ์ค์ ๋ค์ด ๋ค๋ฅธ ์ฌ์ฉ์๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ๊ธฐ ์ํด ๋์ปค ์ปจํ ์ด๋๋ฅผ ์ด์ฉํ์ต๋๋ค.
- ์ปจํ ์ด๋ ์์ฑ ์๊ฐ์ ์๋ผ๊ณ ์ ๊ฐ ๋ฌธ์ ๋ณ๋ก ๋ฏธ๋ฆฌ ์์ฑ๋ ์ปจํ ์ด๋ ํ๊ฒฝ์ ์ฌ์ฉ์๋ฅผ ํ ๋นํ๊ณ ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ค๋ ๋(30๋ถ) ์ปจํ ์ด๋๋ ์๋ ์ ๋ฆฌ๋๋ฉฐ ์ฌ์ฉ์ ์ฌ์ ์ ์ **log ๊ธฐ๋ฐ์ผ๋ก ๋ณต๊ตฌ**๋ฉ๋๋ค.
- ๋คํธ์ํฌ ์ฐจ๋จ, ์คํ ๊ฐ๋ฅ ๋ช ๋ น์ด ๊ฒ์ฆ, ์ ์ ๊ถํ ์ ํ ๋ฑ์ผ๋ก ์ฌ์ฉ์์ ์ ๋ ฅ์ ๊ฒ์ฆํ๊ณ ์ ํํ์ต๋๋ค.### HTTP๋ก ์๊ฒฉ ํฐ๋ฏธ๋ ์กฐ์ํ๊ธฐ
- ssh๋ก ์ปจํ ์ด๋์ ๋ช ๋ น์ ์ ๋ฌํ๊ณ ๋ฐ์์ค๋๋ก ๊ตฌํํ์ผ๋ ์ถฉ๋ถํ ๋น ๋ฅด์ง ์์์ต๋๋ค.
- ์ปจํ ์ด๋ ๊ด๋ฆฌ ๋ฐ ์กฐํ๋ฅผ ์ํ ์์ ๋ฐ์ดํฐ๋ฅผ ๋จ๋ฐ์ ์ผ๋ก ์ ์กํ ๋ ํจ์จ์ ์ธ **HTTP/1.1**์ ์ฌ์ฉํ๋ ์๋ฒ๋ฅผ ์ถ๊ฐ ๋์ ํ์ต๋๋ค.
- HTTP ์๋ฒ๋ฅผ ์ถ๊ฐ๋ก ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ฌ์ฐ๋ฉด์๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์์ ๋ฆฌ์์นํ์ต๋๋ค.### Git editor ์ปค์คํ
- ์ง์ ๊ตฌํํ ํฐ๋ฏธ๋๊ณผ ๋ฐฑ์๋ ๊ตฌ์กฐ๋ก๋ vi Editor์ ๊ฐ์ **์ํธ์์ฉ**์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ํธ์ง๊ธฐ์ ๋์์ ํธ์งํ ํ์ผ์ ์ฝ๋ ๊ณผ์ , ํ์ผ์ ํธ์งํ๋ ๊ณผ์ ๋ ๋จ๊ณ๋ก **์ด์ํ**ํ์ฌ Git์์ core.editor๋ก ์ฌ์ฉํ ํธ์ง๊ธฐ ํ๋ก๊ทธ๋จ์ ์ง์ ์์ฑํ์ต๋๋ค.### ์ฑ์ ์ ์ํด Jest๋ฅผ ์ฐ์ง ์์ ์ด์
- Jest๋ **ํ ์คํ ํ๋ ์์ํฌ**๋ก, ๋จ์ ํ ์คํธ ๋ฐ ํตํฉ ํ ์คํธ๋ฅผ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ , ๋ค์ํ ํ ์คํธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ์์ ๋ฌธ์ ํ๊ฒฝ ์ปจํ ์ด๋๊ฐ Jest ํ ์คํธ๋ฅผ ํต๊ณผํ๋ฉด ์ ๋ต์ ๋๋ค.
- Jest๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ์ ๋ก์ง์ ๋ํด ๋ฉํฐํ๋ก์ธ์ค๋ฅผ ์ด์ฉํด **๋ณ๋ ฌ ์คํ**์ด ๊ฐ๋ฅํฉ๋๋ค.
- Jest ์์ฒด์ ์ผ๋ก ํ ์คํธ ํ๊ฒฝ ์ค์ ๊ณผ ํ ์คํธ ์คํ ํ๊ฒฝ์ ์ค๋นํ๋ ๊ณผ์ ์ด ํ์ํ๊ณ , ์ด ๋๋ฌธ์ ์ผ๋ฐ ์ฝ๋๋ก ์ฑ์ ํ๋ ๊ฒ์ ๋นํด **์๋๊ฐ ๋๋ ธ๊ธฐ** ๋๋ฌธ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค.### AI ์์คํ ํ๋กฌํํธ ์ค์ ํ๊ธฐ
- **HyperCLOVA X ์์ง**์ ์ถฉ๋ถํ ๋ฐฉ๋ํ ์ ๋ณด๋ฅผ ๋๋ตํ ์ ์์ต๋๋ค.
- Git ์ค์น๋ Git๊ณผ ๋ฌด๊ดํ ๋ต๋ณ์ ํ์ง ์๋๋ก ํ์์ต๋๋ค.
- ๊ต์ก์ ์ํด ์ฐฝ์์ ์ธ ํด๊ฒฐ๋ฒ ๋ณด๋ค๋ ํ์ต์ ์ํ **์ ํ์ ์ธ ํด๊ฒฐ๋ฒ**์ ๋ตํ๋๋ก ํ์์ต๋๋ค.
## ๐งก ํ์ ์๊ฐ
| ๋ฐ์ฉ์ค | ๋ฐ์ ์ | ๋ฐ์ ํ | ์ค์ฑํ |
| :----------------------------------------------------------------------------: | :-----------------------------------------------------------------------------: | :--------------------------------------------------------------------------: | :--------------------------------------------------------------------------: |
| | | | |
| **BE** | **BE** | **FE** | **FE** |
| [@flydog98](https://github.com/flydog98) | [@LuizyHub](https://github.com/LuizyHub) | [@YuHyun-P](https://github.com/YuHyun-P) | [@yunchaehyun](https://github.com/yunchaehyun) |