๐ŸŒ€
f1v3-log
  • Welcome
  • ๊ฐœ๋ฐœ
    • SecurityContext๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ?
    • OAuth2AuthorizationRequestResolver ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
    • ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž
    • MySQL์€ ์–ด๋–ป๊ฒŒ ID ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ผ๊นŒ? (Feat. Auto Increment Lock)
    • ์™ธ๋ถ€ API ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ
      • HTTP Clients in Spring Boot
      • I/O์™€ ํŠธ๋žœ์žญ์…˜ ๋ถ„๋ฆฌํ•˜๊ธฐ
      • ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜ (Rate Limiter) ๋„์ž…
      • ์™ธ๋ถ€ API ์˜์กด์„ฑ์„ ์ค„์—ฌ๋ณด์ž
      • ์บ์‹œ ๋ ˆ์ด์–ด๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž (Local Cache)
    • JPA Deep Dive
      • ๊ฒฐ์ œ ๋ฐ ์ •์‚ฐ ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„
      • ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋ฅผ ๊ณ ๋ คํ•  ๋•Œ, ํƒ€์ž„์กด ์ด์Šˆ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ• ๊นŒ?
      • Spring Data JPA - ID ์ƒ์„ฑ ์ „๋žต๊ณผ ์ฑ„๋ฒˆ์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”๊ฑธ๊นŒ?
  • ํšŒ๊ณ 
    • NHN Academy ์ธ์ฆ๊ณผ์ • ํšŒ๊ณ 
    • DND 11๊ธฐ ํšŒ๊ณ 
  • ๋…์„œ
    • Effective Java 3/E
      • Item 1. ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ
      • Item 2. ์ƒ์„ฑ์ž์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ๋นŒ๋”๋ฅผ ๊ณ ๋ คํ•˜๋ผ
      • Item 3. private ์ƒ์„ฑ์ž๋‚˜ ์—ด๊ฑฐ ํƒ€์ž…์œผ๋กœ ์‹ฑ๊ธ€ํ„ด์ž„์„ ๋ณด์ฆํ•˜๋ผ
    • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด
      • 1์žฅ. ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด
      • 2์žฅ. ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด
      • 3์žฅ. ํƒ€์ž…๊ณผ ์ถ”์ƒํ™”
      • 4์žฅ. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ
      • 5์žฅ. ์ฑ…์ž„๊ณผ ๋ฉ”์‹œ์ง€
      • 6์žฅ. ๊ฐ์ฒด ์ง€๋„
      • 7์žฅ. ํ•จ๊ป˜ ๋ชจ์œผ๊ธฐ
  • Real MySQL 8.0
    • 04. ์•„ํ‚คํ…์ฒ˜
    • 05. ํŠธ๋žœ์žญ์…˜๊ณผ ์ž ๊ธˆ
    • 08. ์ธ๋ฑ์Šค
    • 09. ์˜ตํ‹ฐ๋งˆ์ด์ €์™€ ํžŒํŠธ
  • ์ƒ๊ฐ์ •๋ฆฌ
    • ๊ธฐ์ˆ ์— ๋งค๋ชฐ๋˜์ง€ ๋ง์ž.
  • ๊ณต๋ถ€
    • ๊ฐ์ฒด์ง€ํ–ฅ 5์›์น™(SOLID)
      • SRP (Single Responsibility Principle)
      • OCP (Open Closed Principle)
Powered by GitBook
On this page
  • ์ฑ…์ž„(Responsibility)
  • It's About Users
  • It's About Roles
  • ์†Œํ”„ํŠธ์›จ์–ด์˜ 2๊ฐ€์ง€ ๊ฐ€์น˜
  • ์ถฉ๋Œ ๋ฌธ์ œ(Collision)
  • ํŒฌ ์•„์›ƒ ๋ฌธ์ œ(Fan Out)
  • Collocation is Coupling
  • SRP
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ(Solution)
  • ๊ฒฐ๋ก  ๋ฐ ์š”์•ฝ

Was this helpful?

  1. ๊ณต๋ถ€
  2. ๊ฐ์ฒด์ง€ํ–ฅ 5์›์น™(SOLID)

