AOP๋, Aspect-Oriented Programming์ ์ฝ์๋ก ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฏธํฉ๋๋ค.๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํก๋จ ๊ด์ฌ์ฌ(Cross Cutting Concern)์ ๋ถ๋ฆฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋ชจ๋์ฑ์ ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ๋ชฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋๋ค.์ด๋ฅผ ํตํด
๋น์ด๋ ์คํ๋ง IoC ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.์ฌ๊ธฐ์ ๋งํ๋ ์๋ฐ ๊ฐ์ฒด๋ POJO ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.@Component ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.@Component ์ด๋ ธํ ์ด์ ์ด ๋ถ์ด ์๋ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ์ค์บ์ ํตํด ๋น์ผ๋ก ๋ฑ๋กํด์ค๋๋ค
์ํฐํ๋ผ์ด์ฆ์ฉ JAVA ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํธํ๊ฒ ํ ์ ์๊ฒ ํด์ฃผ๋ ์คํ์์ค ๊ฒฝ๋๊ธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์คํ๋ง์ ๊ฐ์ฅ ํฐ ํน์ง์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ POJO๋, Plain Old Java Object, ์ฆ ์์ Java๋ง์ ํตํด์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.๊ทธ
ํ๋ก์ ํธ ๋ด๋ถ์ ์๋ ์คํ๋ง ๋น์ ๋ชจ๋ ๋ฑ๋กํฉ๋๋ค.(ํ ์คํธ๊ฐ ๋๋ฆผ)์ค์ ์ด์ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ํด๋์ค๋ค์ ํตํฉํด์ ํ ์คํธํ๋ ๋ฐฉ์์ ๋๋ค.๋ฐ๋ผ์ ํ๊ฒฝ๊ณผ ๊ฐ์ฅ ์ ์ฌํ๊ฒ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, Service ๋ฉ์๋์ ์คํ์ด ๋ณ๊ฒฝ๋์ด๋ Mocking ๊ฐ์ ์์ ํ์ง ์์๋ ๋๊ธฐ ๋
์๋ฒ์์์ properties ์ฐธ์กฐ