<aside> ๐ AOP (Aspec Oriented Programming)
ํต์ฌ ๊ด์ฌ ์ฌํญ๊ณผ ๊ณตํต ๊ด์ฌ ์ฌํญ
ํต์ฌ ๊ด์ฌ ์ฌํญ(Core Concern)
๊ณตํต ๊ด์ฌ ์ฌํญ(Cross-Cutting-Concern)
๊ธฐ์กด OOP์์๋ ๊ณตํต ๊ด์ฌ ์ฌํญ์ ์ฌ๋ฌ ๋ชจ๋์์ ์ ์ฉํ๋ ๋ฐ์ ์์ด์ ์ค๋ณต๋ ์ฝ๋๋ฅผ ์์ํ๋ ํ๊ณ๊ฐ ์กด์ฌ
โ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ : AOP
๐กAOP : application์์์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ(๊ธฐ๋ฅ์ ๋ถ๋ฆฌ)
ํต์ฌ์ ์ธ ๊ธฐ๋ฅ โ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌ
๐ ํธ๋์ญ์ ๊ฒฝ๊ณ์ค์ ๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ด ๊ณต์กดํ๋ ๋ฉ์๋
public void upgradeLevels() throws Exception {
TransactionStatus status = this.transactinoManager.getTransaction(new DefaultTransactionDefinition());
try {
List<User> users = userDao.getAll();
for (User user : users) {
if (canUpgradeLevel(user)) {
upgradeLevel(user);
}
}
this.transcationManager.commit(status);
}