SRP (Single Responsibility Principle)

Previous๊ฐ์ฒด์ง€ํ–ฅ 5์›์น™(SOLID)NextOCP (Open Closed Principle)

Last updated 15 days ago

Was this helpful?

์ฑ…์ž„(Responsibility)

ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ์ฑ…์ž„์€ ๋ฌด์—‡์ธ๊ฐ€?

  • save/findById๋Š” ๊ฐ™์€ ๋ถ€๋ฅ˜ (DB์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ)

  • ๊ฐ™์€ ์ฑ…์ž„์„ ๊ฐ–๋Š” ๊ธฐ๋Šฅ์€ ์ถ”๊ฐ€ํ•ด๋„ ์ฑ…์ž„์˜ ์ˆ˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š์Œ

  • ๊ฐ™์€ ๋ถ€๋ฅ˜๋กœ ๋‚˜๋ˆ ์„œ ์ฑ…์ž„์ด ๋ช‡ ๊ฐœ์ธ์ง€ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ

์—ฌ๊ธฐ์„œ์˜ ๋ถ€๋ฅ˜๋ž€,

  • ๋ฉ”์„œ๋“œ์˜ Client์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค. (๋ฉ”์„œ๋“œ๋ฅผ ๋ˆ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?)

  • ๋ˆ„๊ฐ€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๋ณ€๊ฒฝ์„ ์œ ๋ฐœํ•˜๋Š” ์‚ฌ์šฉ์ž์ธ๊ฐ€?

    • ๋ฉ”์„œ๋“œ์˜ ๋ณ€๊ฒฝ์„ ์œ ๋ฐœํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์•กํ„ฐ(Actor)๋ผ๊ณ  ํ•œ๋‹ค.

It's About Users

SRP๋Š” ์‚ฌ์šฉ์ž์— ๊ด€ํ•œ ๊ฒƒ์ด๋‹ค.

์ฑ…์ž„(Responsibility)์€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์„ ์š”์ฒญํ•˜๋Š” ํŠน์ • ์‚ฌ์šฉ์ž๋“ค์— ๋Œ€ํ•ด ํด๋ž˜์Šค/ํ•จ์ˆ˜๊ฐ€ ๊ฐ–๋Š” ๊ฒƒ์œผ๋กœ "๋ณ€๊ฒฝ์˜ ๊ทผ์›"์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ Employee ํด๋ž˜์Šค์˜ ๋ณ€๊ฒฝ์„ ์š”๊ตฌํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์„ ๋‚˜๋ˆ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์€ ์•กํ„ฐ(Actor)๊ฐ€ ๋˜๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋‹ˆ์ฆˆ(Needs)๊ฐ€ ์กด์žฌํ•˜๊ธฐ์— ๊ฐ ์ฑ…์ž„์„ ์ž˜ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

It's About Roles

  • ์œ ์ €๋“ค์„ ๊ทธ๋“ค์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• (Role)์— ๋”ฐ๋ผ ๋‚˜๋ˆ ์•ผ ํ•œ๋‹ค.

  • ์œ ์ €๊ฐ€ ํŠน์ • ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์•กํ„ฐ(Actor)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

    • ์ฑ…์ž„์€ ๊ฐœ์ธ์ด ์•„๋‹ˆ๋ผ ์•กํ„ฐ์™€ ์—ฐ๊ฒฐ๋œ๋‹ค.

  • Employee ํด๋ž˜์Šค์—๋Š” 3๊ฐœ์˜ ์•กํ„ฐ(Policy, Architect, Operations)๊ฐ€ ์žˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ๊ฐ•์กฐํ•˜๋Š” "์ฑ…์ž„์„ ์ž˜ ํ• ๋‹นํ•ด์•ผ ํ•œ๋‹ค"์—์„œ์˜ ์ฑ…์ž„์€ ํŠน์ • ์•กํ„ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ์•กํ„ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ์ด ์ผ๋ จ์˜ ํ•จ์ˆ˜๋“ค์˜ ๋ณ€๊ฒฝ ๊ทผ์›์ด ๋œ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด์˜ 2๊ฐ€์ง€ ๊ฐ€์น˜

