󼼺
  3.1 Vol. 1  ؿ


SMART
 

3.1 Vol. 1 ؿ

<Ϲ> | ǻ

Ⱓ
2019-07-04
PDF
뷮
27 M
PC
Ȳ
1, 0, 0
 Ұ
 Ұ
ټ

 Ұ

ܼ 3.0 3.1 ϸ ٽ α׷ IoC/DI, PSA, AOP ̿ پ , α׷ ֵ ش. ̾ Vol. 2 á Ұϴ 3.0 3.1 ϰ ȿ ϴ ʿ ׵ ش.

3.1 ó ϰų ư ں Ȱ Űó ϰ ӿũ Ϸ ϴ ŰƮ ̸ ִ Ϻ ̴̺.

ѹα ǥ ӿũ ϴ No. 1 Ʈ!

ڼҰ

ȣ IT ǥ Ʈ. ¼ҽ Ŀ´Ƽ ½õ ǥ ѱڸ(KSUG) ̱⵵ ϴ. 8Ʈ ǻ α׷ ŷ¿ 10 Ⱓ ̷ α׷ ܿ  17° Ʈ ߰ , ؿ ִ. 2004 ̿ؼ б, ͳ ü ý ؿ԰ ø̼ ӿũ ð ؿ ִ. JCO ۷ ǥ߰ ⹦, , KSUG ̳ ϱ⵵ ߴ. ¼ҽ õ ϴ α(toby.epril.com) ϰ ִ.

1 Ʈ
1.1 ʳ DAO
1.1.1 User
1.1.2 UserDao
1.1.3 main() ̿ DAO ׽Ʈ ڵ
1.2 DAO и
1.2.1 ɻ и
1.2.2 Ŀؼ
UserDao ɻ
ߺ ڵ ޼ҵ
׿ : 丵 ׽Ʈ
1.2.3 DB Ŀؼ
Ȯ
1.3 DAO Ȯ
1.3.1 Ŭ и
1.3.2 ̽
1.3.3 輳 å и
1.3.4 Ģ
Ģ
յ

1.4 (IoC)
1.4.1 Ʈ 丮

赵μ 丮
1.4.2 Ʈ 丮 Ȱ
1.4.3
1.5 IoC
1.5.1 Ʈ 丮 ̿ IoC
ø̼ ؽƮ
DaoFactory ϴ ø̼ ؽƮ
1.5.2 ø̼ ؽƮ ۹
1.5.3 IoC
1.6 ̱ Ʈ Ʈ
1.6.1 ̱ Ʈμ ø̼ ؽƮ
ø̼ǰ ̱
̱ Ѱ
̱ Ʈ
1.6.2 ̱ Ʈ
1.6.3
1.7 (DI)
1.7.1 (IoC)
1.7.2 Ÿ

UserDao
UserDao
1.7.3 ˻
1.7.4
ȯ
ΰ ߰
1.7.5 ޼ҵ带 ̿
1.8 XML ̿
1.8.1 XML
connectionMaker() ȯ
userDao() ȯ
XML
1.8.2 XML ̿ϴ ø̼ ؽƮ
1.8.3 DataSource ̽ ȯ
DataSource ̽
ڹ ڵ
XML
1.8.4 Ƽ

value ڵ ȯ
1.9
2 ׽Ʈ
2.1 UserDaoTest ٽ
2.1.1 ׽Ʈ 뼺
2.1.2 UserDaoTest Ư¡
DAO ׽Ʈ
׽Ʈ
ڵ ׽Ʈ ڵ
׽Ʈ
2.1.3 UserDaoTest
2.2 UserDaoTest
2.2.1 ׽Ʈ ڵȭ
2.2.2 ׽Ʈ ȿ
JUnit ׽Ʈ ȯ
׽Ʈ ޼ҵ ȯ
ڵ ȯ
JUnit ׽Ʈ
2.3 ڸ ׽ ӿũ JUnit
2.3.1 JUnit ׽Ʈ
IDE

