๊ฐ์ฒด์งํฅ ๋ณต์ต
๐ก
๋ฉด์ ์ ์์ฃผ ๋ฑ์ฅํ๋ ๋คํ์ฑ, ์ถ์ ํด๋์ค, ์ธํฐํ์ด์ค
๊ฐ์ฒด์งํฅ 4๋ ํน์ฑ
์บก์ํ, ์์, ์ถ์ํ, ๋คํ์ฑ
์์์ ์ ํ๋๊ฐ?
- ์ฌ์ฌ์ฉ์ฑ(๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ๋ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ)
- ์ด ๋ ์ผ์ด๋๋๊ฒ ๋คํ์ฑ
๐ ๋ถ๋ชจ, ์์ ํด๋์ค ๋ชจ๋ ๊ตฌํ๋ถ๊ฐ ์์.
์บก์ํ
- ๋ด๋ถ ์ธ์คํด์ค๋ฅผ ์ธ๋ถ์์ ์ ๊ทผํ๋ ๊ฒ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํจ.
- ์) ์ด์ ์๋ ์ฐจ ์๋๋ฅผ ๋์ผ ๋ ์์ง์ ์ง์ ์ ๊ทผํ์ฌ ์๋๋ฅผ ์ ์ดํ๋ฉด ์ ๋จ.
- ์ต๊ณ ์๋๊ฐ 200km/h์ธ๋ฐ 250km/h๋ก ์กฐ์ ํ๋ฉด ํฐ์ผ๋จ..
- ์) ์ด์ ์๋ ์ฐจ ์๋๋ฅผ ๋์ผ ๋ ์์ง์ ์ง์ ์ ๊ทผํ์ฌ ์๋๋ฅผ ์ ์ดํ๋ฉด ์ ๋จ.
โด๏ธ ๋คํ์ฑ
์์ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ํ์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ํ์ ํด๋์ค is kind of ์์ ํด๋์ค
๐ก
์คํ๋ง ๋ถํธ์ ์์กด์ฑ ์ฃผ์
(AOP)๊ณผ ๋น์ท(๊ฐ์ฒด๋ฅผ ๋๊ฐ ๋ง๋ค์๋์ ๋ฐ๋ผ ๋ค๋ฆ.. ex.์ ์ด ์ญ์ (IoC))
- โจ ์ค๋ฒ๋ก๋ฉ, ์ค๋ฒ๋ผ์ด๋ฉ ์ฐจ์ด์ ?
- ์ค๋ฒ๋ก๋ฉ : System.out.print() ์๊ฐํ๋ฉด ๋จ.
- ์ค๋ฒ๋ผ์ด๋ฉ : ๋ถ๋ชจ(์์) ํด๋์ค์์ ๋ง๋ ๋ฉ์๋๋ฅผ ์ฌ์ ์
- ์ ๊ทผ์ ํ์, ๋ฐํํ์ , ๋งค๊ฐ๋ณ์ ๋ชจ๋ ๊ฐ์์ผ ํจ.
โด๏ธ ์ถ์ ํด๋์ค
์ฌ์ฉ ๋ชฉ์
- ์๋๋ฐฉ์ด ์ด๋ป๊ฒ ๊ตฌํ๋์ด์๋์ง ๋ชฐ๋ผ๋ ๋๊ธฐ ์ํด(๋์จํ ๊ฒฐํฉ ๊ด๊ณ)
- ๊ทธ๋ฌ๊ธฐ ์ํด ๊ณตํต๋๋ ํน์ฑ์ ์ถ์ถ(์ถ์.abstract)ํ๋ ๊ฒ์ด๋ค.
ํน์ง
- ์์์ ์ฃผ๋ ๋ถ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์
- ๋ถ๋ชจ ํด๋์ค๋ ์ถ์ ๋ฉ์๋๋ฅผ ํฌํจํด์ผ ํจ. (๊ทผ๋ฐ ์ผ๋ฐ ๋ฉ์๋๋ ๋ฃ์ ์ ์์)
- ๊ตฌํ๋ถ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ ๋ฐ๋ ํด๋์ค๋ ๋ฐ๋์ ๊ตฌํํด์ค์ผ ํ๋ ๊ฐ์ ์ฑ์ด ์๊น.
- ์ด ๋, ๋์จํ ๊ฒฐํฉ ๊ด๊ณ๊ฐ ์๊น๐
- ๋จ์ผ ์์๋ง ์ง์ํจ.
์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค
๊ณตํต์ : ๊ฐ์ฒด ์์ฑ ๋ถ๊ฐ, ์ฐธ์กฐ ํ์
์ฐจ์ด์ : ์ถ์ ํด๋์ค๋ ๋จ์ผ ์์, ์ธํฐํ์ด์ค๋ ๋ค์ค ์์
โด๏ธ ์ธํฐํ์ด์ค
์๋ฐ์์๋ ํด๋์ค๋ฅผ ์ด์ฉํ ๋ค์ค ์์์ ์ง์ํ์ง ์์ง๋ง ๋ค์ค ์์์ ์ด์ ์ ๋ฒ๋ฆด ์ ์์ด์ ‘์ธํฐํ์ด์ค’๋ฅผ ํตํด ๋ค์ค ์์์ ์ง์ํฉ๋๋ค.
ํน์ง
์ธํฐํ์ด์ค๋ ์ค๊ณ๋๋ฉด์ผ๋ก๋ง ์ฌ์ฉํ๊ธฐ ์ํด์ ์์ ์ถ์ํ ๊ฐ๋ ์ด ์ ์ฉ ๋จ.
- ๋ชจ๋ ํ๋๋ ์๋์ผ๋ก ์์๋ก ๋ณํ(
final static)- ์? ์ธํฐํ์ด์ค๋ ์์์ด ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์
- ์? ์ธ๋ถ์์ ์ง์ ์ ๊ทผ ๋ชปํ๊ฒ ํ๋ ค๊ณ . (?) ์ ..๋จธ๋ฆฌ๋ก๋ ์๊ฒ ๋๋ฐ ๊ธ๋ก ์ฐ๋ ค๋ ํท๊ฐ๋ฆฌ๋ค
- ๋ชจ๋ ๋ฉ์๋๋ ์ถ์ ๋ฉ์๋๋ก ๋ณ๊ฒฝ(๊ตฌํ๋ถ ์์ฑX)
- ‘๋ํดํธ ๋ฉ์๋’๋ ๊ตฌํ๋ถ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์์ ๋ฐ์ ํด๋์ค์์ ์ฌ์ ์ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ ์ ๋ฉ์๋
'๐๏ธ Backend > Spring Boot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Spring Boot - 2. REST API๋ฅผ ์์ฑํ๋ ๋ค์ํ ๋ฐฉ๋ฒ (0) | 2023.06.07 |
|---|---|
| Spring Boot - 1. ์ฃผ์ ๊ฐ๋ (์ ์ด ์ญ์ , ์์กด์ฑ ์ฃผ์ , ์ด๋ ธํ ์ด์ ) (0) | 2023.06.07 |