Primary Value

  • ์ง€์†์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ

  • ๋Œ€๋ถ€๋ถ„์˜ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ˜„์žฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ž˜ ๋งŒ์กฑํ•˜์ง€๋งŒ ๋ณ€๊ฒฝํ•˜๊ธด ์–ด๋ ต๋‹ค.

Secondary Value

  • ํ˜„์žฌ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋Š”๊ฐ€?

์•กํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ์˜ ๊ทผ์›์ด๋ฏ€๋กœ ์•กํ„ฐ๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์œ„์˜ Employee์—์„œ๋Š” Primary Value๋ฅผ ์ž˜ ๋งŒ์กฑํ•˜๊ณ  ์žˆ๋Š”๊ฐ€?

์ถฉ๋Œ ๋ฌธ์ œ(Collision)

- Policy Actors: ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์˜ ๋ณ€๊ฒฝ์„ ํ•„์š”๋กœ ํ•จ.
- Architect Actors: DB Schema ๋ณ€๊ฒฝ์„ ํ•„์š”๋กœ ํ•จ.
- Operations Actors: ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์˜ ๋ณ€๊ฒฝ์„ ์›ํ•จ.

ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์— ์—ฌ๋Ÿฌ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค !!

ํŒฌ ์•„์›ƒ ๋ฌธ์ œ(Fan Out)

Employee๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค. ๊ฑฐ๋Œ€ํ•œ Fan Out์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŽ์€ ํŒฌ ์•„์›ƒ์€ ๋งŽ์€ ์ฑ…์ž„์„ ๊ฐ–๊ฒŒ๋˜๋ฉฐ ๊ฐ๊ฐ์˜ ์ฑ…์ž„์€ Employee๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋“ค์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

์ฑ…์ž„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ Fan Out์„ ์ œํ•œํ•˜์ž.

Collocation is Coupling

Operations Actor๊ฐ€ ์ƒˆ๋กœ์šด ๋ฆฌํฌํŠธ ๊ธฐ๋Šฅ์„ ํ•„์š”๋กœ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ƒˆ๋กœ์šด ๋ฆฌํฌํŠธ ๊ธฐ๋Šฅ๋„ Employee ํด๋ž˜์Šค์— ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ?

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ Employee ํด๋ž˜์Šค์˜ ์˜ํ–ฅ์ด Employee ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์ด ๋‹ค์‹œ ์ปดํŒŒ์ผ๋˜๊ณ  ๋ฐฐํฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

SRP

ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ ์‚ฌ์œ ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

  • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ํ•œ ์ข…๋ฅ˜์˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ๋งŒ ์„œ๋น™ํ•ด์•ผ ํ•œ๋‹ค.

  • ๋™์ผํ•œ ์ด์œ ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋™์ผ ๋ชจ๋“ˆ์—

  • ๋‹ค๋ฅธ ์ด์œ ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—

์œ ์Šค์ผ€์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ ์„ค๊ณ„ํ•  ๋•Œ ์•กํ„ฐ(Actor)๋“ค์„ ํŒŒ์•…ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ SRP๋ฅผ ํ†ตํ•ด ๊ฐ ๋ชจ๋“ˆ์ด ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ๊ฐ–๋„๋ก ์œ ์ง€ํ•˜๋ฉฐ ์ฑ…์ž„์„ ๋ชจ๋“ˆ์— ํ• ๋‹นํ•ด์•ผ ํ•œ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ(Solution)

1. ์˜์กด์„ฑ ์—ญ์ „(Inverted Dependencies)

  • OOP์—์„œ ์˜์กด์„ฑ์„ ๋‹ค๋ฃจ๋Š” ์ „๋žต์œผ๋กœ ํด๋ž˜-์Šค๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค(interface)์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.

  • ์•กํ„ฐ๋ฅผ ํด๋ž˜์Šค์—์„œ ๋””์ปคํ”Œ๋งํ•˜๊ฒŒ ๋œ๋‹ค.

    • ์•กํ„ฐ๋“ค์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ Employee ๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ณ€๊ฒฝ์ด ์—†๋‹ค๋ฉด ๋‹ค๋ฅธ ์•กํ„ฐ๋“ค์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