2.3.2 ׽Ʈ ϰ
deleteAll() getCount() ߰
deleteAll() getCount() ׽Ʈ
ϴ ׽Ʈ
2.3.3 ׽Ʈ
getCount() ׽Ʈ
addAndGet() ׽Ʈ
get() ǿ ׽Ʈ
׽Ʈ Ű ڵ
׽Ʈ
2.3.4 ׽Ʈ ̲
ɼ踦 ׽Ʈ
׽Ʈ ֵ
2.3.5 ׽Ʈ ڵ
@Before
Ƚó
2.4 ׽Ʈ
2.4.1 ׽Ʈ ø̼ ؽƮ
׽Ʈ ؽƮ ӿũ
׽Ʈ ޼ҵ ؽƮ
׽Ʈ Ŭ ؽƮ
@Autowired
2.4.2 DI ׽Ʈ
׽Ʈ ڵ忡 DI
׽Ʈ DI
̳ DI ׽Ʈ
DI ̿ ׽Ʈ
2.5 н ׽Ʈ
2.5.1 н ׽Ʈ
2.5.2 н ׽Ʈ
JUnit ׽Ʈ Ʈ ׽Ʈ
׽Ʈ ؽƮ ׽Ʈ
2.5.3 ׽Ʈ
2.6
3 ø
3.1 ٽ ʳ DAO
3.1.1 ó DAO
JDBC ó ڵ
JDBC ȸ ó
3.2 ϴ Ͱ ʴ
3.2.1 JDBC try/catch/finally ڵ
3.2.2 и
޼ҵ
ø ޼ҵ

DI Ŭ̾Ʈ/ؽƮ и
3.3 JDBC ȭ
3.3.1 Ŭ ߰
3.3.2 Ŭ̾Ʈ
Ŭ
͸ Ŭ
3.4 ؽƮ DI
3.4.1 JdbcContext и
Ŭ и

3.4.2 JdbcContext Ư DI
DI
ڵ带 ̿ϴ DI
3.5 ø ݹ
3.5.1 ø/ݹ ۿ
ø/ݹ Ư¡
JdbcContext ø/ݹ
3.5.2 ݹ Ȱ
ݹ и Ȱ
ݹ ø
3.5.3 ø/ݹ
׽Ʈ try/catch/finally
ߺ ſ ø/ݹ
ø/ݹ 缳
׸ ̿ ݹ ̽
3.6 JdbcTemplate
3.6.1 update()
3.6.2 queryForInt()
3.6.3 queryForObject()
3.6.4 query()
ǿ ׽Ʈ ۼ
query() ø ̿ϴ getAll()
׽Ʈ
3.6.5 ݹ и
DI ڵ
ߺ
ø/ݹ ϰ UserDao
3.7
4
4.1 SQLException
4.1.1 ʳ ó
Ȧ
ǹϰ å throws
4.1.2 Ư¡
4.1.3 ó

