๐ก ์๋ ํ์ธ์. Open UP ์ด์์ฌ๋ฌด๊ตญ์ ๋๋ค. ๋ณธ ํ์ด์ง๋ 13์ฃผ๊ฐ ์งํ๋ Challenges(4์ฃผ) ๋ฐ Masters(9์ฃผ) ํ๋ก๊ทธ๋จ ๊ธฐ๊ฐ ๋์ ์งํํ๋ โ ๋ฉํฐ ํ๋, โก์ปจํธ๋ฆฌ๋ทฐ์ ๋ด์ญ์ ์ ๋ฆฌํ๋ ์ต์ข ๋ณด๊ณ ์ ์์ฑ ํ์ด์ง์ ๋๋ค.
**๋ฉํฐ**์ต์ข ๋ณด๊ณ ์์ฑ ๊ธฐ๊ฐ: ~10์ 15์ผ(์) โ 13์ฃผ๊ฐ ์งํ๋ ํ๋ก๊ทธ๋จ ํ๋์ ๋ํ ์ต์ข ๋ณด๊ณ ์ ์์ฑ โ ์ค๊ฐ๋ณด๊ณ ์ ๋์ผํ๊ฒ, ์ฌ๋ฌด๊ตญ์ด ๊ฐ๋ณ ๋ ธ์ ํ์ด์ง ์ด์ฒญ โ ํด๋น ํ์ด์ง์์ ์ต์ข ๋ณด๊ณ ์ ์์ฑ**์ฌ๋ฌด๊ตญ**๋ฉํฐ ์ต์ข ๋ณด๊ณ ๊ฒํ ๊ธฐ๊ฐ: ~10์ 17์ผ(๊ธ)**๋ฉํ **์ต์ข ๋ณด๊ณ ์์ฑ ๊ธฐ๊ฐ: ~10์ 15์ผ(์)** **โ ๋ฉํฐ ์ต์ข ๋ณด๊ณ ์ ์์ฑ ์ดํ, ๋ฉํ ๊ฐ ํ ์ต์ข ๋ณด๊ณ ์ ์์ฑ โ ๋ณธ ๋ณด๊ณ ์๋ ์์นด๋ฐ๋ฏธ ์ต์ข ์์ํ ์ ์ ์ ์ํ ์ค์ํ ๊ธฐ์ค!!๐ก
**2025 OSSCA ํ๋ก๊ทธ๋จ ์ต์ข ์๋ฃ**** **๋ฅผ ์ํด์ ๋ฉํฐ ๊ฐ๋ณ ์ต์ข ๋ณด๊ณ ์ ์ ์ถ์ ํ์์ ๋๋ค.
๐ ์ํํ ๋ณด๊ณ ์ ์์ฑ ๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ์ํด โ23 ์คํ์์ค ์ปจํธ๋ฆฌ๋ทฐ์ ์์นด๋ฐ๋ฏธ [์ฐธ์ฌํ] ํ ๋ฉํฐ์ ์ต์ข ๋ณด๊ณ ์๋ฅผ ์ฐธ๊ณ ์๋ฃ๋ก ๊ณต์ ํฉ๋๋ค.
- ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด, ์์ ์๋ฃ ๋ด ์ฌ์ง, ์ฑํจ ๋ฑ์ ๋ชจ์์ดํฌ ๋ฐ ์ผ๋ถ ์ญ์ ํ์ต๋๋ค.
โ๏ธ ๋ฉํฐ ์ ๋ณด
๐ก ํ๋ก์ ํธ๋ช & ์ด๋ฆ & ์ปจํธ๋ฆฌ๋ทฐ์ ๊ธฐ๊ฐ
**ํ๋ก์ ํธ๋ช : **Githru-vscode-ext
์ด๋ฆ : ๋ฐ์ฌํ
**2025 OSSCA [์ฐธ์ฌํ] ํ๋๊ธฐ๊ฐ: ์ฝ 13์ฃผ**2025. 7. 12 (ํ ) - 2025. 11. 1 (ํ )
**[Challenges: 4์ฃผ]**2025. 7. 12 (ํ ) - 2025. 8. 15 (๊ธ)
**[Masters: 9์ฃผ]**2025. 8. 16 (ํ ) - 2025. 11. 1 (ํ )
โ๏ธ ์ปจํธ๋ฆฌ๋ทฐ์ ํ๋ ๋ด์ญ
๐ก Challenges(4์ฃผ) & Masters(9์ฃผ) ํ๋ก๊ทธ๋จ ๊ธฐ๊ฐ ๋์ ์งํํ๋ ํ๋ ๋ด์ญ์ ๋ชจ๋ ์ ๋ฆฌํด ์ฃผ์ธ์.
- ์งํ ๊ณผ์ , ๊ธฐ์ฌ ํ๋ ๋ด์ญ, ๊ด๋ จ ๋งํฌ, ์จโธฑ์คํ๋ผ์ธ ๋ชจ์ ๋ฑ
์์ฝ
| ํญ๋ชฉ | ๋น๊ต | ๊ฐ (์ค) |
|---|---|---|
| ์ถ๊ฐ | 1137 ์ค | |
| ์ญ์ | 846 ์ค |
+1137์ค ์ถ๊ฐ
์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๋ฆฌํฉํ ๋ง
-846์ค ์ญ์
๋ ๊ฑฐ์ ์ฝ๋ ์ ๋ฆฌ
22% ๋ณ๊ฒฝ
์ ์ฒด ์ฝ๋ ๋๋น ๋ณ๊ฒฝ ๋น์จ
- ์ฃผ์ ๊ธฐ์ฌ ๋ด์ฉ : CSMDict ๋ฅผ ๋น๋๋ก์ง์ ์ต์ ์ปค๋ฐ๋ถํฐ ์งํํ๋ ๊ฒ์ผ๋ก ๋ฐฉํฅ ์ ํ
์์ธ๋ชฉ๋ก
PR
| ์ ๋ชฉ | ๋ถ๋ฅ | ๋ ์ง |
|---|---|---|
| https://github.com/githru/githru-vscode-ext/pull/801 | fix | 07/22 |
| https://github.com/githru/githru-vscode-ext/pull/810 | refactor | 07/29 |
| https://github.com/githru/githru-vscode-ext/pull/890 | refactor | 09/18 |
| https://github.com/githru/githru-vscode-ext/pull/914 | feature | 09/30 |
| https://github.com/githru/githru-vscode-ext/pull/915 | refactor | 09/30 |
| https://github.com/githru/githru-vscode-ext/pull/917 | feature | 09/30 |
| https://github.com/githru/githru-vscode-ext/pull/920 | fix | 10/01 |
Issue
ํ๋ ๋ด์ฉ
1๏ธโฃย Githru/Performance ํ ์ ๊ธฐ/๋น์ ๊ธฐ ๋ชจ์
- ๋งค์ฃผ ์์์ผ 19:30 ์ ๊ธฐ์ ์ผ๋ก Open Up ๋๋ ๋์ค์ฝ๋๋ก ์จ/์คํ๋ผ์ธ ๋ชจ์ ์งํ
- Performance/Refactor/Test ๊ฐ ํ์ ๊ธ์ฃผ ์งํ ํํฉ ๋ฐ ์ฐจ์ฃผ ๊ณํ ๊ณต์
- ๋ ผ์๊ฐ ํ์ํ ๋ด์ฉ์ด ์์ ๊ฒฝ์ฐ, ํด๋น ์๊ฑด์ ๋ํ ํ์ ์งํ
- ๋ฉํ ๋๊ป ์ค์๊ฐ ์ง์ ๋ฐ ํผ๋๋ฐฑ ์์ฒญ
- ๋ชจ๊ฐ์ฝ ์งํ















