½ºÇÁ¸µ ºÎÆ® ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ¿© È®Àå °¡´ÉÇÏ°í ¾ÈÀüÇÑ RESTful API¸¦ ±¸ÃàÇϱâ À§ÇÑ Á¾ÇÕ °¡À̵åÀÎ '½ÇÀü ½ºÇÁ¸µ ºÎÆ® REST API °³¹ß (feat. ÀÚ¹Ù, JPA, MySQL, Maven)'¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. ÀÌ Ã¥Àº Ãʱ⠼³Á¤ºÎÅÍ º¸¾È, JWT ¹× µ¥ÀÌÅÍ °ü¸®¿Í °°Àº °í±Þ ±â´É¿¡ À̸£±â±îÁö Çʼö °³³äÀ» ´Ù·ç´Â ½ºÇÁ¸µ ºÎÆ®¿¡ ´ëÇÑ ½ÉÃþÀûÀΠŽ»öÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ Ã¥À» ÅëÇØ °·ÂÇÑ REST API¸¦ ¸¸µé°í À̸¦ ÃֽŠŬ¶óÀ̾ðÆ® ¾ÖÇø®ÄÉÀ̼ǰú ÅëÇÕÇÏ´Â µ¥ ÇÊ¿äÇÑ Áö½ÄÀ» ½ÀµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
1Àå, '½ºÇÁ¸µ ºÎÆ® °³¹ß ȯ°æ'¿¡¼´Â ÀÚ¹Ù ¹× ½ºÇÁ¸µ µµ±¸ 4¸¦ ¼³Ä¡ÇÏ´Â °úÁ¤À» ¾È³»ÇÏ¿© °³¹ß ȯ°æÀÌ ÁغñµÇ¾ú´ÂÁö È®ÀÎÇÔÀ¸·Î½á ±âÃʸ¦ ´ÙÁý´Ï´Ù.
2Àå, '½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® »ý¼º'¿¡¼´Â ½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® »ý¼º ¹× ±¸¼ºÀÇ ±âº» »çÇ×À» ´Ù·ì´Ï´Ù. ÇÁ·ÎÁ§Æ® ¼³Á¤À» °£¼ÒÈÇÏ°í È¿À²ÀûÀ¸·Î ¸¸µé¾îÁÖ´Â ½ºÇÁ¸µ MVC¿Í ½ºÇÁ¸µ Starter Á¾¼Ó¼º¿¡ ´ëÇØ ¾Ë¾Æº¸¼¼¿ä.
3Àå, '·Òº¹'¿¡¼´Â ÇÁ·ÎÁ§Æ®¿¡¼ »ó¿ë±¸ Äڵ带 ÁÙ¿© ÀÚ¹ÙºóÁ °£¼ÒÈÇÏ´Â @Getter, @Setter, @ToString µîÀÇ ·Òº¹ ¾î³ëÅ×À̼ÇÀ» ¼Ò°³ÇÕ´Ï´Ù.
4Àå, 'REST'¿¡¼´Â RESTful API ¼³°èÀÇ ¿øÄ¢À» ¼³¸íÇÏ°í Ç¥ÁØÈµÈ API¸¦ ±¸ÃàÇϱâ À§ÇÑ @RestController¿Í °°Àº Çʼö ¾î³ëÅ×À̼ǰú ¹®¼È »ç·Ê¸¦ ¼Ò°³ÇÕ´Ï´Ù.
5Àå, 'JSON'¿¡¼´Â JSON µ¥ÀÌÅÍ À¯ÇüÀ» ´Ù·ç°í REST APIÀÇ µ¥ÀÌÅÍ ±³È¯¿¡ ÇʼöÀûÀÎ Àڹ٠Ŭ·¡½º ³»¿¡¼ JSONÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
6Àå, 'jQuery Ajax Åë½Å'¿¡¼´Â jQueryÀÇ AJAX ¸Þ¼µå($.get(), $.post() µî)¸¦ »ç¿ëÇÏ¿© REST API¿Í Åë½ÅÇÏ¿© µ¿ÀûÀÌ°í ´ëÈÇü Ŭ¶óÀ̾ðÆ® ȯ°æÀ» ¸¸µå´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
7Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ¸ÅÇÎ'¿¡¼´Â ´Ù¾çÇÑ ¿äû °æ·Î, HTTP ¸Þ¼µå, Çì´õ ¹× ÄÜÅÙÃ÷ À¯ÇüÀ» ó¸®ÇÒ ¼ö ÀÖ´Â ½ºÇÁ¸µÀÇ ¿äû ¸ÅÇÎ ±â¼úÀ» »ìÆ캾´Ï´Ù.
8Àå, 'ÄÁÆ®·Ñ·¯ ÀÀ´ä'¿¡¼´Â API ÀÀ´äÀ» º¸´Ù È¿°úÀûÀ¸·Î Á¦¾îÇϱâ À§ÇØ ÀÚ¹ÙºóÁî, Ä÷º¼Ç, ResponseEntity¸¦ Æ÷ÇÔÇØ ÄÁÆ®·Ñ·¯¿¡¼ ¹ÝȯÇÒ ¼ö ÀÖ´Â ÀÀ´ä À¯Çü¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
9Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ó¸®'¿¡¼´Â ÀÚ¹Ùºó ó¸®, ³¯Â¥ ó¸®, ÆÄÀÏ ¾÷·Îµå °ü¸® µî µé¾î¿À´Â ¿äûÀ» ó¸®ÇÏ´Â ´Ù¾çÇÑ ¹æ¹ýÀ» ´Ù·ì´Ï´Ù.
10Àå, 'ÀÔ·Â À¯È¿¼º °ËÁõ'¿¡¼´Â À¯È¿ÇÑ µ¥ÀÌÅ͸¸ API¿¡¼ 󸮵ǵµ·Ï ÀÔ·Â µ¥ÀÌÅÍÀÇ À¯È¿¼ºÀ» °Ë»çÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϸç, ±âº» ¹× ÁßøµÈ ÀÚ¹ÙºóÁî À¯È¿¼º °Ë»ç ±ÔÄ¢À» ´Ù·ì´Ï´Ù.
11Àå, '¸Þ½ÃÁö ó¸®'¿¡¼´Â ¸Þ½ÃÁö ¼Ò½º Á¤ÀÇ¿Í ±¹Á¦È¸¦ ¼Ò°³ÇÏ¿© API°¡ ¿©·¯ ¾ð¾î¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
12Àå, 'ÀÇÁ¸¼º ÁÖÀÔ'¿¡¼´Â ¸ðµâ½Ä ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°èÀÇ ±âº»ÀÌ µÇ´Â ÇÊµå ±â¹Ý, »ý¼ºÀÚ ±â¹Ý, ¼³Á¤ÀÚ ±â¹Ý ÁÖÀÔ°ú °°Àº ´Ù¾çÇÑ ÀÇÁ¸¼º ÁÖÀÔ ±â¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
13Àå, '¿¹¿Ü ó¸®'¿¡¼´Â ÀÇ¹Ì ÀÖ´Â ¿À·ù ¸Þ½ÃÁö¸¦ Á¦°øÇÏ°í ½Ã½ºÅÛ ¼öÁØ ¿¹¿Ü¸¦ °ü¸®Çϱâ À§ÇÑ ÁÖ¼® ¹× »ç¿ëÀÚ Á¤ÀÇ ¿¹¿Ü¸¦ Æ÷ÇÔÇÑ ¿¹¿Ü ó¸® ±â¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
14Àå, 'ÀÎÅͼÁÅÍ'¿¡¼´Â ¿äû ó¸® È帧À» Á¦¾îÇÒ ¼ö ÀÖµµ·Ï ¿äû Àüó¸® ¹× ÈÄ󸮸¦ À§ÇÑ ÀÎÅͼÁÅÍ »ç¿ë¿¡ ´ëÇØ »ìÆ캾´Ï´Ù.
15Àå, 'µ¥ÀÌÅͺ£À̽º ¿¬µ¿'¿¡¼´Â µ¥ÀÌÅÍ Áö¼Ó¼ºÀ» À§ÇÑ Åä´ë¸¦ ¸¶·ÃÇϱâ À§ÇØ MySQL, ½ºÇÁ¸µ JDBC, JPA ¹× MyBatis¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ¿¬°áÀ» ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù.
16Àå, 'JPA'¿¡¼´Â µ¥ÀÌÅͺ£À̽º ¿î¿µÀ» °£¼ÒÈÇϱâ À§ÇÑ ±¸¼º, ¾î³ëÅ×ÀÌ¼Ç ¹× ½ºÇÁ¸µ µ¥ÀÌÅÍ JPA¸¦ ´Ù·ç´Â JPA(Java Persistence API)¿¡ ´ëÇØ ¼Ò°³ÇÕ´Ï´Ù.
17Àå, 'JPA È°¿ë'¿¡¼´Â CRUD ±â´É, ÆäÀÌÁö ¸Å±è ¹× °Ë»ö ÀÛ¾÷À» ±¸ÇöÇÏ´Â µ¥ ÁßÁ¡À» µÎ°í JPQL, Querydsl ¹× »ç¿ëÀÚ Á¤ÀÇ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â µ¥¸ð¸¦ º¸¿©ÁÝ´Ï´Ù.
18Àå, 'JPA ¿¬°ü'¿¡¼´Â ÀÏ´ë´Ù, ´Ù´ëÀÏ, ´Ù´ë´Ù µîÀÇ ¿£Æ¼Æ¼ ¿¬°á·Î ÀÛ¾÷ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ¿© º¹ÀâÇÑ µ¥ÀÌÅÍ °ü°è¸¦ °ü¸®ÇÏ´Â µ¥ µµ¿òÀ» ÁÝ´Ï´Ù.
19Àå, 'REST API ¼¹ö ±¸Çö'¿¡¼´Â ½ºÇÁ¸µ ºÎÆ® µ¥ÀÌÅÍ REST, @RepositoryRestController ¹× HATEOAS¸¦ »ç¿ëÇÏ¿© ÇÏÀÌÆ۹̵ð¾î ±â¹Ý API¸¦ »ý¼ºÇϱâ À§ÇØ REST API ¼¹ö¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù.
20Àå, 'SPA Ŭ¶óÀ̾ðÆ®'¿¡¼´Â ¸®¾×Æ®·Î SPA(½Ì±Û ÆäÀÌÁö ¾ÖÇø®ÄÉÀ̼Ç) Ŭ¶óÀ̾ðÆ®¸¦ ºôµåÇÏ°í ÇÁ·ÎÁ§Æ® ¼³Á¤°ú ½ºÇÁ¸µ ºÎÆ® REST API¿ÍÀÇ ÅëÇÕÀ» ¾È³»ÇÕ´Ï´Ù.
21Àå, 'ÆÄÀÏ ¾÷·Îµå'¿¡¼´Â ÃֽŠ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀϹÝÀûÀÎ ¿ä±¸ »çÇ×ÀÎ ¿©·¯ À̹ÌÁö ¾÷·Îµå¿Í ºñµ¿±â ¾÷·Îµå 󸮸¦ Æ÷ÇÔÇÑ ÆÄÀÏ ¾÷·Îµå ±â¼úÀ» ´Ù·ì´Ï´Ù.
22Àå, 'AOP'¿¡¼´Â ±³Â÷µÇ´Â ¹®Á¦¸¦ ¸ðµâÈÇϱâ À§ÇÑ ´Ù¾çÇÑ À¯ÇüÀÇ Á¶¾ð°ú Æ÷ÀÎÆ®ÄÆ Ç¥Çö½ÄÀ» ´Ù·ç´Â Ãø¸é ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» ¼Ò°³ÇÕ´Ï´Ù.
23Àå, 'Æ®·£Àè¼Ç'¿¡¼´Â µ¥ÀÌÅÍ ÀÏ°ü¼ºÀ» º¸ÀåÇϱâ À§ÇÑ Æ®·£Àè¼Ç °ü¸®¿¡ ´ëÇØ ¼³¸íÇÏ¸ç ½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀ̼ǿ¡¼ Æ®·£Àè¼ÇÀ» Àû¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
24Àå, '½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼'¿¡¼´Â Á¢±Ù Á¦ÇÑ, »ç¿ëÀÚ ÁöÁ¤ ·Î±×ÀÎ, ·Î±×¾Æ¿ô ó¸® ¹× ÀÎÁõÀ» À§ÇÑ ±¸¼ºÀ» ´Ù·ç¸é¼ ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼·Î REST API¸¦ º¸È£ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆ캾´Ï´Ù.
25Àå, 'JWT'¿¡¼´Â ÅäÅ« »ý¼º, ÅäÅ« Çؼ®, ÀÎÁõÀ» À§ÇÑ º¸¾È ÇÊÅÍ ±¸¼º µî RESTful ¼ºñ½º º¸¾ÈÀ» À§ÇÑ JSON À¥ ÅäÅ«(JWT)À» ´Ù·ì´Ï´Ù.
26Àå, '½ÇÀü REST API ÇÁ·ÎÁ§Æ®'¿¡¼´Â ¸â¹ö ¹× Á¦Ç° °ü¸®, ¿¹¿Ü ó¸®, ¾×¼¼½º ·Î±ë, ¹èÆ÷¸¦ À§ÇÑ ÆÐŰ¡ µî ¿ÏÀüÇÑ ±â´ÉÀ» °®Ãá REST API ÇÁ·ÎÁ§Æ®ÀÇ °³¹ß °úÁ¤À» ¾È³»ÇÏ¿© ¸ðµç °³³äÀ» ÅëÇÕÇÕ´Ï´Ù.
ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é ½ºÇÁ¸µ ºÎÆ®·Î RESTful API¸¦ ºôµå, º¸È£ ¹× ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ±íÀÌ ÀÖ°Ô ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Áö½ÄÀ» ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡ Àû¿ëÇÏ¿© È®Àå °¡´ÉÇÏ°í ¾ÈÀüÇÑ REST API ¼Ö·ç¼ÇÀ» ¸¸µé Áغñ°¡ µÈ °ÍÀÔ´Ï´Ù.
ÀÌ Ã¥Àº Á¾ÀÌÃ¥ ÇüÅ°¡ ¾Æ´Ñ EPUB ÀüÀÚÃ¥À¸·Î Á¦À۵Ǿî, ÀüÅëÀûÀÎ ÆäÀÌÁö ·¹À̾ƿô°ú´Â ´Ù¸¥, À¥ ±â¹ÝÀÇ È帧À» ÃëÇÏ°í ÀÖ½À´Ï´Ù. µû¶ó¼ Á¾ÀÌÃ¥°ú °°Àº ±¸¼º¿¡ Àͼ÷ÇÑ µ¶ÀÚ¶ó¸é ´Ù¼Ò ÀÌÁú°¨À» ´À³¥ ¼ö ÀÖ½À´Ï´Ù.