ó ȸ
ȯ
4.1.4 ó
Ÿ ȭ
add() ޼ҵ ó
ø̼
4.1.5 SQLException  Ƴ?
4.2 ȯ
4.2.1 JDBC Ѱ
ǥ SQL
ȣȯ SQLException DB
4.2.2 DB ڵ ȯ
4.2.3 DAO ̽ DataAccessException
DAO ̽ и
׼ ߻ȭ DataAccessException
4.2.4 UserDao
̽
׽Ʈ
DataAccessException Ȱ ǻ
4.3
5 ߻ȭ
5.1 ߰
5.1.1 ʵ ߰
Level ̴
User ʵ ߰
UserDaoTest ׽Ʈ
UserDaoJdbc
5.1.2 ߰
׽Ʈ ߰
UserDao UserDaoJdbc
׽Ʈ
5.1.3 UserService.upgradeLevels()
UserService Ŭ
UserServiceTest ׽Ʈ Ŭ
upgradeLevels() ޼ҵ
upgradeLevels() ׽Ʈ
5.1.4 UserService.add()
5.1.5 ڵ
upgradeLevels() ޼ҵ ڵ
upgradeLevels() 丵
User ׽Ʈ
UserServiceTest
5.2 Ʈ ߻ȭ
5.2.1 ƴϸ
׽Ʈ UserService 뿪
߻ ׽Ʈ
׽Ʈ
5.2.2 Ʈ 輳
JDBC Ʈ Ʈ 輳
UserService UserDao Ʈ
Ͻ Ʈ 輳
UserService Ʈ 輳
5.2.3 Ʈ ȭ
Connection Ķ
Ʈ ȭ
Ʈ ׽Ʈ
JdbcTemplate Ʈ ȭ
5.2.4 Ʈ ߻ȭ
ȯ濡 ӵǴ Ʈ 輳 ڵ
Ʈ API ذå
Ʈ ߻ȭ
Ʈ и
,
5.3 ߻ȭ å Ģ
å Ģ
å Ģ
5.4 ߻ȭ
5.4.1 JavaMail ̿ ߼
JavaMail ߼
5.4.2 JavaMail Ե ڵ ׽Ʈ
5.4.3 ׽Ʈ ߻ȭ
JavaMail ̿ ׽Ʈ
߼ ߻ȭ
׽Ʈ ߼ Ʈ
׽Ʈ ߻ȭ
5.4.4 ׽Ʈ 뿪
Ʈ ׽Ʈ
׽Ʈ 뿪 Ư¡
Ʈ ̿ ׽Ʈ
5.5
6 AOP
6.1 Ʈ ڵ и
6.1.1 ޼ҵ и
6.1.2 DI ̿ Ŭ и
DI ̿ Ʈ и
UserService ̽
и Ʈ
Ʈ DI
Ʈ и ׽Ʈ
Ʈ 輳 ڵ и
6.2 ׽Ʈ
6.2.1 ׽Ʈ
6.2.2 ׽Ʈ Ʈ Ű
׽Ʈ UserServiceImpl
׽Ʈ Ȱ
UserDao Ʈ
׽Ʈ
6.2.3 ׽Ʈ ׽Ʈ
6.2.4 ӿũ
Mockito ӿũ
6.3 ̳ Ͻÿ 丮
6.3.1 Ͻÿ Ͻ , ڷ
ڷ
Ͻ
6.3.2 ̳ Ͻ
Ͻ Ͻ ۼ
÷
Ͻ Ŭ
̳ Ͻ
̳ Ͻ Ȯ
6.3.3 ̳ Ͻø ̿ Ʈ ΰ
Ʈ InvocationHandler
TransactionHandler ̳ Ͻø ̿ϴ ׽Ʈ
6.3.4 ̳ Ͻø 丮


