'μƒμ„±μžλ₯Ό 톡해 μ˜μ‘΄μ„±μ„ μ£Όμž…λ°›λŠ”λ‹€'의 의미

2025. 3. 26. 18:24Β·πŸ’»πŸš€/Spring & SpringBoot

 

μŠ€ν”„λ§ 곡뢀λ₯Ό ν•˜λ‹€λ³΄λ©΄ μ΄ˆλ°˜λΆ€ν„° 제λͺ©μ˜ λ¬Έμž₯이 정말정말 많이 λ‚˜μ˜€λŠ”λ°, μ €λŠ” 이 λ¬Έμž₯이 μ „ν˜€ 이해가 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

GPT와 였랜 ν† λ‘  끝에 μ΄ν•΄ν•˜κ³  λ³΄λ‹ˆ, 정말 정말 κ°„λ‹¨ν•œ λ‚΄μš©μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 

κ°€μž₯ μ•„λž˜ λ§€κ°œλ³€μˆ˜λ₯Ό ν™œμš©ν•œ λΉ„μœ λ₯Ό 보면 λ°”λ‘œ 와닿을 것이라고 μƒκ°ν•΄μš”!

 

πŸ“Œ μ˜μ‘΄μ„± μ£Όμž…μ΄λž€?

ν•„μš”ν•œ κ±Έ 직접 λ§Œλ“€μ§€ μ•Šκ³ , μ™ΈλΆ€μ—μ„œ λŒ€μ‹  λ„£λŠ”κ²ƒ,
즉, 객체가 ν•„μš”λ‘œ ν•˜λŠ” μ–΄λ–€ 것(λ‹€λ₯Έ 객체)을 μ™ΈλΆ€μ—μ„œ 전달 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

πŸ“Œ μƒμ„±μžλ₯Ό 톡해 μ˜μ‘΄μ„±μ„ μ£Όμž…ν•œλ‹€λŠ” 것

말 κ·ΈλŒ€λ‘œ 'μƒμ„±μžλ₯Ό ν†΅ν•΄μ„œ μ˜μ‘΄μ„±μ„ μ£Όμž…ν•˜λŠ” 방법'μž…λ‹ˆλ‹€. 

private MyRepository myRepository = new MyRepository();

μ΄λ ‡κ²Œ new둜 클래슀 내에 객체λ₯Ό μƒμ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ,

public class MyService {
        private final MyRepository myRepository;

        public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
        }
};

μ΄λ ‡κ²Œ μƒμ„±μžλ‘œ μ™ΈλΆ€μ—μ„œ 객체λ₯Ό λ°›μ•„μ˜€λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

πŸ’‘ λ§€κ°œλ³€μˆ˜λ₯Ό ν™œμš©ν•œ λΉ„μœ 

μ €λŠ” 이 ν•¨μˆ˜μ˜ λΉ„μœ λ‘œ μ’€ 더 λͺ…ν™•ν•˜κ²Œ μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€.

a와 bλ₯Ό 클래슀라고 μƒκ°ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° μ‰¬μšΈ 것 κ°™μ•„μš”.

// 직접 new둜 객체 λ§Œλ“œλŠ” 방식
int result() {
	int a = 3;
	int b = 5;
	return a + b;
	}
// μƒμ„±μžλ‘œ 객체λ₯Ό μ£Όμž…ν•˜λŠ” 방식
int result(int a, int b) {
	return a + b;
	}

이 차이λ₯Ό μ΄ν•΄ν•˜κ³  λ‹€μ‹œ 본문을 μ²˜μŒλΆ€ν„° 읽으면 μ˜λ―Έκ°€ 훨씬 와닿을 κ²ƒμž…λ‹ˆλ‹€.

 

πŸ“Œ @RequiredArgsConstructor : μƒμ„±μž μ£Όμž… μ–΄λ…Έν…Œμ΄μ…˜

@RequiredArgsConstructor
public class UserService {

    private final UserRepository userRepository;

    // πŸ‘‡ 이걸 μžλ™μœΌλ‘œ λ§Œλ“€μ–΄μ€Œ!
    // public UserService(UserRepository userRepository) {
    //     this.userRepository = userRepository;
    // }
}

final이 뢙은 ν•„λ“œλ₯Ό κΈ°μ€€μœΌλ‘œ ν•„μš”ν•œ μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” μ–΄λ…Έν…Œμ΄μ…˜μž…λ‹ˆλ‹€.

ν•΄λ‹Ή μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λ©° μ£Όμ„μ²˜λ¦¬λœ 뢀뢄을 μž‘μ„±ν•˜μ§€ μ•Šκ³  κ°„νŽΈν•˜κ²Œ μƒμ„±μž μ£Όμž…μ΄ λ©λ‹ˆλ‹€.

'πŸ’»πŸš€ > Spring & SpringBoot' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

JpaRepository ν•„λ“œλͺ…μœΌλ‘œ 쿼리 λ©”μ„œλ“œ λ§Œλ“€κΈ°  (3) 2025.05.10
JPA μ—”ν‹°ν‹° μ–΄λ…Έν…Œμ΄μ…˜ 정리 (@Entity, @MappedSuperclass, @Inheritance 상속 λ§€ν•‘ μ „λž΅)  (1) 2025.04.16
'πŸ’»πŸš€/Spring & SpringBoot' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • JpaRepository ν•„λ“œλͺ…μœΌλ‘œ 쿼리 λ©”μ„œλ“œ λ§Œλ“€κΈ°
  • JPA μ—”ν‹°ν‹° μ–΄λ…Έν…Œμ΄μ…˜ 정리 (@Entity, @MappedSuperclass, @Inheritance 상속 λ§€ν•‘ μ „λž΅)
aggeeeee
aggeeeee
γ€€ φ(..;)γ€€πŸ”œγ€€\_へ(β–­-β–­)✨
  • aggeeeee
    πŸ₯” λ‹˜μ˜ λΈ”λ‘œκ·Έ
    aggeeeee
    • λΆ„λ₯˜ 전체보기 (155)
      • Today I Learned (25)
      • 내일배움캠프 (115)
        • λ³ΈμΊ ν”„ 과제 (17)
        • 사전캠프 과제 (23)
        • SQL μ½”λ“œμΉ΄νƒ€ (44)
        • μ•Œκ³ λ¦¬μ¦˜ μ½”λ“œμΉ΄νƒ€ (31)
      • πŸ’»πŸš€ (15)
        • Java (7)
        • Git & GitHub (1)
        • CS (4)
        • Spring & SpringBoot (3)
  • 링크

  • 졜근 κΈ€

  • 전체
    였늘
    μ–΄μ œ
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
aggeeeee
'μƒμ„±μžλ₯Ό 톡해 μ˜μ‘΄μ„±μ„ μ£Όμž…λ°›λŠ”λ‹€'의 의미
μƒλ‹¨μœΌλ‘œ

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