2๏ธโฃย ์ธ๋ฏธ๋ ์ฐธ์ฌ
- ๋น์ ๊ธฐ์ ์ธ ๋ฉํ ๋ ์ธ๋ฏธ๋ ์ฐธ์ฌ


3๏ธโฃย ์๋ฃ ๊ณต์
- AI, ํ์ ๋ด์ฉ, Githru ๋ฑ ์ฌ๋ฌ ์ฃผ์ ์ ๊ด๋ จ๋ ๋ค์ํ ๋ด์ฉ ๊ณต์






4๏ธโฃย ๋ ผ์ํ ๋ด์ฉ ๊ณต์





์ฃผ์ ๊ธฐ์ฌ ๋ด์ฉ
1๏ธโฃย CSM Squash merge ๋ฐฉํฅ ๊ฐ์
์ต์ ์์ผ๋ก CSM(Commit Summary Model) ๋น๋ ์ squash merge ๋ก์ง์ ๊ฐ์ ํ์ฌ over-squashing ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- CommitNode์ mergedIntoStem ํ๋๊ทธ ์ถ๊ฐ
- ๋จธ์ง ๋ถ๋ชจ ๋
ธ๋๊ฐ ์ด๋ stem์ผ๋ก ๋ณํฉ๋์๋์ง ์ถ์ ํ๋ย
mergedIntoStemย ํ๋ ์ถ๊ฐ - ์ด๋ฅผ ํตํด ํฅํ ๋จธ์ง ํฌ์ธํธ๋ฅผ ์ ํํ๊ฒ ์๋ณ ๊ฐ๋ฅ
- Squash ๋ฒ์ ์ ํ ๋ก์ง ๊ตฌํ
- AS-IS : stem์ ๋๊น์ง ๋ชจ๋ ๋ ธ๋๋ฅผ squash (over-squashing ๋ฐ์)
- TO-BE : ๋ค์ย
mergedIntoStemย ๋ ธ๋ ์ง์ ๊น์ง๋ง squash - ์ดํ ๋จธ์ง๋ฅผ ์ํด ๋จ๊ฒจ๋ฌ์ผ ํ ์ปค๋ฐ์ ๋ณดํธ
- ์ปค๋ฐ ์ ๋ ฌ ์์ ์์
- ์๊ฐ์ ์ ๋ ฌ: ์ค๋๋ ์ปค๋ฐ โ ์ต์ ์ปค๋ฐ (์ฌ๋ฐ๋ฅธ ์์)
commit.sequenceย ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ ์ฉ
- ํ ์คํธ ์ผ์ด์ค ์ ๋ฐ์ดํธ
- ๋ชจ๋ ํ
์คํธ ๋ฐ์ดํฐ์ย
mergedIntoStemย ํ๋๊ทธ ๋ช ์ - master ๋ธ๋์น์ sub1 ๋ธ๋์น ์ผ์ด์ค ๋ชจ๋ ์ ๋ฐ์ดํธ
- ๋จธ์ง ๊ตฌ์กฐ๋ฅผ ๋ช ํํ๊ฒ ํํํ์ฌ ํ ์คํธ ์ ๋ขฐ์ฑ ํฅ์
2๏ธโฃย CSMDict Pagination builder ๊ตฌํ
๋๊ท๋ชจ ์ ์ฅ์์์ ํจ์จ์ ์ธ ์ง์ฐ ๋ก๋ฉ(lazy loading)์ ์ํด ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ ์ง์ํ๋ CSM Dictionary Builder๋ฅผ ๊ตฌํ
**buildPaginatedCSMDict****ย ํจ์ ์ถ๊ฐ**
- ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์
:ย
lastCommitId๋ฅผ ์ปค์๋ก ์ฌ์ฉํ์ฌ ๋ค์ ํ์ด์ง ํ์ - ํ์ด์ง ํฌ๊ธฐ ์ ์ด:ย
perPageย ํ๋ผ๋ฏธํฐ๋ก ํ ๋ฒ์ ๋ก๋ํ ์ปค๋ฐ ์ ์กฐ์ - ์ ํจ์ฑ ๊ฒ์ฆ: perPage, stemDict, lastCommitId์ ๋ํ ํฌ๊ด์ ์ธ ๊ฒ์ฆ
- PR ํตํฉ: ๊ธฐ์กดย
buildCSMDict์ ๋์ผํ๊ฒ Pull Request ์ ๋ณด ํตํฉ
- ์ฝ๋ ํ์ง ๊ฐ์ (๋ฆฌํฉํ ๋ง)
- ์ค๋ณต ์ ๊ฑฐ:ย
buildPRDictย ์ ํธ๋ฆฌํฐ ํจ์ ์ถ์ถ - ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ:ย
buildCSMNodesWithPRย ํจ์ ์ถ์ถ๋ก ๊ณตํต ๋ก์ง ๊ณต์ - JSDoc ๊ฐ์ : ๋ชจ๋ ํจ์์ ์์ธํ ๋ฌธ์ํ ๋ฐ ์์ ์ถ๊ฐ
- ์ผ๊ด์ฑ: ๋ณ์๋ช ํต์ผ (prDict, baseStem) ๋ฐ ๊ฒ์ฆ ๋ก์ง ์ผ๊ดํ
- ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ๊ฐํ
- 8๊ฐ์ ํ
์คํธ ์ผ์ด์คย ์ถ๊ฐ (
csm.spec.ts)
3๏ธโฃย remote Repo ํ์ฑ ํจ์ ๊ฐ์
- Azure DevOps URL ํ์ฑ ์ง์
- ๊ธฐ์กด ๋ฌธ์ : getRepo ํจ์๊ฐ GitHub URL๋ง ์ง์ํ์ฌ Azure DevOps ์ ์ฅ์์์ ์ค๋ฅ ๋ฐ์
- ํด๊ฒฐ ๋ฐฉ์: Azure DevOps URL ํจํด์ ์ง์ํ๋๋ก ์ ๊ท์ ํจํด ์ถ๊ฐ
- ์ง์ URL ํ์:
- ** ํ ์คํธ ์ฝ๋ ์ถ๊ฐ**
- GitHub URL ๋ค์ํ ํ์ ๊ฒ์ฆ (HTTPS/SSH, .git ํ์ฅ์ ์ ๋ฌด, ์ฌ์ฉ์๋ช ํฌํจ ๋ฑ)
- Azure DevOps URL ํ์ ๊ฒ์ฆ
- ์๋ชป๋ URL ํ์์ ๋ํ ์๋ฌ ์ฒ๋ฆฌ ๊ฒ์ฆ
๋ก์ง ๋ถ์์ ์ํ ํ ์คํธ ์๊ฐํ





