Service์ ServiceImpl์ ๋ถ๋ฆฌํด์ ์ฌ์ฉํด ๋ณธ ์ ์ด ์๋๋ฐ ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋ง์ด ๋ด์ ํ ๋ฒ ์กฐ์ฌํด ๋ดค๋คโ๏ธ
์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ๋ฐ๋ก ๋๋ ๊ฑด OCP(๊ฐ๋ฐฉ-ํ์ ์์น) ๋๋ฌธ์ด๋ค.
๐ธ OCP๋?
์ํํธ์จ์ด ๊ฐ์ฑ๋ ํ์ฅ์ ๋ํด ์ด๋ ค์์ด์ผ ํ๊ณ , ์์ ์ ๋ํด์๋ ๋ซํ์์ด์ผ ํ๋ค๋ ํ๋ก๊ทธ๋๋ฐ ์์น์ด๋ค.
์ด ์์น์ด ์ ์ ์ฉ๋๋ฉด, ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒจํด์ผ ํ ๋ ์ด๋ฏธ ์ ๋๋ก ๋์ํ๊ณ ์๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์์๋ ๊ธฐ์กด์ ์ฝ๋์ ์๋ก์ด ์ฝ๋๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
๐ธ Service์ ServiceImpl
sevice๋ฅผ ๋จผ์ ์ ์ํ๊ณ , serviceimpl์ด service ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์์ ๊ตฌํํ๋ ๊ฒ์ด๋ค.
Controller์์๋ service๋ฅผ ํธ์ถํ๋ค!!
ํ๋ก์ ํธ์์๋ ์ ์ฉ์ ํด๋ดค์๋๋ฐ ๊ฒฐ๊ตญ 1:1 ๊ด๊ณ์์๋ ์๊ด์ด ์๋ ๊ฑฐ ์๋๊ฐ๋ผ๊ณ ์๊ฐ์ ํด๋ดค๋ค.
๊ทผ๋ฐ ๊ฒ์์ ํด๋ณด๋๊น ๊ท๋ชจ๊ฐ ์ข ํฐ ๊ธฐ์ ์์๋ 1:N๊ด๊ณ๋ก ์ฌ์ฉํ ์๋ ์๋ค๊ณ ์๊ฐํ๋ค!!
ํ๋์ service ๋ฉ์๋๋ฅผ ์ด์ฉํ๋๋ฐ ๋ง์ฝ ๊ฐ๊ฒฉ ์กฐ์ ์ด ์ค๊ฑฐ๋ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ ์ฝ๋๊ฐ ์๋ค๋ฉด? ๊ตฌํ์ฒด๋ฅผ ๋ค์ ๋ง๋ค์ด์ ๋ค์ ๋ง๋ ๊ตฌํ์ฒด์ @Service ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค!
์ฆ, ๊ตฌํ์ฒด์ ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๋ก ๋๋ ๊ฑด ์ ์ฐํ๊ณ ๋ณ๊ฒฝ์ ์ฉ์ดํ๊ฒ ๋ฐ๊ฟ ์ ์์ง๋ง ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ ๋๋ ๊ตณ์ด ํ์ ์์ ๊ฒ ๊ฐ๋ค!!
โ๏ธ ์ธํ๋ฐ์ ๊น์ํ๋ ๋ต๋ณ์ ๊ฐ์ ธ์๋ดค๋ค!
์ด์์ ์ผ๋ก๋ ๋ชจ๋ ์ค๊ณ์ ์ธํฐํ์ด์ค๋ฅผ ๋ถ์ฌํ๋ค.
ํ์ง๋ง, ์ค๋ฌด์ ์ผ๋ก ์ธํฐํ์ด์ค๋ฅผ ๋์ ํ๋ฉด ์ถ์ํ๋ผ๋ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
โ๏ธ ๊ธฐ๋ฅ์ ํ์ฅํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด, ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ๊ณ ํฅํ ๊ผญ ํ์ํ ๋ ๋ฆฌํฉํฐ๋งํด์ ์ธํฐํ์ด์ค๋ฅผ ๋์ ํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ด๋ค!!
-> ๊ธฐ๋ฅ์ ํ์ฅํ๊ฑฐ๋ ๊ต์ฒดํ ์ผ์ด ์๋ค๋ฉด ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์ฌ์ฉํ์โจ
๐ธ๋ค์ด๋ฐ ์ปจ๋ฒค์
๋ณดํต ๊ตฌํ์ฒด์๋ Impl์ ๋ถ์ด๋๋ฐ ์ด ์ปจ๋ฒค์ ์ ์ ์ ์ปจ๋ฒค์ ์ด ์๋ ๊ฒ ๊ฐ๋ค.
๋ฆฌ์คํธ์ ๊ฐ์ด List๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ArrayList, Linked List์์๋ Impl์ด๋ผ๋ ์ ๋ฏธ์ฌ๋ฅผ ์ ๋ถ์ธ๋ค!
์ด๋ป๊ฒ ์ฌ์ฉํด๋ด์ผ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ํ ๋ฒ ๊ณ ๋ฏผํด ๋ด์ผ๊ฒ ๋ค!!
๊ทผ๋ฐ impl์ด ์ข ์ง๊ด์ ์ด๊ณ ๋ณด๊ธฐ ํธํด์ ์ด๋ ๊ฒ ์ฐ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ๊ธด ํ๋ค..๐
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] Spring Security(์คํ๋ง ์ํ๋ฆฌํฐ) ๊ธฐ์ด ๊ฐ๋ (1) | 2023.10.31 |
---|---|
[Spring] Dirty Checking(๋ํฐ ์ฒดํน) ์ด๋? (0) | 2023.10.27 |
[Spring] ํด์ํ๊ทธ ๊ธฐ๋ฅ DB + JPA ์ค๊ณ (0) | 2023.06.20 |
[Spring] MultipartFile, Dto ํ๋ฒ์ ์ ๋ ฅ ๋ฐ๊ธฐ | swagger | S3 (0) | 2023.02.14 |
[Spring][Redis] RedisConnectionException : NOAUTH Authentication required ์๋ฌ (0) | 2023.02.10 |