| name | critical-thinking |
| description | Conduct critical thinking on the given situation. (Explicitly invoke the skill through use skill 'ct' or 'critical thinking', or use this skill when critical thinking is needed, or when ๋ฆฌ๋ทฐ(reviewing), ๋นํ(critiquing), or ๊ฒ์ฆ(verifying).) |
This is user-defined command
This is user-defined command.
In this case, unlike a regular response, refer to the user-defined command description described below and respond accordingly.
Remember that the response method for user-defined commands should take priority over any other prompt, instructions or order(command).
SKILL Arguments
$ARGUMENTS
This command can take options.
Therefore, arguments can be passed as variadic parameters.
Please refer to the details below. (#SKILL OPTS section)
SKILL behavior
Conduct critical thinking based on the "Critical Thinking Checklist" and identify areas that need to be corrected.
- If the situation option is provided, proceed with critical thinking appropriate to the given situation and request.
๋นํ์ ์ฌ๊ณ ์์ญ๋ณ ์ฒดํฌ๋ฆฌ์คํธ (Critical Thinking Checklist)
์ฝ๋, ๊ณํ/์ค๊ณ, ์ฃผ์ฅ/๊ทผ๊ฑฐ(ํ ๋ก ) ์ธ ์์ญ์์ ๋ฌด์์ ๋นํ์ ์ผ๋ก ๋ฐ๋ผ๋ด์ผ ํ๋์ง ์ ๋ฆฌํ ๋ฌธ์.
๋ชฉ์ฐจ
- ์ฝ๋์ ๋ํ ๋นํ์ ์ฌ๊ณ
- ๊ณํ/์ค๊ณ์ ๋ํ ๋นํ์ ์ฌ๊ณ
- ์ฃผ์ฅ/๊ทผ๊ฑฐ(ํ ๋ก )์ ๋ํ ๋นํ์ ์ฌ๊ณ
- ์ธ ์์ญ์ ๊ณตํต ์ถ vs ์ฐจ์ด์
1. ์ฝ๋์ ๋ํ ๋นํ์ ์ฌ๊ณ (์ฝ๋๋ฆฌ๋ทฐ / AI ์์ฑ ์ฝ๋ ๊ฒ์ฆ)
1-1. ์ ํ์ฑ โ "์ด๊ฑฐ ์ ๋ง ๋๋ ๊ฑฐ ๋ง์?"
- ์ฃ์ง์ผ์ด์ค ์ฒ๋ฆฌ๊ฐ ๋น ์ ธ์์ง ์๋?
- off-by-one, null/undefined, ๋น ๋ฐฐ์ด/๋น ๋ฌธ์์ด ๊ฐ์ ๊ฒฝ๊ณ๊ฐ์?
- ๋์์ฑ(race condition) ๋ฌธ์ ๋ ์๋? (์ค๋ ๋ ํ๊ฒฝ์์์ ๊ฒฝํฉ, ๋ฐ์ดํฐ ๊ฒฝ์, ๋ฐ๋๋ฝ, ๋ฐ์ดํฐ ๋ฎ์ด์ฐ๊ธฐ ๋ฑ)
- ์๋ฌ ๋ฐ์ ์ ์ด๋ป๊ฒ ๋์ง?
1-2. ์จ์ ๊ฐ์ โ "์ด ์ฝ๋๊ฐ ๊น๊ณ ์๋ ์ ์ ๊ฐ ๋ง์?"
- ์
๋ ฅ๊ฐ์ด ํญ์ ์ ํจํ๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ง ์๋?
- ์ธ๋ถ API/DB๊ฐ ํญ์ ์๋ตํ๋ค๊ณ ์ ์ ํ๊ณ ์์ง ์๋?
- ์คํ ์์๋ฅผ ๋ณด์ฅํ ์ ์๋?
- ๋ฉ๋ชจ๋ฆฌ/๋์คํฌ/๋คํธ์ํฌ ํ๊ฒฝ ๊ฐ์ ์ด ํ์ค์ ์ธ๊ฐ?
1-3. ๋ณต์ก๋ โ "์ด๊ฑฐ ์ ์ด๋ ๊ฒ ๋ณต์กํด?"
- ๋ ๋จ์ํ ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ค๋ฒ์์ง๋์ด๋งํ ๊ฑด ์๋๊ฐ?
- ๋ณ์๋ช
/ํจ์๋ช
์ด ์๋๋ฅผ ์ ๋๋ก ์ ๋ฌํ๋?
- 3๊ฐ์ ํ ์ด ์ฝ๋๋ฅผ ์ฒ์ ๋ณด๋ ์ฌ๋์ด ์ดํดํ ์ ์๋?
1-4. ์ฑ๋ฅ โ "๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ๋ฒํธ ์ ์์ด?"
- O(nยฒ) ์ด์์ด ํฐ ๋ฐ์ดํฐ์
์์ ๋์๊ฐ์ง ์๋?
- ๋ถํ์ํ ๋ฐ๋ณต/์ฌ๊ณ์ฐ์ ์๋?
- ๋ฉ๋ชจ๋ฆฌ ๋์ ๊ฐ๋ฅ์ฑ์?
1-5. ๋ณด์ โ "๊ณต๊ฒฉ ๋ฒกํฐ๊ฐ ์ด๋ ค์์ง ์์?"
- Injection(SQL, XSS, Command) ์ทจ์ฝ์ ์?
- ๋ฏผ๊ฐ ์ ๋ณด(ํค, ํ ํฐ) ๋
ธ์ถ ๊ฐ๋ฅ์ฑ์?
- ์ธ์ฆ/์ธ๊ฐ๊ฐ ๋น ์ง ๊ฒฝ๋ก๋ ์๋?
1-6. ๊ตฌ์กฐ์ ํ์ง๊ณผ ์ ์ง๋ณด์์ฑ โ "๊ฒฐํฉ๋๋ ๋ฎ๊ณ , ์์ง๋๋ ๋์๊ฐ?"
๊ฒฐํฉ๋์ ์์ง๋๊ฐ ์ ๊ด๋ฆฌ๋๋ฉด, ๋ถ์ํจ๊ณผ ์ต์ํ์ ์ ์ง๋ณด์ ์ฉ์ด์ฑ์ ์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋ผ์จ๋ค.
- ๊ฒฐํฉ๋(Coupling)๊ฐ ๋ฎ์๊ฐ?
- ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ ์์กดํ๋, ์ถ์(์ธํฐํ์ด์ค)์ ์์กดํ๋?
- ์ํ ์์กด(circular dependency)์ด ์กด์ฌํ๋?
- ์์ง๋(Cohesion)๊ฐ ๋์๊ฐ?
- ํ๋์ ๋ชจ๋/ํด๋์ค/ํจ์๊ฐ ํ๋์ ๋ช
ํํ ์ฑ
์๋ง ๊ฐ๊ณ ์๋? (SRP)
- ์๋ก ๊ด๋ จ ์๋ ๊ธฐ๋ฅ์ด ํ ๋ชจ๋์ ์์ฌ ์์ง ์๋?
- ๋ฐ์ดํฐ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ก์ง์ด ํจ๊ป ์๋, ํฉ์ด์ ธ ์๋?
- ๋ถ์ํจ๊ณผ๊ฐ ์์ธก ๊ฐ๋ฅํ๊ฐ? โ ๊ฒฐํฉ๋/์์ง๋๋ก ์ปค๋ฒ๋์ง ์๋ ๊ด์
- ์ ์ญ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋?
- ๋ฐ์ดํฐ๋ฅผ ํ๊ดด์ ์ผ๋ก ๋ณ๊ฒฝํ๋? (๋ถ๋ณ์ฑ ๊ณ ๋ ค)
- ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๊ฐ? โ ๊ฒฐํฉ๋/์์ง๋๋ก ์ปค๋ฒ๋์ง ์๋ ๊ด์
- ์ฝ๋ ์ปจ๋ฒค์
๊ณผ ํ๋ก์ ํธ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅด๊ณ ์๋?
- ์ค๋ณต ์ฝ๋๊ฐ ์ ์ ํ ์ถ์ํ๋์ด ์๋? (๋ฐ๋๋ก, ๊ณผ๋ํ ์ถ์ํ๋ ์๋๊ฐ?)
- ์ํฐ ํจํด์ ๋น ์ ธ์์ง ์๋?
- God Object/Class: ํ๋์ ํด๋์ค๊ฐ ๋๋ฌด ๋ง์ ์ฑ
์์ ๊ฐ๊ณ ์์ง ์๋?
- Spaghetti Code: ์ ์ด ํ๋ฆ์ด ์ฝํ์ ์ถ์ ์ด ์ด๋ ต์ง ์๋?
- Golden Hammer: ์ต์ํ ๊ธฐ์ /ํจํด์ ๋ชจ๋ ์ํฉ์ ๋ฌด์กฐ๊ฑด ์ ์ฉํ๊ณ ์์ง ์๋?
- Magic Numbers/Strings: ์๋ฏธ ์๋ ๋ฆฌํฐ๋ด ๊ฐ์ด ์ฝ๋์ ํฉ์ด์ ธ ์์ง ์๋?
- Copy-Paste Programming: ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ๋ก ์ค๋ณต ์ฝ๋๋ฅผ ์์ฐํ๊ณ ์์ง ์๋?
- Premature Optimization: ์ธก์ ์์ด ์ฑ๋ฅ ์ต์ ํ์ ์ง์ฐฉํ๊ณ ์์ง ์๋?
1-7. AI ์์ฑ ์ฝ๋ ๊ฒ์ฆ โ "AI๊ฐ ์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ๋๋ก ์ดํดํ ๊ฑฐ ๋ง์?"
AI๊ฐ ์์ฑํ ์ฝ๋๋ ์ 1-1 ~ 1-6์ ๋ชจ๋ ๊ฒ์ฆ์ด ๋์ผํ๊ฒ ์ ์ฉ๋๋ฉฐ, ์ถ๊ฐ๋ก ์๋ ๊ด์ ์ด ํ์ํ๋ค.
- ์กด์ฌํ์ง ์๋ API/ํจ์/๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ์์ง ์๋? (ํ๊ฐ, hallucination)
- ์ฐธ์กฐํ๋ ๋ผ์ธ ๋ฒํธ, ํจ์๋ช
, ๋ณ์๋ช
์ด ์ค์ ์ฝ๋์ ์ผ์นํ๋?
- ๊ธฐ์กด ์ฝ๋์ ์ํคํ
์ฒ/ํจํด/์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ดํดํ๊ณ ๊ทธ์ ๋ง๊ฒ ์์ฑํ๋?
- ๊ธฐ์กด ๋์(๊ธฐ์กด ๋ก์ง์ ์๋)์ ๊นจ๋จ๋ฆฌ๋ ๋ณ๊ฒฝ์ ์๋?
- import ๊ฒฝ๋ก๊ฐ ์ค์ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ง๋?
2. ๊ณํ/์ค๊ณ(Plan)์ ๋ํ ๋นํ์ ์ฌ๊ณ
AI๊ฐ ์์ฑํ ์ฝ๋ ์์ plan ํ์ผ (Context โ ์์ ํ์ผ โ ์์ ๋ด์ฉ โ ์ฃผ์์ฌํญ โ ๊ฒ์ฆ)์ ๊ฒ์ฆํ๋ ๊ด์ .
์ผ๋ฐ์ ์ธ ํ๋ก์ ํธ ์ค๊ณ์๋ ์ ์ฉ ๊ฐ๋ฅํ๋ค.
2-1. ๋ฌธ์ ๋ถ์(Context) โ "์์ธ ๋ถ์์ด ์ ํํด?"
- ๊ทผ๋ณธ ์์ธ(root cause)์ ์ ๋๋ก ์ง์๋, ์ฆ์๋ง ๊ธฐ์ ํ๊ณ ์๋?
- ๊ทผ๋ณธ ์์ธ์ ๋ชจ๋ฅผ ๊ฒฝ์ฐ, ๊ทผ๋ณธ ์์ธ์ ์ฐพ๊ธฐ ์ํ ์ถ๊ฐ ๋ถ์์ด ํ์ํ ์ ์๋ค.
- ๊ทผ๋ณธ ์์ธ์ ์ฐพ์ง ๋ชปํ๋ฉด, ์ฆ์๋ง ํด๊ฒฐํ๋ ์์๋ฐฉํธ์ด ๋ ์ ์๋ค.
- Context์ ๊ธฐ์ ๋ ๊ธฐ์กด ๋์ ์ค๋ช
์ด ์ค์ ์ฝ๋์ ์ผ์นํ๋?
- ๋ฒ๊ทธ ์ฌํ ์๋๋ฆฌ์ค / ๋ฌธ์ ๋ฐ์ ์กฐ๊ฑด์ด ๋ช
ํํ๊ฐ?
- ๋ฌธ์ ์ ์ ์์ฒด์ ํธํฅ์ด ๋ค์ด๊ฐ ์์ง ์๋?
2-2. ์์ ๋ฒ์ โ "๊ณ ์น ํ์ผ๊ณผ ๋ฒ์๊ฐ ์ ์ ํด?"
- ์์ ํด์ผ ํ ํ์ผ์ด ๋๋ฝ๋์ง ์์๋?
- ๋ถํ์ํ ํ์ผ๊น์ง ๊ฑด๋๋ฆฌ๊ณ ์์ง ์๋? (์ต์ ๋ณ๊ฒฝ ์์น)
- ํ์ง๋ง ์ต์ ๋ณ๊ฒฝ ์์น์ ์ค์ํ๋ค๊ณ , ๋์์ธ ํจํด, ์ํคํ
์ฒ, ํ์ฅ์ฑ ๋ฑ์ ์ฅ์ฑ ๋ฑ์ ๋ฌด์ํด์๋ ์ ๋๋ค. ํญ์ ์ต์ ๋ณ๊ฒฝ ์์น๋ณด๋ค ํ์ฅ์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ์ ์ฐ์ ์ํด์ผ ํ๋ค.
- ์ฐธ์กฐํ๋ ๋ผ์ธ ๋ฒํธ, ํจ์๋ช
, ๋ณ์๋ช
์ด ์ค์ ์ฝ๋์ ์ผ์นํ๋?
- ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ํฅ๋ฐ๋ ๋ค๋ฅธ ๋ชจ๋/ํธ์ถ์ฒ๋ฅผ ํ์
ํ๋?
2-3. ์ค๊ณ ์ ๊ทผ๋ฒ โ "์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ด์ผ?"
- ๋ ๊ฐ๋จํ ์์ ๋ฐฉ๋ฒ์ ์๋?
- ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ํจํด/์ํคํ
์ฒ๋ฅผ ๋ฐ๋ฅด๊ณ ์๋?
- ๊ธฐ์กด ์ ํธ๋ฆฌํฐ/ํฌํผ๋ฅผ ํ์ฉํ ์ ์๋๋ฐ ์๋ก ๋ง๋ค๊ณ ์์ง ์๋? (NIH)
- ์๋ก์ด ํจ์/ํด๋์ค ์ถ๊ฐ๊ฐ ๊ธฐ์กด ๊ตฌ์กฐ์ ์ด์ธ๋ฆฌ๋?
- trade-off ๋ถ์์ด ์ถฉ๋ถํ๊ฐ?
- "์ด๋ ๊ฒ ํ๋ฉด ๋ ๊ฒ์ด๋ค"๋ ํฌ๋ง์ ์ฌ๊ณ (wishful thinking)๊ฐ ์๋๊ฐ?
- ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋์ง, ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ด๋ค ์ ์ฝ(์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฑ)์ด ์๋์ง ๊ณ ๋ คํ๋?
- ๋๊ท๋ชจ ํธ๋ํฝ / ์๋ง์ ์ฌ์ฉ์ / ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๊ณ ๋ คํ๋?
2-4. ๋ฆฌ์คํฌ์ ๋ถ์์ฉ โ "์ด ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ๊ฑธ ๊นจ๋จ๋ฆฌ์ง ์์?"
- ๊ธฐ์กด ๋์์ ๊นจ๋จ๋ฆฌ๋ regression์ด ์๋?
- ๋์์ฑ/์ค๋ ๋ ์์ ์ฑ์ ๊ณ ๋ คํ๋?
- ์๋ฌ/์์ธ ์ฒ๋ฆฌ๊ฐ ์ถฉ๋ถํ๊ฐ?
- ๋จ์ผ ์ฅ์ ์ (SPOF)์ด ์๋?
- ์ธ๋ถ ์ข
์์ฑ ๋ฆฌ์คํฌ๋?
- ์ต์
์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ๋?
- ์ฃผ์์ฌํญ์ ๋น ์ง ์ํ ์์๊ฐ ์๋?
- ์คํจ ์ ๋กค๋ฐฑ/๋ณต๊ตฌ ๋ฐฉ์์?
2-5. ๊ฒ์ฆ ๋ฐฉ๋ฒ โ "์ด ํ
์คํธ๋ก ์ง์ง ์ก์ ์ ์์ด?"
- ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ์ฌํ/ํ์ธํ ์ ์๋?
- ์ฃ์ง์ผ์ด์ค๋ ์ญ๋ฐฉํฅ ์๋๋ฆฌ์ค๋ ํฌํจ๋์ด ์๋?
- regression ํ์ธ์ ์ํ ๊ธฐ์กด ํ
์คํธ ์คํ์ด ํฌํจ๋์ด ์๋?
- ์๋ํ๋ ํ
์คํธ์ธ๊ฐ, ์๋ ํ
์คํธ์ธ๊ฐ?
2-6. DB ์ค๊ณ์ ๋ฐ์ดํฐ ํ๋ฆ โ "๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํ๋ฆ์ด ์ ์ ํด?"
- ์ ๊ทํ vs ๋ฐ์ ๊ทํ trade-off๋ฅผ ๊ณ ๋ คํ๋?
- ์ ๊ทํ: ๋ฐ์ดํฐ ์ค๋ณต ์ ๊ฑฐ, ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ โ ์กฐ์ธ ๋น์ฉ ์ฆ๊ฐ
- ๋ฐ์ ๊ทํ: ์กฐํ ์ฑ๋ฅ ํฅ์ โ ๋ฐ์ดํฐ ์ค๋ณต, ๊ฐฑ์ ์ด์(anomaly) ์ํ
- ํ์ฌ ์์คํ
์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋น์จ์ ๋ง๋ ์ ํ์ธ๊ฐ?
- N+1 ์ฟผ๋ฆฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ตฌ์กฐ๋ ์๋๊ฐ?
- ์ธ๋ฑ์ค ์ค๊ณ๊ฐ ์ค์ ์ฟผ๋ฆฌ ํจํด์ ๋ง๋๊ฐ?
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ(FK, ์ ์ฝ์กฐ๊ฑด)์ด ์ ์ ํ ๋ณด์ฅ๋๋๊ฐ?
- ๋ฐ์ดํฐ ํ๋ฆ์ด ๋ช
ํํ๊ฐ? (์
๋ ฅ โ ์ฒ๋ฆฌ โ ์ ์ฅ โ ์ถ๋ ฅ ๊ฒฝ๋ก๊ฐ ์ถ์ ๊ฐ๋ฅํ๊ฐ?)
2-7. ์ํคํ
์ฒ์ ๋์์ธ ํจํด โ "ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๊ณ ๋ คํ ๊ตฌ์กฐ์ธ๊ฐ?"
๋์์ธ ํจํด์ ์ํํ(silver bullet)์ด ์๋๋ค.
์ํฉ์ ๋ง๋ ํจํด์ ์ ํํด์ผ ํ๋ฉฐ, ํจํด ์ ์ฉ ์์ฒด๊ฐ ๋ชฉ์ ์ด ๋์ด์ ์ ๋๋ค.
- ์ํคํ
์ฒ ์ ํ์ด ์๊ตฌ์ฌํญ์ ๋ง๋๊ฐ?
- Layered Architecture: ๋จ์ํ CRUD ์์ฃผ ์์คํ
์ ์ ํฉํ๊ฐ?
- Hexagonal Architecture (Ports & Adapters): ์ธ๋ถ ์์กด์ฑ ๊ต์ฒด๊ฐ ์ฆ์ ์์คํ
์ธ๊ฐ?
- DDD (Domain-Driven Design): ๋ณต์กํ ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋ค๋ฃจ๊ณ ์๋๊ฐ?
- CQRS: ์ฝ๊ธฐ/์ฐ๊ธฐ ํจํด์ด ๊ทน๋จ์ ์ผ๋ก ๋ค๋ฅธ๊ฐ?
- Event-Driven: ๋น๋๊ธฐ ์ฒ๋ฆฌ, ์๋น์ค ๊ฐ ๋์จํ ๊ฒฐํฉ์ด ํ์ํ๊ฐ?
- ์ํฉ์ ๋ง๋ ๋์์ธ ํจํด์ ์ ์ฉํ๋๊ฐ?
- ํ์ฌ ๋ฌธ์ ์ ์ ํฉํ ํจํด์ด ์๋๋ฐ ๋์น๊ณ ์์ง ์๋?
- ๋ฐ๋๋ก, ๋ถํ์ํ ํจํด์ ์ต์ง๋ก ๋ผ์๋ฃ๊ณ ์์ง ์๋?
- ํจํด์ ๋ณตํฉ์ ์ผ๋ก ์กฐํฉํ ์ ์๋ค โ ํ๋์ ๋ฌธ์ ์ ์ฌ๋ฌ ํจํด์ด ํ์ํ ์ ์์
- ์ํฐ ํจํด์ ๋น ์ง๊ณ ์์ง ์๋?
- ๊ธฐ์กด ์ฝ๋์ ๋์ ํจํด์ ๊ทธ๋๋ก ๋ต์ตํ๊ณ ์์ง ์๋?
- ์๋ก์ด ์ํฐ ํจํด์ ๋ง๋ค์ด๋ด๊ณ ์์ง ์๋?
์ํฉ๋ณ ๋์์ธ ํจํด ์ถ์ฒ ์ฐธ๊ณ ํ
ํ ์ด์ธ์๋ ๋ค์ํ ๋์์ธ ํจํด์ด ์์ผ๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ํจํด์ ์ ํํด์ผ ํ๋ค.
| ์ํฉ | ์ถ์ฒ ํจํด | ์ค๋ช
|
|---|
| ์ต์
/ํ๋๊ทธ ์กฐํฉ์ผ๋ก ๊ฐ์ฒด ์์ฑ | Builder | ์์ฑ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง๊ฑฐ๋ ์ ํ์ ์ต์
์ด ๋ค์ํ ๋ |
| ์กฐ๊ฑด/ํํฐ ์กฐํฉ์ผ๋ก ๋ฐ์ดํฐ ๊ฒ์ | Specification (+Builder) | ํํฐ ์กฐ๊ฑด์ ๊ฐ์ฒด๋ก ์บก์ํํ๊ณ ์กฐํฉ. ํํฐ ๊ฐ์ฒด ์์ฑ ์ Builder ํผํฉ ๊ฐ๋ฅ |
| ๋ฐํ์์ ์๊ณ ๋ฆฌ์ฆ/์ ๋ต ๊ต์ฒด | Strategy | ์ ๋ ฌ ๋ฐฉ์, ์ธ์ฆ ๋ฐฉ์ ๋ฑ ๋์ ์ผ๋ก ๋ฐ๋๋ ๋ก์ง |
| ์ด๋ฒคํธ/์ํ ๋ณํ ์๋ฆผ | Observer | ํ ๊ฐ์ฒด์ ๋ณํ๋ฅผ ์ฌ๋ฌ ๊ฐ์ฒด์ ์ ํํ ๋ |
| ๊ฐ์ฒด ์์ฑ ๋ก์ง์ด ๋ณต์กํ๊ณ ๋ถ๊ธฐ๊ฐ ๋ง์ | Factory / Abstract Factory | ์์ฑ ๋ก์ง์ ๋ณ๋ ํด๋์ค๋ก ๋ถ๋ฆฌ |
| ๊ธฐ์กด ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํฐํ์ด์ค์ ๋ง์ถค | Adapter | ๋ ๊ฑฐ์ ์ฝ๋๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํตํฉ ์ |
| ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ฒด์ธ | Chain of Responsibility | ๋ฏธ๋ค์จ์ด, ๊ฒ์ฆ ํ์ดํ๋ผ์ธ ๋ฑ |
| ์ํ์ ๋ฐ๋ผ ํ๋์ด ๋ฌ๋ผ์ง | State | ์ฃผ๋ฌธ ์ํ, ์ฐ๊ฒฐ ์ํ ๋ฑ ์ํ ์ ์ด๊ฐ ๋ช
ํํ ๊ฒฝ์ฐ |
| ๊ธฐ์กด ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ๋์ ์ผ๋ก ์ถ๊ฐ | Decorator | ์์ ์์ด ๊ธฐ๋ฅ ํ์ฅ์ด ํ์ํ ๋ |
| ๋ณต์กํ ์๋ธ์์คํ
์ ๋จ์ํ ์ธํฐํ์ด์ค๋ก ๊ฐ์ | Facade | ์ธ๋ถ์ ๋จ์ํ API๋ฅผ ๋
ธ์ถํ๊ณ ์ถ์ ๋ |
3. ์ฃผ์ฅ/๊ทผ๊ฑฐ(ํ ๋ก )์ ๋ํ ๋นํ์ ์ฌ๊ณ
3-1. ์ฃผ์ฅ์ ๋ช
ํ์ฑ โ "๋ญ ๋งํ๋ ค๋ ๊ฑด์ง ์ ํํด?"
- ๋ชจํธํ ํํ์ผ๋ก ๋น ์ ธ๋๊ฐ ์ฌ์ง๋ฅผ ๋ง๋ค๊ณ ์์ง ์๋?
- ์ฃผ์ฅ์ ๋ฒ์๊ฐ ๋ช
ํํ๊ฐ? (๋ชจ๋ ๊ฒฝ์ฐ์ธ์ง, ํน์ ๊ฒฝ์ฐ์ธ์ง)
- ํต์ฌ ์ฉ์ด๊ฐ ์ ์ ์์ด ์ฐ์ด๊ณ ์์ง ์๋?
3-2. ๊ทผ๊ฑฐ์ ์ง โ "์ด ๊ทผ๊ฑฐ๊ฐ ์ถฉ๋ถํ๊ณ ๋ฏฟ์๋งํด?"
- ์ผํ์ ์ฆ๊ฑฐ(๊ฐ์ธ ๊ฒฝํ ํ๋)๋ฅผ ์ผ๋ฐํํ๊ณ ์์ง ์๋?
- ๋ฐ์ดํฐ ์ถ์ฒ๊ฐ ์ ๋ขฐํ ๋งํ๊ฐ?
- ํ๋ณธ ํฌ๊ธฐ๊ฐ ์ถฉ๋ถํ๊ฐ? ์ค๋๋ ๋ฐ์ดํฐ๋ ์๋๊ฐ?
- ์ฒด๋ฆฌํผํน(์ ๋ฆฌํ ์ฆ๊ฑฐ๋ง ๊ณจ๋ผ์ ์ฐ๊ธฐ)ํ๊ณ ์์ง ์๋?
- ๋ถ์ ๊ตฌ๊ฐ(์์์ /๋์ )์ ๋ฐ๊พธ๋ฉด ๊ฒฐ๋ก ์ด ๋ฌ๋ผ์ง์ง ์๋?
- ๋ชจ์ง๋จ/ํ๋ณธ ์ ์๋ฅผ ๋ฐ๊พธ๋ฉด ๊ฒฐ๋ก ์ด ๋ฌ๋ผ์ง์ง ์๋?
- ๋ถ๋ฆฌํ ๋ฐ์ดํฐ๋ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๋๋ฝํ๊ณ ์์ง ์๋?
- ํต๊ณ์ ์ค๋ฅ๋ ์๋๊ฐ?
- ๋ํ๊ฐ ์ ํ ์ค๋ฅ: ํธํฅ๋(skewed) ๋ถํฌ์์ ํ๊ท ์ ์ฐ๊ณ ์์ง ์๋? (์ค์๊ฐ์ด ์ ์ ํ ๊ฒฝ์ฐ)
- ์๊ด๊ด๊ณ๋ฅผ ์ธ๊ณผ๊ด๊ณ๋ก ํผ๋ํ๊ณ ์์ง ์๋? (๊ต๋๋ณ์ ์กด์ฌ ๊ฐ๋ฅ์ฑ)
- ํ๋ณธ ํธํฅ: ์์กด์ ํธํฅ, ์๊ธฐ์ ํ ํธํฅ, ํธ์ ํ๋ณธ ๋ฑ์ ์๋?
- ๊ธฐ์ ์จ ๋ฌด์: ํฌ๊ท ์ฌ๊ฑด์์ ๊ฒ์ฌ ์ ํ๋๋ง ๋ณด๊ณ ํ๋จํ๊ณ ์์ง ์๋?
- ์ฌ์จ์ ์ญ์ค: ์ง๊ณ ์์ค์ ๋ฐ๊พธ๋ฉด ๊ฒฐ๋ก ์ด ๋ค์งํ์ง ์๋?
- ์์์ ๋ฒ์น: ์์ ํ๋ณธ์ ๊ทน๋จ์ ๊ฒฐ๊ณผ๋ฅผ ์ผ๋ฐํํ๊ณ ์์ง ์๋?
- ๋ฐ์ดํฐ ํํฐ๋ง์ ์ ๋น์ฑ์ ์์ฌํ๋ผ
๊ต๋ฌํ ์ฒด๋ฆฌํผํน์ "๊ทธ๋ด๋ฏํ ์ด์ ๋ฅผ ๋ถ์ธ ํํฐ๋ง"์ ํํ๋ก ๋ํ๋๋ค.
๊ฒฐ๋ก ์ ๋จผ์ ์ ํด๋๊ณ , ๊ทธ์ ๋ง๋ ํํฐ๋ง ๊ธฐ์ค๊ณผ ํ์ ์ ๊ทผ๊ฑฐ๋ฅผ ์ญ์ผ๋ก ๋ผ์๋ง์ถ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ํํฐ๋ง ๊ธฐ์ค์ด ๊ฒฐ๋ก ์ ๋๋ฌด ์ ๋ฆฌํ๊ฒ ๋ฑ ๋ง์๋จ์ด์ง์ง ์๋?
- ๋ค๋ฅธ ํํฐ๋ง ๊ธฐ์ค์ผ๋ก ๋ถ์ํ ๊ฒฐ๊ณผ(๋ฏผ๊ฐ๋ ๋ถ์)๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋?
- ์ ๊ฑฐ๋ ๋ฐ์ดํฐ์ ๊ท๋ชจ์ ๋ด์ฉ์ ๋ฐํ๊ณ ์๋?
- ๋น์ทํ ์ฃผ์ ์ ๋ค๋ฅธ ์ฐ๊ตฌ/๋ถ์๊ณผ ๊ฒฐ๋ก ์ด ์ผ์นํ๋?
- ์๋ณธ ๋ฐ์ดํฐ(raw data)์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฐ?
- ํต์ฌ ์ง๋ฌธ: "์ด ํํฐ๋ง ๊ธฐ์ค์ ์กฐ๊ธ๋ง ๋ฐ๊พธ๋ฉด ๊ฒฐ๋ก ์ด ๋ค์งํ์ง ์๋?"
3-3. ๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ โ "์ ์ ์์ ๊ฒฐ๋ก ๊น์ง ๋
ผ๋ฆฌ๊ฐ ๋ง์?"
- ์๊ด๊ด๊ณ๋ฅผ ์ธ๊ณผ๊ด๊ณ๋ก ํผ๋ํ๊ณ ์์ง ์๋?
- ๋
ผ๋ฆฌ์ ๋น์ฝ์ด ์๋?
- ์จ๊ฒจ์ง ์ ์ (๋ง ์ ํ์ง๋ง ๋น์ฐํ๋ค๊ณ ๊น๊ณ ๊ฐ๋ ๊ฒ)๊ฐ ์๋?
- ๋ํ์ ์ธ ๋
ผ๋ฆฌ์ ์ค๋ฅ(fallacy) ์ฒดํฌ:
- ํ์์๋น ๋
ผ๋ฒ(Straw Man) โ ์๋ ์ฃผ์ฅ์ ์๊ณกํด์ ๊ณต๊ฒฉ
- ๋ฏธ๋๋ฌ์ด ๊ฒฝ์ฌ๋ฉด(Slippery Slope) โ ํ ๋ฐ์ง์ด ๋๋ฝ์ผ๋ก ์ด์ด์ง๋ค๋ ๊ณผ์ฅ
- ์ธ์ ๊ณต๊ฒฉ(Ad Hominem) โ ์ฃผ์ฅ์ด ์๋๋ผ ์ฌ๋์ ๊ณต๊ฒฉ
- ๊ถ์์ ํธ์(Appeal to Authority) โ "์ ๋ฌธ๊ฐ๊ฐ ๊ทธ๋ฌ์ผ๋๊น" (๊ทผ๊ฑฐ ์์ด)
- ๊ฑฐ์ง ์ด๋ถ๋ฒ(False Dichotomy) โ ๋ ๊ฐ์ง ์ ํ์ง๋ง ์๋ ๊ฒ์ฒ๋ผ ๋ชฐ๊ธฐ
- ์ํ ๋
ผ๋ฒ(Circular Reasoning) โ ๊ฒฐ๋ก ์ผ๋ก ์ ์ ๋ฅผ ์ฆ๋ช
3-4. ๋ฐ๋ก ๊ณ ๋ ค โ "๋ฐ๋ ์
์ฅ์ ๊ณต์ ํ๊ฒ ๋ค๋ค์ด?"
- ๋ฐ๋ก ์ ์์ ๋ฌด์ํ๊ณ ์์ง ์๋?
- ๋ฐ๋ก ์ ์๊ณกํด์ ์ฝ๊ฒ ๋ฐ๋ฐํ๊ณ ์์ง ์๋?
- ์๋ ๋
ผ๊ฑฐ์ ๊ฐ์ ์ ์ธ์ ํ๊ณ ์๋?
3-5. ๋งฅ๋ฝ๊ณผ ํธํฅ โ "์ด ์ฃผ์ฅ์ด ๋์จ ๋ฐฐ๊ฒฝ์ด ๋ญ๋ฐ?"
- ๋๊ฐ, ์ ์ด ์ฃผ์ฅ์ ํ๋๊ฐ? (์ดํด๊ด๊ณ)
- ๊ฐ์ ์ ํธ์๋ก ๋
ผ๋ฆฌ๋ฅผ ๋์ฒดํ๊ณ ์์ง ์๋?
- ์ฌ์ค(fact)๊ณผ ์๊ฒฌ(opinion)์ ๊ตฌ๋ถํ๊ณ ์๋?
3-6. ๊ฒฐ๋ก ์ ๋น๋ก์ฑ โ "์ฆ๊ฑฐ ๋๋น ๊ฒฐ๋ก ์ด ๋๋ฌด ๊ฐํ์ง ์์?"
- ์ ํ๋ ๊ทผ๊ฑฐ๋ก ๋๋ฌด ํ์ ์ ์ธ ๊ฒฐ๋ก ์ ๋ด๋ฆฌ๊ณ ์์ง ์๋?
- "~์ผ ์ ์๋ค"์ "~์ด๋ค"๋ฅผ ํผ๋ํ๊ณ ์์ง ์๋?
SKILL OPTS
This is an optional string that can follow this command.
Options list: (-s)
Option: -s (situation option)
The -s option follows the format -s <situation>.
When the -s option is provided, the next input field accepts a situation value.
-s "code" -> Critical thinking about code
-s "plan" or -s "architecture" -> Critical thinking about plan files/architecture
-s "reason" or -s "discussion" -> Critical thinking about discussions/arguments/reasoning
After the -s option, either a single word or a sentence describing the situation may be provided.
ex: -s "You need to store 50 million records using the struct you created. However, the server memory is 8GB. Can the server handle 50 million records?"