Home - oneso123456789/2022 GitHub Wiki

Wiki λ‚΄μš© velog둜 μ΄μ „ν•˜κ³  λ‚΄μš© 정리 및 λ³΄μ™„ν•˜κΈ°

μŠ€ν”„λ§μ˜ 3λŒ€ μš”μ†Œ

IOC/DIλ₯Ό λ¬Άμ–΄μ„œλ„ 많이 μ •λ¦¬ν•˜μ§€λ§Œ λ”°λ‘œ ν–ˆμŒ

μŠ€ν”„λ§ ioc(inversion of control):

κ°„λ‹¨νžˆ λ§ν•΄μ„œ 객체의 μ œμ–΄κΆŒ(빈의 생성과 관계섀정, μ‚¬μš©, μ œκ±°λ“±μ˜ μž‘μ—…)이 개발자(μ½”λ“œ)μ—μ„œ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆ(IoC μ»¨ν…Œμ΄λ„ˆ)둜 λ„˜μ–΄κ°„κ²ƒμ„ 말함

μž₯점은 개발자의 뢀담이 μ€„μ–΄μ„œ 핡심 λ‘œμ§μ— μ§‘μ€‘ν• μˆ˜μžˆλ‹€λŠ”μ μž„

μŠ€ν”„λ§ DI(Dependency Injection):

객체 μ‚¬μ΄μ˜ 의쑴 관계λ₯Ό μ™ΈλΆ€μ—μ„œ κ²°μ •ν•˜κ³  μ£Όμž…ν•˜λŠ”κ²ƒμž„

μž₯점은 μ£Όμž…λ°›λŠ” λŒ€μƒμ΄ λ³€ν•˜λ”λΌλ„ κ·Έ κ΅¬ν˜„ 자체λ₯Ό μˆ˜μ •ν•  일이 μ—†μ–΄ μž¬μ‚¬μš©μ΄ 높은 μ½”λ“œκ°€ 됨

μŠ€ν”„λ§ PSA (Portable Service Abstraction):

일관성 μžˆλŠ” μ„œλΉ„μŠ€ 좔상화
λŒ€ν‘œμ μœΌλ‘œ JDBCκ°€ μ‘΄μž¬ν•¨
μ–΄λ– ν•œ DBλ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ κ³΅ν†΅λœ λ°©μ‹μœΌλ‘œ μ½”λ“œ μž‘μ„±

Spring AOP (Aspect - Oriented Programming):

관점 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄λ©°
μ–΄λ–€ λ‘œμ§μ„ κΈ°μ€€μœΌλ‘œ 핡심적인 관점, 뢀가적인 κ΄€μ μœΌλ‘œ λ‚˜λˆ„μ–΄μ„œ 보고
κ·Έ 관점을 κΈ°μ€€μœΌλ‘œ 각각 λͺ¨λ“ˆν™” ν•˜κ² λ‹€λŠ” κ²ƒμž„
(λͺ¨λ“ˆν™”λŠ” μ–΄λ–€ κ³΅ν†΅λœ λ‘œμ§μ΄λ‚˜ κΈ°λŠ₯을 ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬ΆλŠ” 것을 말함)

μž₯점은 각 λ‘œμ§μ—μ„œ λ‘œκΉ…, νŠΈλžœμž­μ…˜κ³Ό 같은 λ°˜λ³΅λ˜λŠ” κΈ°λŠ₯을 λͺ¨λ“ˆν™” ν•΄μ„œ μž¬μ‚¬μš©ν• μˆ˜μžˆμŒ OOPλ₯Ό 더 잘 κ΅¬ν˜„κ°€λŠ₯   AOPλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‘œκΉ…,νŠΈλžœμž­μ…˜ 관리, μ‹œνλ¦¬ν‹° μ—μ„œμ˜ 적용 λ“± AspectJ와 같이 μ™„λ²½ν•˜κ²Œ κ΅¬ν˜„λœ AOP와 ν†΅ν•©ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯함

좜처

μ½”λ“œλ‘œ λ°°μš°λŠ” μŠ€ν”„λ§ μ›Ή ν”„λ‘œμ νŠΈ
https://steady-coding.tistory.com/600#
https://guy-who-writes-sourcecode.tistory.com/40
https://engkimbs.tistory.com/746

μš”μ¦˜ λŠλΌλŠ” κ±΄λŒ€ μ•Œκ³ λ¦¬μ¦˜ λŠ₯λ ₯을 ν‚€μš°λŠ”κ²Œ μ±…μ—μ„œ μ›Ή 둜직 곡뢀보닀 더 μ€‘μš”ν•œκ±° κ°™μŒ
μ½”λ”© ν…ŒμŠ€νŠΈ 문제 μ—°μŠ΅ λ°±μ€€ or μ½”λ“œμ—…
ν˜‘μ—… ν”„λ‘œκ·Έλž¨ λ…Έμ…˜ or μŠ¬λž™ μˆ™μ§€

githubλ₯Ό μ΄μš©ν•΄μ„œ μ΅œλŒ€ν•œ μ½”λ“œ 리뷰λ₯Ό ν•΄μ£Όλ €κ³  λ…Έλ ₯ν•˜κ³  λ°›μœΌλ €κ³  λ…Έλ ₯ν•˜μž

문제λ₯Ό ν•΄κ²°ν• λ•Œ μƒν™©λ§ˆλ‹€ μ ν•©ν•œ 방법은 μžˆμ§€λ§Œ ν‹€λ¦° 방법은 μ—†λ‹€