ÅäºñÀÇ ½ºÇÁ¸µ 3.1 Vol. 1 ½ºÇÁ¸µÀÇ ÀÌÇØ¿Í ¿ø¸®
´Ü¼øÇÑ ¿¹Á¦¸¦ ½ºÇÁ¸µ 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 ºó ½ºÄ³´×°ú ÀÚµ¿¿ÍÀ̾
@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 ¸ðµâ