2. ํด๋ž˜์Šค ๋ถ„๋ฆฌ(Extract Class)

  • 3๊ฐœ์˜ ์ฑ…์ž„์„ ๊ฐ–๋Š” 3๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌ

  • ์•กํ„ฐ๋“ค์€ ๋ถ„๋ฆฌ๋œ 3๊ฐœ์˜ ํด๋ž˜์Šค์— ์˜์กด

  • ํ•˜๋‚˜์˜ ์ฑ…์ž„์˜ ๋ณ€๊ฒฝ์— ๋‹ค๋ฅธ ์ฑ…์ž„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ

๋ฌธ์ œ์ 

  • transitive dependency: Employee์˜ ๋ณ€๊ฒฝ์ด ์ž ์žฌ์ ์œผ๋กœ ๋ชจ๋“  ์•กํ„ฐ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋‹ค.

  • Employee์˜ ๊ฐœ๋…์ด ๊ฐ๊ฐ์˜ ์กฐ๊ฐ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ๊ธฐ๋Šฅ์ด ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด์žˆ๋Š”์ง€ ์ฐพ์œผ๋Ÿฌ ๋‹ค๋…€์•ผ ํ•จ.

1๋ฒˆ๊ณผ 2๋ฒˆ์„ ํ•ฉ์นœ ๋ฐฉ๋ฒ•๋„ ๊ณ ๋ คํ•ด๋ณด์ž.

  1. ํด๋ž˜์Šค๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ถœ

  2. 1๊ฐœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ 3๊ฐœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ถ„๋ฆฌ

  3. 3๊ฐœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„

3. ํผ์‚ฌ๋“œ(Facade)

  • ๋ชจ๋“  ํ•จ์ˆ˜๋“ค์„ Facade Class์— ๋‘๊ณ , ๊ฐ ๊ธฐ๋Šฅ์— ๋งž๋Š” ์•กํ„ฐ๋“ค์—๊ฒŒ ์œ„์ž„ํ•˜๋Š” ํ˜•ํƒœ

  • ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์‰ฝ์ง€๋งŒ, ์—ฌ์ „ํžˆ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•œ ์–ด๋– ํ•œ ๋ณ€๊ฒฝ์ด๋ผ๋„ ์žˆ๋‹ค๋ฉด ๋ชจ๋“  ์•กํ„ฐ๋“ค์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋‹ค.

4. ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ (Interface Segregation)

  • ๊ฐ๊ฐ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹

  • ์•กํ„ฐ๋“ค์€ ์™„์ „ํžˆ decoupled ๋˜์ง€๋งŒ, ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์–ด๋ ค์šฐ๋ฉฐ, ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ๊ตฌํ˜„๋˜์–ด ๊ตฌํ˜„์€ coupled


๊ฒฐ๋ก  ๋ฐ ์š”์•ฝ

  • ์ฑ…์ž„์€ ์‚ฌ์šฉ์ž(์•กํ„ฐ)์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.

  • SRP๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ ์‚ฌ์œ (์•กํ„ฐ)๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ์›์น™์„ ๋งํ•œ๋‹ค.

  • ์ฑ…์ž„์„ ์ž˜ ๋‚˜๋ˆ„๋ฉด ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•ด์ง€๋„, ์ถฉ๋Œ๊ณผ ํŒฌ ์•„์›ƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  • ์˜์กด์„ฑ ์—ญ์ „, ํด๋ž˜์Šค ๋ถ„๋ฆฌ, ํผ์‚ฌ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ SRP๋ฅผ ์‹ค์ฒœํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๋‹ค๋งŒ, ์ ์ ˆํ•œ ์ฑ…์ž„์„ ๊ฐ€์ง€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ์–ด๋ ค์šด ๋ถ„์•ผ์ด๋‹ค. ์‹ค์ „ ๊ฐ๊ฐ์ด ํ•„์š”!

ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์•กํ„ฐ(๋ณ€๊ฒฝ์˜ ๊ทผ์›)๋งŒ์„ ์œ„ํ•ด ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์•กํ„ฐ๋ณ„๋กœ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜๋ฉด ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋œ๋‹ค.