--- id: P-REINFORCE-AUTO-B860D8 category: "[[10_Wiki/πŸ’‘ Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 단일 μ±…μž„ 원칙 (Single Responsibility Principle)" --- # [[단일 μ±…μž„ 원칙 (Single Responsibility Principle)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 단일 μ±…μž„ 원칙(SRP)은 클래슀, λͺ¨λ“ˆ λ˜λŠ” ν•¨μˆ˜κ°€ 단 ν•˜λ‚˜μ˜ μž‘μ—…μ΄λ‚˜ μ±…μž„λ§Œμ„ κ°€μ Έμ•Ό ν•˜λ©°, κ·Έ μ½”λ“œκ°€ λ³€κ²½λ˜μ–΄μ•Ό ν•  μ΄μœ λ„ 단 ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€λŠ” 객체 μ§€ν–₯ μ„€κ³„μ˜ 핡심 μ›μΉ™μž…λ‹ˆλ‹€ [1-3]. 이 원칙은 λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ„ λͺ¨λ“ˆν™”ν•˜κ³  μœ μ§€λ³΄μˆ˜μ„±μ„ 높이기 μœ„ν•œ 'κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC)' κ°œλ…μ„ κ°œλ³„ ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜ μˆ˜μ€€μ—μ„œ κ·ΉλŒ€ν™”ν•œ κ²ƒμœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€ [3-5]. 이λ₯Ό μ μš©ν•˜λ©΄ μ½”λ“œμ˜ λͺ©μ μ΄ λͺ…ν™•ν•΄μ§€κ³ , ν•˜λ‚˜μ˜ λ³€κ²½ 사항이 μ‹œμŠ€ν…œμ˜ λ‹€λ₯Έ 뢀뢄에 λ―ΈμΉ˜λŠ” 영ν–₯을 μ΅œμ†Œν™”ν•˜μ—¬ 버그 λ°œμƒ κ°€λŠ₯성을 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€ [6]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μ •μ˜ 및 핡심 κ°œλ…** 단일 μ±…μž„ 원칙은 νŠΉμ • μ†Œν”„νŠΈμ›¨μ–΄ 개체(클래슀, ν•¨μˆ˜ λ“±)κ°€ λ³€κ²½λ˜μ–΄μ•Ό ν•  μ΄μœ κ°€ 단 ν•˜λ‚˜λΏμ΄μ–΄μ•Ό 함을 κ·œμ •ν•©λ‹ˆλ‹€ [1, 3]. μ΄λŠ” 각 λͺ¨λ“ˆμ΄λ‚˜ ν΄λž˜μŠ€κ°€ ν•˜λ‚˜μ˜ μ—­ν• μ—λ§Œ 집쀑해야 함을 μ˜λ―Έν•©λ‹ˆλ‹€ [5]. 예λ₯Ό λ“€μ–΄, μž₯λ°”κ΅¬λ‹ˆμ˜ 총가격을 κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜λŠ” κ²°κ³Όλ₯Ό 화면에 좜λ ₯ν•˜κΈ° μœ„ν•΄ 포맷을 λ§žμΆ”λŠ” μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•΄μ„œλŠ” μ•ˆ 되며 [7], μ‚¬μš©μž 데이터λ₯Ό μ €μž₯ν•˜κ³  μ‘°νšŒν•˜λŠ” ν΄λž˜μŠ€λŠ” μ‚¬μš©μž μž…λ ₯을 κ²€μ¦ν•˜λŠ” 역할을 ν•¨κ»˜ λ§‘μ•„μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€ [1]. - **κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC)μ™€μ˜ 관계** 단일 μ±…μž„ 원칙은 μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ˜ 'κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC)' μ² ν•™μ—μ„œ νŒŒμƒλœ 객체 μ§€ν–₯ μ„€κ³„μ˜ SOLID 원칙 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€ [8-10]. SoCκ°€ μ „λ°˜μ μΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜λ‚˜ λŒ€κ·œλͺ¨ λͺ¨λ“ˆ λ‹¨μœ„μ—μ„œ 논리적 관심사λ₯Ό λΆ„λ¦¬ν•˜μ—¬ λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜λŠ” 데 쀑점을 λ‘”λ‹€λ©΄, SRPλŠ” 이λ₯Ό κ°œλ³„ ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆ μˆ˜μ€€μ˜ "μ±…μž„"으둜 μ„ΈλΆ„ν™”ν•˜μ—¬ μ μš©ν•©λ‹ˆλ‹€ [3, 11]. 본질적으둜 SRPλŠ” κ΄€μ‹¬μ‚¬μ˜ 뢄리 원칙을 κ°€μž₯ 극단적인 μˆ˜μ€€κΉŒμ§€ κ°€μ Έκ°„ ν˜•νƒœλΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [4]. - **섀계 μƒμ˜ 이점** - **가독성 및 μœ μ§€λ³΄μˆ˜μ„± ν–₯상:** ν΄λž˜μŠ€μ™€ ν•¨μˆ˜κ°€ 였직 ν•˜λ‚˜μ˜ λͺ©μ λ§Œ κ°€μ§€κ²Œ λ˜μ–΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° ꡬ쑰에 λΉ„ν•΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  ν‰κ°€ν•˜λ©° κ΅¬μΆ•ν•˜κΈ°κ°€ 훨씬 μ‰½μŠ΅λ‹ˆλ‹€ [6, 11]. - **버그 λ…ΈμΆœ κ°μ†Œ:** μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯이 변경될 λ•Œ 영ν–₯을 λ°›λŠ” 클래슀의 μˆ˜κ°€ 쀄어듀기 λ•Œλ¬Έμ—, μ˜λ„μΉ˜ μ•Šμ€ λΆ€μž‘μš©μ΄λ‚˜ 버그가 λ‹€λ₯Έ μ˜μ—­μœΌλ‘œ μ „νŒŒλ  μœ„ν—˜μ΄ κ°μ†Œν•©λ‹ˆλ‹€ [6]. - **응집도 κ°•ν™”:** λͺ¨λ“ˆ λ‚΄μ˜ μ½”λ“œκ°€ 단일 μ±…μž„μ„ λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ λ­‰μΉ˜κ²Œ λ˜λ―€λ‘œ μ‹œμŠ€ν…œμ˜ μ „λ°˜μ μΈ 응집도(Cohesion)λ₯Ό λ†’μ΄λŠ” 데 κΈ°μ—¬ν•©λ‹ˆλ‹€ [11]. - **싀무적 적용** 단일 μ±…μž„ 원칙은 객체 μ§€ν–₯ μ„€κ³„μ—μ„œ κ°€μž₯ λ¨Όμ €, 그리고 μ‰½κ²Œ μ μš©ν•  수 μžˆλŠ” μ›μΉ™μž…λ‹ˆλ‹€ [12]. κ°œλ°œμžλŠ” μƒˆλ‘œμš΄ ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜κΈ° 전에 "이 μš”μ†Œμ˜ 단일 μ±…μž„μ€ 무엇인가?"λ₯Ό μŠ€μŠ€λ‘œμ—κ²Œ μ§ˆλ¬Έν•΄μ•Ό ν•©λ‹ˆλ‹€ [2, 12]. ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ—μ„œλ„ 이 원칙이 μ μš©λ˜λŠ”λ°, 예λ₯Ό λ“€μ–΄ μ»΄ν¬λ„ŒνŠΈλŠ” 화면을 κ·Έλ¦¬λŠ” μ—­ν• λ§Œ λ‹΄λ‹Ήν•˜κ²Œ ν•˜κ³  λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ΄λ‚˜ μƒνƒœ κ΄€λ¦¬λŠ” λ³„λ„μ˜ λͺ¨λ“ˆμ—μ„œ μ²˜λ¦¬ν•˜λ„λ‘ λΆ„λ¦¬ν•˜λŠ” 방식이 이에 ν•΄λ‹Ήν•©λ‹ˆλ‹€ [5]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)]], [[SOLID 원칙]], [[응집도(Cohesion)]] - **Projects/Contexts:** [[ν”„λ‘ νŠΈμ—”λ“œ μ»΄ν¬λ„ŒνŠΈ 섀계]], [[객체 μ§€ν–₯ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 섀계]] - **Contradictions/Notes:** 단일 μ±…μž„ 원칙(SRP)κ³Ό κ΄€μ‹¬μ‚¬μ˜ 뢄리(SoC)λŠ” μ’…μ’… 같은 의미둜 ν˜Όμš©λ˜κ±°λ‚˜ λΉ„κ΅λ˜μ§€λ§Œ, μ μš©λ˜λŠ” 좔상화 μˆ˜μ€€μ—μ„œ 차이가 μžˆμŠ΅λ‹ˆλ‹€. SoCλŠ” 더 넓은 의미의 κΈ°λŠ₯적 관심사λ₯Ό λͺ¨λ“ˆμ΄λ‚˜ μ•„ν‚€ν…μ²˜ 계측 μˆ˜μ€€μ—μ„œ λΆ„λ¦¬ν•˜λŠ” 것에 μ΄ˆμ μ„ λ§žμΆ”λŠ” 반면, SRPλŠ” κ°€μž₯ μž‘μ€ λ‹¨μœ„μΈ κ°œλ³„ ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜κ°€ κ°€μ§€λŠ” μ±…μž„κ³Ό λ³€κ²½μ˜ 이유λ₯Ό ν•˜λ‚˜λ‘œ μ œν•œν•˜λŠ” 데 μ§‘μ€‘ν•©λ‹ˆλ‹€ [3]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/단일 μ±…μž„ 원칙 (Single Responsibility Principle).md]] ---