|
|
|
|
|
|
|
Ã¥³»¿ë |
|
RESTful À¥ ¼ºñ½º¸¦ ±¸ÃàÇÏ°í ½ÍÀº °³¹ßÀÚ¸¦ À§ÇÑ ½Ç¹« °¡À̵å
¡º½ºÇÁ¸µÀ» ÀÌ¿ëÇÑ RESTful À¥ ¼ºñ½º ±¸ÃàÇϱ⡻´Â ÀÚ¹Ù³ª ½ºÇÁ¸µÀ» »ç¿ëÇØ º» °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î RESTÀÇ ±âº» °³³äÀ» ¼Ò°³ÇÏ°í Spring 3.2¸¦ ÀÌ¿ëÇÏ¿© REST ¹æ½ÄÀÇ À¥ ¼ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.
µµ¼ Á¤º¸¸¦ ó¸®ÇÏ´Â ½ÇÀü ¿¹Á¦¸¦ Áß½ÉÀ¸·Î JavaConfig¸¦ ÀÌ¿ëÇÑ ½ºÇÁ¸µ ±¸¼º ¹æ¹ý, Spring Web MVC¸¦ ÀÌ¿ëÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß ¹æ¹ý, MockMvc¸¦ ÀÌ¿ëÇÏ¿© Controller Å×½ºÆ®ÇÏ±â µî ½Ç¹«¿¡¼ È°¿ë °¡´ÉÇÑ À¯ÀÍÇÑ Á¤º¸¸¦ ¾Ë·ÁÁØ´Ù. ½ºÇÁ¸µÀ» ¾Ë°Å³ª »ç¿ëÇغ» °³¹ßÀÚ¶ó¸é ÀÌ Ã¥À» ÅëÇØ REST ¹æ½ÄÀÇ Æ¯Â¡°ú RESTfulÇÑ À¥ ¼ºñ½º ±¸Ãà ¹æ¹ýÀ» ½±°í ºü¸£°Ô ÀÍÈú ¼ö ÀÖ´Ù.
¶ÇÇÑ ÀÌ Ã¥¿¡´Â ÀúÀÚ°¡ 10³â ³Ñ°Ô SI ¾÷ü¿¡¼ ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇÏ¸é¼ ½Ç¹«¿¡ Àû¿ëÇÏ°í Å×½ºÆ®ÇÏ¿© ½×Àº ³ëÇÏ¿ì¿Í Áö½ÄÀÌ ³ì¾ÆÀÖÀ¸¹Ç·Î ½ºÇÁ¸µÀ» ÀÌ¿ëÇÏ¿© RESTfulÇÑ À¥ ¼ºñ½º ±¸Ãà ¹æ¹ýÀ» ºü¸£°Ô ÀÍÈ÷°í ½ÍÀº °³¹ßÀÚ¿¡°Ô ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
´ë»ó µ¶ÀÚ
-. À¥ ¼ºñ½º¸¦ ±¸ÃàÇØ¾ß ÇÏ´Â ½ºÇÁ¸µ ±â¹Ý °³¹ßÀÚ.
-. REST ¹æ½ÄÀÇ ½ÇÁ¦ ±¸Ãà »ç·Ê¿¡ °ü½ÉÀÌ ¸¹Àº À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ.
ÃâÆÇ»ç ¸®ºä
½ÇÀü ¿¹Á¦¸¦ ÅëÇØ REST ¹æ½ÄÀÇ À¥ ¼ºñ½º ±¸Ãà ¹æ¹ýÀ» ºü¸£°Ô ÀÍÈù´Ù!
À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÃÀåÀº ÇöÀç Àü¼º±â¸¦ ´©¸®°í ÀÖ°í ¾ÕÀ¸·Îµµ ±× Ãß¼¼´Â °è¼ÓµÉ °ÍÀÌ´Ù. À¥¿¡ ±â¹ÝÀ» µÐ ´Ù¾çÇÑ ¼ºñ½º°¡ Áö¼ÓÇؼ »ý±â°í, À̸¦ ÀÌ¿ëÇÏ´Â Ç÷§ÆûÀº ±âÁ¸ PC ±â¹Ý¿¡¼ ¸ð¹ÙÀÏ ±â±â, TV µîÀ¸·Î Á¡Â÷ È®´ëµÇ°í ÀÖ´Ù.
ÀÌ·¯ÇÑ »óȲ¿¡¼ Áß¿äÇÑ °ÍÀº À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼ºñ½º ¹æ½ÄÀÌ´Ù. ±âÁ¸ À¥ ¼ºñ½º ±¸Çö¿¡ ¸¹ÀÌ ÀÌ¿ëÇÑ SOAP(Simple Object Access Protocol) ¹æ½ÄÀº °ß°íÇÏ°í °·ÂÇÏÁö¸¸, ¿À¹öÇìµå¿Í ±¸Á¶ÀÇ º¹À⼺ ¶§¹®¿¡ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ÀÍÈ÷´Â µ¥ ¸¹Àº ½Ã°£ÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ Ã¥¿¡¼ ´Ù·ç´Â REST ¹æ½ÄÀ» »ç¿ëÇϸé À¥ ¼ºñ½º¸¦ ºü¸£°Ô ±¸ÃàÇÒ ¼ö ÀÖÀ¸¸ç ¿©·¯ Ç÷§Æû¿¡ À̽ÄÇϱⰡ ÆíÇϹǷΠÀ¥ ¼ºñ½º¸¦ ¸¸µå´Â ¹æ¹ý Áß °¡Àå ¼Õ½±´Ù. ±×·¡¼ ½º¸¶Æ®Æù, ÅÂºí¸´, Ŭ¶ó¿ìµå µî »õ·Î¿î Ç÷§ÆûÀ» ÀÌ¿ëÇÏ´Â ½ºÅ¸Æ®¾÷ ±â¾÷À» Áß½ÉÀ¸·Î REST ¹æ½ÄÀº ºü¸£°Ô ÆÛÁö°í ÀÖ´Ù. ½ÇÁ¦ ±¸±Û, ¾Æ¸¶Á¸, ³×À̹ö µî¿¡¼´Â REST ¹æ½ÄÀÇ À¥ ¼ºñ½º¸¦ ±ÇÀåÇÏ´Â Ãß¼¼°í ÀÚ¹Ù Ç÷§Æû¿¡¼´Â JSR-311(JAX-RS: The JavaTM API for RESTful Web Services) ½ºÆåÀ» Á¦°øÇÔÀ¸·Î½á RESTfulÇÑ À¥ ¼ºñ½º¸¦ ±¸ÇöÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ°í ÀÖ´Ù.
µû¶ó¼ À¥ ¼ºñ½º °³¹ßÀÚ¶ó¸é REST ±â¹ÝÀÇ À¥ ¼ºñ½º ±¸Ãà ¹æ¹ýÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ÀÌ Ã¥Àº ÀÚ¹Ù °³¹ßÀÚ³ª À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î µµ¼ Á¤º¸¸¦ ó¸®ÇÏ´Â ½ÇÀü ¿¹Á¦¸¦ ÅëÇØ RESTfulÇÑ À¥ ¼ºñ½º¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. ÀÌ Ã¥À» ÅëÇؼ ½Ç¹«¿¡ ¹Ù·Î Àû¿ë °¡´ÉÇÑ À¯ÀÍÇÑ Á¤º¸µéÀ» ºü¸£°Ô ½ÀµæÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. |
|
¸ñÂ÷ |
|
1Àå. µé¾î°¡±â
__1.1 °³¿ä
__1.2 REST
__1.3 Spring Web MVC
2Àå. Spring 3.2¿Í REST
__2.1 ¿ä±¸»çÇ× Á¤ÀÇ
__2.2 °³¹ß ȯ°æ
__2.3 °³¹ß ȯ°æ ±¸ÃàÇϱâ
__2.4 ¾îÇø®ÄÉÀÌ¼Ç ±¸Á¶
__2.5 ¿ä¾à
3Àå. Persistence Layer
__3.1 ¿µ¼Ó¼º °èÃþÀ̶õ?
__3.2 DAO
__3.3 Mapper ±¸ÇöÇϱâ
__3.5 ¿ä¾à
4Àå. Business Layer
__4.1 ºñÁö´Ï½º °èÃþÀ̶õ?
__4.2 Æ®·£Àè¼Ç °ü¸®
__4.3 Service ±¸ÇöÇϱâ
__4.4 ¿ä¾à
5Àå. Presentation Layer
__5.1 Ç¥Çö °èÃþÀ̶õ?
__5.2 ModelAndView¿Í HTTPMessageConverter
__5.3 URI Template
__5.4 Controller ±¸ÇöÇϱâ
__5.5 JSON
__5.6 XML
__5.7 Content Negotiation
__5.8 HTTP Method Conversion
__5.9 ETag support
__5.10 ±âŸ
__5.11 ¿ä¾à
6Àå. ¿¹¿Ü ó¸®
__6.1 ControlelrÀÇ ¿¹¿Ü ó¸®
__6.2 ¿¹¿Ü ±¸ÇöÇϱâ
__6.3 ¿ä¾à
7Àå. HATEOAS
__7.1 Spring HATEOAS
__7.2 ¿ä¾à
8Àå. REST Client
__8.1 RestTemplate
__8.2 URI Template
__8.3 ClientHttpRequestFactory
__8.4 RestTemplate ¿¹Á¦
__8.5 ¿ä¾à |
|
|
|
ÀúÀÚ
|
|
±è°¿ì
"ÇÁ·Î±×·¡¹ÖÀº ±â¼úÀÌ ¾Æ´Ï¶ó ¿¹¼úÀÌ´Ù"¶ó°í ¿ÜÄ¡¸ç ¹æ¶ûÇÏ´Â ¶°µ¹ÀÌ °³¹ßÀÚ´Ù. ¿ÀÇ µ¥ÀÌÅÍ Ç÷§Æû¿¡ °ü½ÉÀÌ ¸¹À¸¸ç, ¼ÒÅëÇÏ¸ç °¡Ä¡¸¦ âÃâÇÏ°í ÁøÈÇØ°¡´Â °ÍÀ» ÁÁ¾ÆÇÑ´Ù. Áö³ ½Ê ¼ö³â°£À» °³¹ßÀÚ·Î ÀÏÇØ¿Ô°í, Áö±ÝÀº ½Ã´ëÀÇ È帧À» ´À³¢±â À§ÇØ Àá½Ã ¹æȲÇÏ°í ÀÖ´Ù. ¾ÆµæÈ÷ ¹Ð·Á¿À´Â ºø¼Ò¸®¸¦ ¹þ »ï¾Æ ºñ¿òÀÇ ÀÚ¼¼¸¦ °ßÁöÇØ ³ª°¡·Á°í ¹«´øÈ÷ ³ë·Â ÁßÀÎ ¹Ùº¸ ÁßÀÇ ¹Ùº¸´Ù.
Àú¼ [½ºÇÁ¸µÀ» ÀÌ¿ëÇÑ RESTful À¥ ¼ºñ½º ±¸ÃàÇϱâ]
|
|
|
|
|
|
|
|
Ãâ°í¾È³» |
|
|
Ãâ°í¶õ ÀÎÅÍÆÄÅ© ¹°·ùâ°í¿¡¼ µµ¼°¡ Æ÷ÀåµÇ¾î ³ª°¡´Â ½ÃÁ¡À» ¸»Çϸç, ½ÇÁ¦ °í°´´Ô²²¼ ¼ö·ÉÇϽô ½Ã°£Àº »óÇ°Áغñ¿Ï·áÇØ Ãâ°íÇÑ ³¯Â¥ + Åùè»ç ¹è¼ÛÀÏÀÔ´Ï´Ù. |
|
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°ÀÇ Àç°í°¡ ÃæÁ·ÇÒ ½Ã¿¡ ÀÏ°ý Ãâ°í¸¦ ÇÕ´Ï´Ù. |
|
ÀϺΠÀç°í¿¡ ´ëÇÑ Ãâ°í°¡ ÇÊ¿äÇÒ ½Ã¿¡´Â ´ã´çÀÚ¿¡°Ô Á÷Á¢ ¿¬¶ôÇϽðųª, °í°´¼¾ÅÍ(°í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù. |
|
¹è¼Ûºñ ¾È³» |
|
|
ÀÎÅÍÆÄÅ© µµ¼ ´ë·®±¸¸Å´Â ¹è¼Û·á°¡ ¹«·áÀÔ´Ï´Ù. |
|
´Ü, 1°³ÀÇ »óÇ°À» ´Ù¼öÀÇ ¹è¼ÛÁö·Î ÀÏ°ý ¹ß¼Û½Ã¿¡´Â 1°³ÀÇ ¹è¼ÛÁö´ç 2,000¿øÀÇ ¹è¼Ûºñ°¡ ºÎ°úµË´Ï´Ù. |
¾Ë¾ÆµÎ¼¼¿ä! |
|
|
°í°´´Ô²²¼ ÁÖ¹®ÇϽŠµµ¼¶óµµ µµ¸Å»ó ¹× ÃâÆÇ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
(´Ü, Åä/ÀÏ¿äÀÏ Á¦¿Ü) |
|
|
|
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù.
±³È¯/¹ÝÇ°/º¸ÁõÁ¶°Ç ¹× Ç°Áúº¸Áõ ±âÁØÀº ¼ÒºñÀڱ⺻¹ý¿¡ µû¸¥ ¼ÒºñÀÚ ºÐÀï ÇØ°á ±âÁØ¿¡ µû¶ó ÇÇÇظ¦ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Á¤È®ÇÑ È¯ºÒ ¹æ¹ý ¹× ȯºÒÀÌ Áö¿¬µÉ °æ¿ì 1:1¹®ÀÇ °Ô½ÃÆÇ ¶Ç´Â °í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ô Áֽñ⠹ٶø´Ï´Ù.
¼ÒºñÀÚ ÇÇÇغ¸»óÀÇ ºÐÀïó¸® µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á±âÁØ(°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ µû¶ó ºñÇØ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
|
|
»óÇ°À» °ø±Þ ¹ÞÀ¸½Å ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ùÀ̳», ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´ÉÇÕ´Ï´Ù.
|
|
|
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
|
|
|
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. (´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü) |
|
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
|
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù. |
|
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
|
|
|
|
|