03. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - 상속, 의쑴

2021. 5. 10. 14:18Β· πŸ’» Computer Science

상속

 

상속을 ν†΅ν•œ κΈ°λŠ₯ μž¬μ‚¬μš©μ‹œ λ°œμƒν•  수 μžˆλŠ” 단점 

1. μƒμœ„ 클래슀 변경이 어렀움

 - μƒμœ„ 클래슀λ₯Ό 쑰금만 잘λͺ» 변경해도 κ·Έ ν•˜μœ„ ν΄λž˜μŠ€λ“€μ΄ λΉ„μ •μƒμ μœΌλ‘œ μž‘λ™λ  수 있음. ( 계측도λ₯Ό 따라 μ „νŒŒλ¨ )

2. μƒˆλ‘œμš΄ 쑰합이 생길 λ•Œ λ§ˆλ‹€ ν•˜μœ„ ν΄λž˜μŠ€κ°€ μ¦κ°€λœλ‹€. μ–΄λ–€ 클래슀λ₯Ό μƒμ†λ°›λŠ”μ§€λ„ μ• λ§€

3. 상속을 μ˜€μš©ν•  수 μžˆλ‹€. 

 

이와 같은 단점 ν•΄κ²° 방법이 μžˆμ„κΉŒ?

- μ—¬λŸ¬ 객체λ₯Ό λ¬Άμ–΄μ„œ 더 λ³΅μž‘ν•œ κΈ°λŠ₯을 제곡

- 보톡 ν•„λ“œλ‘œ λ‹€λ₯Έ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” λ°©μ‹μœΌλ‘œ 쑰립, 객체λ₯Ό ν•„μš” μ‹œμ μ— 생성/ꡬ함

 

μƒμ†ν•˜κΈ°μ— μ•žμ„œ 쑰립으둜 ν’€ 수 μ—†λŠ”μ§€ κ²€ν† ν•˜κ³  μ§„μ§œ ν•˜μœ„ νƒ€μž…μΈ κ²½μš°μ—λ§Œ 상속을 μ΄μš©ν•©λ‹ˆλ‹€! (κΈ°λŠ₯ μž¬μ‚¬μš© μ‹œ μ“°μ§€ μ•Šλ„λ‘ 주의!)

쑰건 뢄기일 경우 좔상화, 상속이 μ’‹μŠ΅λ‹ˆλ‹€. -> μ˜λ„κ°€ 잘 λ“œλŸ¬λ‚˜λŠ” 이름 μ‚¬μš©

 

 

의쑴

κΈ°λŠ₯ κ΅¬ν˜„μ„ μœ„ν•΄ λ‹€λ₯Έ ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λŠ” 것 예) 객체 생성, λ©”μ„œλ“œ 호좜, 데이터 μ‚¬μš©

μ˜μ‘΄μ€ 변경이 μ „νŒŒλ  κ°€λŠ₯성을 μ˜λ―Έν•œλ‹€. μ˜μ‘΄ν•˜λŠ” λŒ€μƒμ΄ λ°”λ€Œλ§Œ κΈ°λŠ₯이 λ°”λ€” κ°€λŠ₯성이 λ†’μ•„μ§„λ‹€.

 

μˆœν™˜μ˜μ‘΄ -> λ³€κ²½ 연쇄 μ „νŒŒ κ°€λŠ₯μ„± -> 클래슀, νŒ¨ν‚€μ§€ λͺ¨λ“ˆ λ“± λͺ¨λ“  μˆ˜μ€€μ—μ„œ μˆœν™˜μ˜€λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ 해야함.

μ˜μ‘΄ν•˜λŠ” λŒ€μƒμ€ μ μ„μˆ˜λ‘ μ’‹λ‹€. 

쑰립

 - ν•œ ν΄λž˜μŠ€μ—μ„œ λ§Žμ€ κΈ°λŠ₯이 쑴재 ν•  경우 κΈ°λŠ₯λ³„λ‘œ 클래슀λ₯Ό λΆ„λ¦¬ν•˜λ©΄ 의쑴이 쀄어든닀.

   (ν•œ κΈ°λŠ₯을 μˆ˜μ •ν•  λ•Œ λ‹€λ₯Έ κΈ°λŠ₯을 μˆ˜μ •ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€)

 - λͺ‡ κ°€μ§€ 의쑴 λŒ€μƒμ„ 단일 κΈ°λŠ₯으둜 λ¬Άμ–΄μ„œ 의쑴 λŒ€μƒμ„ 쀄일 수 μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

 

ν•˜μ§€λ§Œ 의쑴 λŒ€μƒ 객체λ₯Ό 직접 μƒμ„±ν•œλ‹€λ©΄ 생성 ν΄λž˜μŠ€κ°€ λ°”λ€Œμ–΄ μ˜μ‘΄ν•˜λŠ” μ½”λ“œλ„ 바뀐닀. 

 

κ·Έλ ‡λ‹€λ©΄ 의쑴 λŒ€μƒ 객체λ₯Ό 직접 μƒμ„±ν•˜μ§€ μ•ŠλŠ” 방법은 뭘까?

- νŒ©ν† λ¦¬, λΉŒλ”