̳ Ͻø ִ 丮
Ʈ Ͻ 丮
Ʈ Ͻ 丮 ׽Ʈ
6.3.5 Ͻ 丮 Ѱ
Ͻ 丮
Ͻ 丮
Ͻ 丮 Ѱ
6.4 Ͻ 丮
6.4.1 ProxyFactoryBean
̽: Ÿ ʿ ΰ
Ʈ: ΰ ޼ҵ
6.4.2 ProxyFactoryBean
TransactionAdvice
XML
׽Ʈ
̽ Ʈ
6.5 AOP
6.5.1 ڵ Ͻ
ߺ
ó⸦ ̿ ڵ Ͻ
Ȯ Ʈ
Ʈ ׽Ʈ
6.5.2 DefaultAdvisorAutoProxyCreator
Ŭ ͸ Ʈ ۼ
̿ϴ ڵ Ͻ
Ʈ
̽
ProxyFactoryBean ſ 󺹱
ڵ Ͻ ⸦ ϴ ׽Ʈ
ڵ Ͻ Ȯ
6.5.3 Ʈ ǥ ̿ Ʈ
Ʈ ǥ
Ʈ ǥ
Ʈ ǥ ׽Ʈ
Ʈ ǥ ̿ϴ Ʈ
Ÿ ϰ Ŭ ̸
6.5.4 AOP ΰ?
Ʈ ߻ȭ
Ͻÿ ڷ
̳ Ͻÿ Ͻ 丮
ڵ Ͻ Ʈ
ΰ ȭ
AOP: ֽƮ α׷
6.5.5 AOP
Ͻø ̿ AOP
Ʈڵ AOP
6.5.6 AOP
6.5.7 AOP ӽ̽
AOP ӽ̽
Ʈ
6.6 Ʈ Ӽ
6.6.1 Ʈ
Ʈ
ݸ
ѽð
б
6.6.2 Ʈ ͼͿ Ʈ Ӽ
TransactionInterceptor
޼ҵ ̸ ̿ Ʈ Ӽ
tx ӽ̽ ̿
6.6.3 Ʈư Ʈ Ӽ
Ʈ Ʈ ǥ Ÿ ̳ ̸ ̿Ѵ
޼ҵ ̸ Ģ ּ Ʈ ̽ Ӽ Ѵ
Ͻ AOP Ÿ Ʈ ޼ҵ带 ȣ ʴ´
6.6.4 Ʈ Ӽ
Ʈ 輳 Ͽȭ
Ǵ Ʈ ǥ
Ʈ Ӽ Ʈ ̽
Ʈ Ӽ ׽Ʈ
6.7 ֳ̼ Ʈ Ӽ Ʈ
6.7.1 Ʈ ֳ̼
@Transactional
Ʈ Ӽ ̿ϴ Ʈ
ü å
Ʈ ֳ̼
6.7.2 Ʈ ֳ̼
6.8 Ʈ ׽Ʈ
6.8.1 Ʈǰ Ʈ Ӽ
6.8.2 Ʈ ȭ ׽Ʈ
Ʈ Ŵ Ʈ ȭ
Ʈ Ŵ ̿ ׽Ʈ Ʈ
Ʈ ȭ
ѹ ׽Ʈ
6.8.3 ׽Ʈ Ʈ ֳ̼
@Transactional
@Rollback
@TransactionConfiguration
NotTransactional Propagation.NEVER
ȿ DB ׽Ʈ
6.9
7 ٽ
7.1 SQL DAO и
7.1.1 XML ̿ и
SQL Ƽ
SQL Ƽ
7.1.2 SQL
SQL ̽
ϴ ܼ SQL
7.2 ̽ и ڱ
7.2.1 XML
JAXB
SQL Ű ۼ
𸶼
7.2.2 XML ̿ϴ SQL
SQL XML
XML SQL
7.2.3 ʱȭ ۾
7.2.4 ȭ غ: ̽ и
åӿ ̽
SqlRegistry ̽
SqlReader ̽
7.2.5 ڱ ϱ
̽
̽ ̿ и
ڱ
7.2.6 Ʈ
Ȯ Ŭ
Ʈ 踦
7.3 ߻ȭ
7.3.1 OXM ߻ȭ
OXM ̽
JAXB ׽Ʈ
Castor ׽Ʈ
7.3.2 OXM ߻ȭ
Ŭ ϴ Ŭ
̿ BaseSqlService
7.3.3 ҽ ߻ȭ
ҽ
ҽ δ
Resource ̿ XML
7.4 ̽ Ȯ
7.4.1 DI Ȯ
DI ǽϴ
DI ̽ α׷
7.4.2 ̽
7.5 DI ̿ پ ϱ
7.5.1 ConcurrentHashMap ̿ SQL Ʈ
SQL Ʈ ׽Ʈ
SQL Ʈ
7.5.2 ͺ̽ ̿ SQL Ʈ
DB
DB н ׽Ʈ
DB ̿ SqlRegistry
UpdatableSqlRegistry ׽Ʈ ڵ
XML DB
7.5.3 Ʈ
SQL Ʈ ׽Ʈ
ڵ带 ̿ Ʈ
7.6 3.1 DI
ڹ ȭ
7.6.1 ڹ ڵ带 ̿
׽Ʈ ؽƮ
context:annotation-config /
bean ȯ
± ȯ
7.6.2 ijװ ڵ̾
@Autowired ̿ ڵ̾
@Component ̿ ڵ
7.6.3 ؽƮ и @Import
׽Ʈ ؽƮ и
@Import
7.6.4
@Profile @ActiveProfiles
̳ Ȯ
ø Ŭ ̿
7.6.5 Ƽ ҽ
@PropertySource
PropertySourcesPlaceholderConfigurer
7.6.6 @Enable*

