| name | build-for-today |
| description | Blocks speculative code, options, abstractions, and flags built for hypothetical future needs (YAGNI). When a request would add scaffolding for users, features, or load that don't exist yet, this skill redirects to the concrete present case. ์ค์ง ์์ ๋ฏธ๋ ์๊ตฌ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ์ฝ๋ยท์ต์
ยท์ถ์ํยทํ๋๊ทธ๋ฅผ ๊น์๋์ง ์๊ฒ ๋ง๋ ์์ง๋์ด๋ง ์ฒ ํ ์คํฌ. |
| when_to_use | Use when the user signals future-proofing intent โ phrases like "future-proof", "extensible", "scalable", "in case we need it", "make it generic", "ํน์ ๋ชจ๋ฅด๋๊น", "๋์ค์ ํ์ํ ์ง๋", "ํ์ฅ์ฑ ์๊ฒ", "์ด์ฐธ์ ์ผ๋ฐํ" โ or whenever options/flags/arguments are being added that are only called with a single value today, when optimization starts without a measurement, or when a pattern is being abstracted before its third use. Strongest against AI "์์ฑ๋ ์๊ฒ ๋ง๋ค์ด์ค" reflexes that pile on hypothetical options. |
| allowed-tools | Read Edit |
ํ ์ค. ์ค๋ ํ์ํ ๊ฒ๋ง ์ง๋๋ค. ๋ด์ผ ํ์ํ ์ง ๋ชจ๋ฅด๋ ๊ฑด, ๋ด์ผ ๋ง๋ ๋ค.
Why this mindset
YAGNI โ You Aren't Gonna Need It.
๋ฏธ๋์ ๊ฐ์ ์๊ตฌ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ๊น์๋ ์ฝ๋์ ๋๋ถ๋ถ์ ๊ฒฐ๊ตญ ์ ์ฐ์
๋๋ค. ์ ์ฐ์ผ ๋ฟ ์๋๋ผ, ์ง์ง ์๊ตฌ๊ฐ ๋ฑ์ฅํ์ ๋ ํ๋ฆฐ ๋ฐฉํฅ์ผ๋ก ๊น์๋ ๋ฌด๊ฒ๋ฅผ ์น์ฐ๋ ์ผ์ด ์๋ก ์ง๋ ๊ฒ๋ณด๋ค ๋ ๋น์๋๋ค.
์ง์ง ์๊ตฌ๊ฐ ๋ฑ์ฅํ ๊ทธ ์๋ฆฌ์์ ์ถ๊ฐํ๋ ํธ์ด, ์ ์ฌ์ง๋ ๋ชจ๋ฅด๋ ์๊ตฌ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ์ง์ด์ง๋ ๊ฒ๋ณด๋ค ๊ฑฐ์ ํญ์ ๊ฐ๋ณ์ต๋๋ค.
Instructions
"ํน์ ๋ชจ๋ฅด๋๊น"๊ฐ ๋ค๋ฆฌ๋ฉด ํ ๋ฒ ๋ฉ์ถ๋ค. ๊ฐ๋ฒผ์์ ์งํค๋ ๊ฑด ์ง๊ธ ์ ์ง๋ ํ๋์์ ์์๋๋ค.
-
"ํน์ ๋ชจ๋ฅด๋๊น"๋ ๋ฉ์ถค ์ ํธ.
์์ฒญยท์ค๊ณยท์ฝ๋ ์์ ํน์ / ๋์ค์ / ๋ง์ฝ / ๊ฐ์์ด ๋ฐ๋ผ๋ถ๋ ๋ถ๋ถ์ ํ ๋ฒ ๋ ๋ฌป๋๋ค โ "์ง๊ธ ์ด๊ฒ ์ ํ์ํ๊ฐ? ๋๊ฐ, ์ด๋ค ์
๋ ฅ์ผ๋ก, ์ด๋ ํ๋ฉด์์?" ๊ตฌ์ฒด์ ์ธ ์ง๊ธ์ ์ฌ์ฉ์ด ์ ๋์ค๋ฉด, ๊ทธ๊ฑด ๋ฏธ๋์ ํ์์ด๋ค. ์ง์ง ์๋๋ค.
-
์ผ๋ฐํ๋ ์ธ ๋ฒ์งธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ํ๋ ๋ (Rule of Three).
๊ฐ์ ํจํด์ด 1~2๋ฒ ๋ฑ์ฅํ๋ฉด ๊ทธ๋๋ก ๋๊ณ , 3๋ฒ์งธ์ ๋ฌถ๋๋ค. 1๋ฒ์งธ์์ ์ผ๋ฐํํ๋ฉด ๋ฏธ๋์ ๋ชจ์์ ์ถ์ธกํ๊ฒ ๋๊ณ , ๊ทธ ์ถ์ธก์ ๊ฑฐ์ ํญ์ ๋น๋๊ฐ๋ค.
-
์ต์
ยทํ๋๊ทธยท์ค์ ์ ์ง๊ธ ํ ๊ธ์ด ํ์ํ ๊ฒ๋ง.
ํจ์์ ์ธ์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ โ ํธ์ถ์ฒ๊ฐ ์ค์ ๋ก ๋ค๋ฅธ ๊ฐ์ ๋ณด๋ด๊ณ ์๋๊ฐ? ํ ๊ฐ์ง ๊ฐ์ผ๋ก๋ง ํธ์ถ๋๋๋ฐ ์ธ์๊ฐ ์๋ ๊ฒ์, ์ฝ๋ ์ฌ๋์ ํท๊ฐ๋ฆฌ๊ฒ ํ๋ฉด์ ์๋ฌด ์ผ๋ ์ ํ๋ค. ๋ค๋ฅธ ๊ฐ์ด ์ง์ง ํ์ํด์ง ๊ทธ ์๊ฐ์ ์ถ๊ฐํ๋ฉด ํ ์ค์ด๋ค.
-
"ํ์ฅ์ฑ ์๊ฒ"์ ํจ์ .
ํ์ฅ์ ๋ฐฉํฅ์ ์ ๋๋ง ๊ฐ๋ฅํ๋ค. ๋ชจ๋ฅด๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ๊ฒ ์ง ์ฝ๋๋, ํ๋ฆฐ ๋ฐฉํฅ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ๊ฒ ์ง ์ฝ๋๋ค. ์ง์ง ํ์ฅ์ด ์ผ์ด๋ ๋ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ง๋ ๊ฒ ๋ ๋น ๋ฅด๋ค.
-
๋น ๋ฅด๊ฒ๋ ์ค์ ๋ก ๋๋ฆฐ ๊ฒ ์ธก์ ๋ ๋ค์.
*"์ด๊ฑฐ ๋๋ฆด ๊ฒ ๊ฐ์ผ๋๊น ๋ฏธ๋ฆฌ ์ต์ ํ"*๋ Knuth๊ฐ "๋ชจ๋ ์
์ ๋ฟ๋ฆฌ"๋ผ๊ณ ๋ถ๋ฅธ ์๋ฆฌ๋ค. ์ฐ์ ๊ฐ์ฅ ๋จ์ํ๊ฒ ์ง ๋ค. ์ธก์ ํด์ ๋๋ฆฐ ๊ณณ์ด ์ค์ ๋ก ๋ณด์ด๋ฉด, ๊ทธ๋ ๊ทธ ์๋ฆฌ๋ง ๋น ๋ฅด๊ฒ ํ๋ค. (premature optimization ๊ฒฝ๊ณ)
Examples
"ํน์ ๋ชจ๋ฅด๋๊น" ๋ฉ์ถค:
- ์ฌ์ฉ์: "ํน์ ๋ค๊ตญ์ด ์ง์ํ ์ง๋ ๋ชจ๋ฅด๋๊น ํ
์คํธ ๋ค ๋ถ๋ฆฌํด์ ์ง์ค."
- Claude: "์ง๊ธ ๋ค๊ตญ์ด ๊ณํ์ด ์กํ ์์ด? ์กํ ์์ผ๋ฉด ๊ทธ ๋ฐฉํฅ์ ๋ง์ถฐ ์งค๊ฒ. ์์ง ํน์ ๋จ๊ณ๋ฉด ํ๊ตญ์ด๋ง ๋ฐ๋ ๊ฒ ๊ฐ๋ฒผ์. ์ง์ง ๋ค๊ตญ์ด๊ฐ ๊ฒฐ์ ๋๋ฉด ๊ทธ๋ ์ด๋ค ๋ฐฉ์์ผ๋ก (i18n ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฐฑ์๋ ๋ถ๋ฆฌ ๋ฑ) ์ ํด์ ์ฎ๊ธฐ๋ฉด ๋ผ โ ๊ทธ๋๊ฐ ์คํ๋ ค ๋ ๋น ๋ฅด๊ณ ์ ํํด."
์ต์
์ด ํ ๊ฐ์ง ๊ฐ์ผ๋ก๋ง ํธ์ถ ์ค:
- Claude: "์ด
fetchUsers(role: 'admin' | 'user' = 'admin') ํจ์๊ฐ ์ง๊ธ ์ธ ๊ตฐ๋ฐ์์ ํธ์ถ๋๋๋ฐ ๋ค 'admin'์ด์ผ. role ์ธ์ ๋นผ๊ณ , ๋์ค์ ์ผ๋ฐ ์ฌ์ฉ์ ์กฐํ๊ฐ ์ง์ง ํ์ํด์ง๋ฉด ๊ทธ ์๋ฆฌ์ ์ธ์๋ฅผ ์ถ๊ฐํ์. ์ง๊ธ์ ๊ทธ๋ฅ fetchAdmins()๋ก ๋๋ ๊ฒ ์ฝ๊ธฐ ์ข์."
Rule of Three:
- ์ฌ์ฉ์: "๋ ์ปดํฌ๋ํธ์ ๋น์ทํ ๋ก์ง์ด ์๋๋ฐ ํฌํผ๋ก ๋นผ์."
- Claude: "๋ ๋ฒ์ด๋ฉด ์์ง ๊ทธ๋๋ก ๋๋ ๊ฒ ๊ฐ๋ฒผ์. ์ธ ๋ฒ์งธ ์ปดํฌ๋ํธ๊ฐ ๋ฑ์ฅํ ๋ ๋ฌถ์. ์ง๊ธ ๋ฌถ์ผ๋ฉด ๊ทธ ํฌํผ๊ฐ ๋ ์ผ์ด์ค์๋ง ๋ง๋ ๋ชจ์์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋๊ณ , ์ธ ๋ฒ์งธ๊ฐ ๋ฑ์ฅํ์ ๋ ๊ฑฐ์ ํญ์ ๋ชจ์์ด ์ ๋ง์์ ๋ค์ ์๋๊ฒ ๋ผ."
Pitfalls
- "ํน์ ๋ชจ๋ฅด๋๊น" ๋ฐ๋ผ๋ถ๋ ์ต์
ยทํ๋๊ทธยท์ค์ ยท์ธ์
- "ํ์ฅ์ฑ ์๊ฒ"๋ฅผ ๋ฐฉํฅ ๋ชจ๋ฅธ ์ฑ ๋ฐ์๋๊ธฐ
- ์ธก์ ์์ด ์์ํ๋ ์ต์ ํ
- 1~2๋ฒ ๋ฑ์ฅํ ํจํด์ ๋ฏธ๋ฆฌ ์ผ๋ฐํ โ ์ธ ๋ฒ์งธ๊ฐ ์๋ ์ ๋ง์
- "์์ฑ๋ ์์ด ๋ณด์ด๊ฒ" ๊ฐ์ ์ต์
ยท๊ธฐ๋ณธ๊ฐยท์๋ฌ ํธ๋ค๋ง ์ถ๊ฐ
- ๋ฐ๋ํธ ํจ์ : YAGNI๋ฅผ ํ๊ณ๋ก ์ง๊ธ ๋ถ๋ช
ํ ํ์ํ ๊ฒ๋ ๋ฏธ๋ฃจ๊ธฐ
๋ฏธ๋๋ ์ฐ๋ฆฌ๊ฐ ์ง์ง ์์๋ ์จ๋ค. ์ฐ๋ฆฌ๊ฐ ํ ์ผ์ ์ค๋์ ํ์์ ์ ํํ ๋ตํ๋ ๊ฒ๋ฟ์ด๋ค. ๊ทธ๊ฒ ๋ฏธ๋์๋ ๊ฐ์ฅ ์ข์ ์ถ๋ฐ์ ์ ๋จ๊ธด๋ค.