โ๏ธ ์ ๋์ ์ฑ๊ณผ ์์ฝ
๐ก ๊ธฐ์ฌ ํ๋์ ๋ํด ๋ช ์์ ์ผ๋ก ํ์ธํ ์ ์๋๋ก, ๊ธฐ์ฌ์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ๋์ ์ฑ๊ณผ๋ฅผ ์์ฑํด ์ฃผ์ธ์. ํ & ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ ์์ฒญ๋๋ฆฝ๋๋ค. **- ํ์ ํญ๋ชฉ : ์๋ ํ์ ํญ๋ชฉ 4๊ฐ (PR, ๋จธ์ง, ์ปค๋ฐ, ์ด์) ** โป ํ์ ํญ๋ชฉ ๋ชจ๋ ์ฑ์ธ ์ ์๋ ๊ฒฝ์ฐ์๋, ์ฑ์ธ ์ ์๋ ํญ๋ชฉ๋ง ์ฑ์์ฃผ์ธ์. โป ํ์ ํญ๋ชฉ ์ธ์ ๊ธฐํ ํญ๋ชฉ์(๋ฆฌ๋ทฐ, ๋ฒ์ญ ๋ฑ) ํ์ ํญ๋ชฉ ๋ฐ์ผ๋ก ์ด์ด์ ์์ฑํด ์ฃผ์ธ์.
| ์ด ํฉ๊ณ | Challenges | Masters | |
|---|---|---|---|
| Pull Request | 7 | 2 | 5 |
| Merge | 10 | 2 | 8 |
| Commit | 29 | 8 | 21 |
| Issue | 17 | 6 | 11 |
| Review | 16 | 6 | 10 |
| ๋ชจ์ | 17 | 7 | 10 |
โ๏ธ ์์นด๋ฐ๋ฏธ ์ฐธ๊ฐ ํ๊ธฐ & ์์ผ๋ก์ ๊ณํ
๐ก ์ฝ 13์ฃผ๊ฐ ๋ฌ๋ ค์จ ์ฌ๋ฌ๋ถ! ์ ๋ง ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค. ์์นด๋ฐ๋ฏธ ํ๋ก๊ทธ๋จ ์ฐธ๊ฐ ํ๊ธฐ๋ฅผ ๋ง์ํด ์ฃผ์ธ์. ๋ ํฅํ ์ปจํธ๋ฆฌ๋ทฐํฐ๋ก์จ ๋ฉํฐ๋์ ๊ณํ์ ์์ฑํด ์ฃผ์ธ์.
์ฝ 13์ฃผ ๋์ Githru-vscode-ext ํ๋ก์ ํธ์ ์ปจํธ๋ฆฌ๋ทฐํฐ๋ก ์ฐธ์ฌํ๋ฉฐ ๋ง์ ๋ฐฐ์์ ์ป์์ต๋๋ค.
ํ์ ๊น์ด ๊ณ ๋ฏผํด๋ณด์ง ์์๋ โ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ๊ณตํ๊ณ ์๊ฐํํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณโ๋ฅผ ์ง์ ํ๊ตฌํ ์ ์์๊ณ , ๋ฉํ ๋๊ณผ์ ์ธ๋ฏธ๋๋ฅผ ํตํด ํ๋ก ํธ์๋ ์ํคํ ์ฒ ์ ๋ฐ์ ๋ํ ์ฌ๊ณ ์ ํญ์ ๋ํ ์ ์์์ต๋๋ค. ๊ทธ ๊ณผ์ ์ด ์ ๋ง ํฅ๋ฏธ๋ก์ ๊ณ , ๊ฐ์ธ์ ์ผ๋ก๋ ํฌ๊ฒ ์ฑ์ฅํ๋ ์๊ฐ์ด์๋ค๊ณ ๋๋๋๋ค.
๋ฐ์ ์ผ์ ์์์๋ ๋งค์ฃผ ์จยท์คํ๋ผ์ธ์ผ๋ก ํ์๋ค๊ณผ ๋ง๋ ์ด์๋ฅผ ๋ ผ์ํ๊ณ ํจ๊ป ํด๊ฒฐํด ๋๊ฐ๋ ๊ณผ์ ์ ๋งค์ฐ ๋ป๊น์์ต๋๋ค. ํนํ ์ฝ๋์ ๋ณ๊ฒฝ ์ฃผ๊ธฐ๊ฐ ๋น ๋ฅธ ํ๋ก์ ํธ ํน์ฑ์, ์ ์ฒด ๋งฅ๋ฝ์ ๋น ๋ฅด๊ฒ ์ดํดํ๊ณ ํต์ฌ ๋ก์ง์ ์ฐพ์ ๋ค์ด๊ฐ๋ ์ญ๋์ ์ธ ๊ฒฝํ์ ์คํ์์ค์์๋ง ๋๋ ์ ์๋ ์์คํ ๊ธฐํ์์ต๋๋ค.
์ด๋ฒ ํ๋ ์ค CSMDict์ ๋น๋ ์๋๋ฅผ ์ต์ ์์ผ๋ก ๋ณ๊ฒฝํด ์ ์๋ฏธํ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ค์ง๋ง, ์ฌ์ ํ ๋์ ํ ๊ณผ์ ๋ค์ด ๋จ์ ์์ต๋๋ค.
์์ผ๋ก๋ ์ต์ ์ ๊ธฐ์ค์ 20๊ฐ ๋๋ 30๊ฐ ๋จ์ ์ปค๋ฐ ํ์ด์ง ์ฒ๋ฆฌ, ํ์ด์ง ๋ก๋ฉ ํผ๋๋ฐฑ ์ ๊ณต, ๋ค์ ํ์ด์ง ํ๋ฆฌํ์นญ ๊ธฐ๋ฅ ๋ฑ์ ๊ตฌํํด ์ฌ์ฉ์ ๊ฒฝํ์ ํ ์ธต ๋์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
ํ์ฌ ํ๋ก์ ํธ์ ๋ฌ๋ฆฌ, ์คํ์์ค๋ ๋น ๋ฅด๊ฒ ๋ณํ๋ ์ฝ๋์ ์ ์ํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๊ณ ๋ฅผ ์ง์์ ์ผ๋ก ์๊ตฌํ๋ ์ ์ด ํนํ ์ฌ๋ฏธ์์์ต๋๋ค.
์ด๋ฒ ์์นด๋ฐ๋ฏธ๋ฅผ ๊ณ๊ธฐ๋ก ์ป์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์์ผ๋ก๋ ๊พธ์คํ Githru ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ฉฐ ๋จ์ ๊ณผ์ ๋ค์ ํ๋์ฉ ์์ฑํด๋๊ฐ๊ณ ์ถ์ต๋๋ค. ๋ํ ํจ๊ปํ ๋๋ฃ์ ๋ฉํ ๋ถ๋ค๊ณผ์ ์ธ์ฐ์ ์ด์ด๊ฐ๋ฉฐ, ์ง์์ ์ธ ์ฑ์ฅ์ ๋ฐํ์ผ๋ก ์ผ๊ณ ์ ํฉ๋๋ค.
๐ก ์์ฑ์ด ๋๋์ จ๋ค๋ฉด, ์๋ ***โ์์ฑ ์๋ฃโ***๋ฅผ ์ฒดํฌํด ์ฃผ์ธ์. ๋ฉํฐ ์ต์ข ๋ณด๊ณ ์ ์์ฑ ๊ธฐ๊ฐ์ ~10์ 15์ผ(์)๊น์ง์ ๋๋ค. ์์ฑ ๊ธฐํ ๋ด ๋ฏธ์์ฑ ์, ๋ฏธ์ ์ถ๋ก ๋ถ๋ฅ๋๋ฉฐ
**2025 OSSCA ํ๋ก๊ทธ๋จ ์ต์ข ์๋ฃ ๋ฐ ์๋ฃ์ฆ ๋ฐ๊ธ**์ด ๋ถ๊ฐํฉ๋๋ค.
- [x] ์์ฑ์๋ฃ