@Enable* ֳ̼
7.7
8 ̶ ΰ?
8.1
8.2
8.2.1
ٺ
߽Ű
8.2.2 ذϷ
ŵ ٺ
ذå: EJB
ħ ȿ ذå:
8.2.3 ϴ
ϴ
Ͻ ø̼ ϴ
ٽ : ü DI
8.3 POJO α׷
8.3.1 ٽ: POJO
8.3.2 POJO ΰ?
8.3.3 POJO
8.3.4 POJO
8.3.5 POJO ӿũ
8.4
8.4.1 (IoC) / (DI)
DI Ȱ
8.4.2 ֽƮ α׷(AOP)
AOP
AOP ܰ
8.4.3 ͺ ߻ȭ(PSA)
8.5
9 Ʈ ϱ
9.1 ڹ ÷ ø̼
9.1.1 Ŭ̾Ʈ 鿣 ý
9.1.2 ø̼
ҽ tcServer
9.1.3 ø̼
9.2 ߵ ȯ
9.2.1 JavaSE JavaEE
JavaSE/JDK
JavaEE/J2EE
9.2.2 IDE
9.2.3 SpringSoruce Tool Suite
SpringIDE ÷
STS ÷
Ÿ ÷
9.2.4 ̺귯
̺귯
̺귯
̺귯
̸ 丮
9.3 ø̼ Űó
9.3.1 Űó
Űó SoC
3 Űó
Űó Ģ
9.3.2 ø̼ Űó
DB/SQL ߽
Ŵ
9.3.3 Ʈ ߽ Űó
Ϳ Ʈ
Ʈ ϴ ڵ
Ʈ
Ʈ
dz Ʈ

DTO Ʈ
9.3.4 ø̼ Űó
Űó
Űó

Ƽ ӿũ, ̺귯
9.4
η A
A.1 Ư¡
A.1.1 ̸
A.1.2 ߰
߰
Maven/Ivy ڵ ߰
A.1.3
A.2
A.2.1 ⺰
ASM
Core
Beans
AOP
Expression
Context
Context.Support
Transaction
JDBC
ORM
Web
Web.Servlet
Web.Portlet
Web.Struts
JMS
Aspects
Instrument
Instrument.Tomcat
Test
η B ̺귯
B.1 ̺귯 Ư¡
B.1.1 ̺귯 ̸
B.1.2 ̺귯 ߰
߰
ڵ ߰
B.2 ⺰ ̺귯
B.2.1 ʼ ̺귯
B.2.2 ⺰ ̺귯
ASM
Core
Beans
AOP
Expression
Context
Context.Support
Transaction
JDBC
ORM
Web
Web.Servlet
Web.Portlet
Web.Struts
JMS
Aspects
Instrument
Instrument.Tomcat

ټ

  • 10
  • 8
  • 6
  • 4
  • 2

(ѱ 300̳)
侲
Ʈ
 ۼ ۼ õ

ϵ ϴ.