- 의쑴 μ£Όμž…(Dependency Injection)

   - μ™ΈλΆ€μ—μ„œ 의쑴 객체λ₯Ό μ£Όμž…ν•œλ‹€. μƒμ„±μžλ‚˜ λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄μ„œ μ£Όμž….

      예) SheduleService schSvc = new SheduleService(userRepo);

- μ„œλΉ„μŠ€ λ‘œμΌ€μ΄ν„°

 

의쑴 μ£Όμž…μ΄ μ •ν™•νžˆ 뭐지?

Assembler - 쑰립기가 객체 생성, 의쑴 μ£Όμž…μ„ 처리 -> 예λ₯Ό λ“€μ–΄ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬

1. 객체λ₯Ό μƒμ„±ν•˜κ³  의쑴 λŒ€μƒμ„ μ£Όμž…ν•˜λŠ” μ½”λ“œλ₯Ό μ„€μ •μœΌλ‘œ μž‘μ„±ν•œλ‹€.

2. κ·Έ μ„€μ •μ½”λ“œλ₯Ό μ΄μš©ν•˜μ—¬ applicationContext λΌλŠ” 쑰립기λ₯Ό μƒμ„±ν•œλ‹€.

3. 쑰립기λ₯Ό μ΄ˆκΈ°ν™”ν•  λ•Œ μ„€μ •νŒŒμΌμ„ μ‹€ν–‰ν•΄ 객체λ₯Ό λ§Œλ“€μ–΄ μ˜μ‘΄μ£Όμž…μ„ λ°œμƒν•œλ‹€. 

 

- μƒμœ„ νƒ€μž…μ„ μ‚¬μš©ν•  경우 의쑴 λŒ€μƒμ΄ λ°”λ€Œλ©΄ 쑰립기(μ„€μ •) 만 λ³€κ²½ν•˜λ©΄ 됨.

- μ˜μ‘΄ν•˜λŠ” 객체 없이 λŒ€μ—­ 객체λ₯Ό μ‚¬μš©ν•΄μ„œ ν…ŒμŠ€νŠΈ κ°€λŠ₯

 

 

λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ’» Computer Science' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

HTTP , HTTPS  (0) 2022.02.23
02. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - λ‹€ν˜•μ„±κ³Ό 좔상화  (0) 2021.05.10
01. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - 객체와 μΊ‘μŠν™”  (0) 2021.05.07
08. HTTP μ›Ή κΈ°λ³Έ 지식 - μΊμ‹œ κΈ°λ³Έ λ™μž‘  (0) 2021.05.06
07. HTTP μ›Ή κΈ°λ³Έ 지식 - HTTP 헀더 κ°œμš”  (0) 2021.05.06
'πŸ’» Computer Science' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • HTTP , HTTPS
  • 02. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - λ‹€ν˜•μ„±κ³Ό 좔상화
  • 01. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - 객체와 μΊ‘μŠν™”
  • 08. HTTP μ›Ή κΈ°λ³Έ 지식 - μΊμ‹œ κΈ°λ³Έ λ™μž‘
μ• μ •μ“°
μ• μ •μ“°
μ• μ •μ½”λ”© πŸ’»μ• μ •μ“° λ‹˜μ˜ λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
μ• μ •μ“°
μ• μ •μ½”λ”© πŸ’»
μ• μ •μ“°
전체
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (93)
    • 🧠 MIND (0)
    • πŸ“ 회고 (5)
    • βš™οΈ 배포 및 인프라 (2)
    • πŸ—‚οΈ DataBase (1)
      • QUERY (1)
    • πŸ’» Computer Science (12)
    • 🌏 WEB (62)
      • HTML,CSS (0)
      • Kotlien (1)
      • JAVA (20)
      • JavaScript (3)
      • Spring (16)
      • Thymeleaf (2)
      • Node.js (1)
      • React (2)
      • SETTING (3)
      • JPA (11)
    • 🐜 TESTING (3)
    • 기타 (4)
    • μ—λŸ¬λͺ¨μŒ (4)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ

곡지사항

인기 κΈ€

νƒœκ·Έ

  • μ„œλΉ„μŠ€ν…ŒμŠ€νŠΈ
  • XSSFWorkbook
  • 개발자회고
  • 직렬화
  • μ•Œκ³ λ¦¬μ¦˜
  • QueryDSL
  • λ™μ ν”„λ‘μ‹œ
  • 인터뷰
  • 6μ›”νšŒκ³ 
  • Java
  • enum
  • μžλ°”
  • Til
  • Spring
  • 기초
  • λ°±μ€€
  • nullμ œμ™Έ
  • rdsνŒŒλΌλ―Έν„°
  • ArgumentCaptor
  • 회고
  • μ½”ν…Œ
  • Gson null
  • JPA
  • JWT
  • spring-boot
  • 파이썬
  • max_digest_length
  • λ©”μ„œλ“œν…ŒμŠ€νŠΈ
  • Setting
  • 개발자

졜근 λŒ“κΈ€

졜근 κΈ€

hELLO Β· Designed By μ •μƒμš°.v4.2.1
μ• μ •μ“°
03. 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ - 상속, 의쑴
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.