½ºÇÁ¸µ ºÎÆ® ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ¿© RESTful API¸¦ ºôµå, º¸È£ ¹× ¹èÆ÷ÇÏ´Â Æ÷°ýÀûÀÎ °¡À̵åÀÎ "½ÇÀü ½ºÇÁ¸µ ºÎÆ® REST API °³¹ß (feat. Java, JDBC, MySQL, Maven)"¿¡ ¿À½Å °ÍÀ» ȯ¿µÇÕ´Ï´Ù. ÀÌ Ã¥Àº ÃֽŠ¸ð¹ü »ç·Ê¸¦ »ç¿ëÇÏ¿© È®Àå °¡´ÉÇÏ°í ÇÁ·Î´ö¼Ç¿¡ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé°íÀÚ ÇÏ´Â Ãʺ¸ÀÚ¿Í ¼÷·ÃµÈ °³¹ßÀÚ ¸ðµÎ¸¦ À§ÇØ ¸ÂÃã Á¦À۵Ǿú½À´Ï´Ù. ´Ü°èº° Áöħ°ú ½Ç¿ëÀûÀÎ ¿¹Á¦¸¦ ÅëÇØ È¿À²ÀûÀÎ API °³¹ßÀ» À§ÇØ ½ºÇÁ¸µ ºÎÆ®ÀÇ °·ÂÇÑ µµ±¸¿Í ±â´ÉÀ» È°¿ëÇÏ´Â ¹æ¹ýÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.
1Àå, '½ºÇÁ¸µ ºÎÆ® °³¹ß ȯ°æ'¿¡¼´Â ¾ÖÇø®ÄÉÀÌ¼Ç ºôµå¸¦ ½ÃÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ µµ±¸¸¦ °®Ãâ ¼ö ÀÖµµ·Ï Java¿Í Spring Tools 4¸¦ ¼³Ä¡ÇÏ´Â °úÁ¤À» ¾È³»ÇÏ¿© ±âÃʸ¦ ´ÙÁý´Ï´Ù.
2Àå, '½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® ¸¸µé±â'¿¡¼´Â ½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í, Çʼö ÆÄÀÏÀ» ±¸¼ºÇÏ°í, ù ¹ø° ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. Spring MVC¸¦ ¼Ò°³ÇÏ°í ±× ±¸Á¶¿Í ÀÇÁ¸¼ºÀ» »ìÆ캾´Ï´Ù.
3Àå, '·Òº¹'¿¡¼´Â »ó¿ë±¸ Äڵ带 ÁÙ¿© Java Ŭ·¡½º¸¦ °£¼ÒÈÇÏ´Â ·Òº¹ ¶óÀ̺귯¸®¸¦ ¼Ò°³ÇÕ´Ï´Ù. Getter, @Setter, @Data, @Slf4j¿Í °°Àº ¾î³ëÅ×À̼ǿ¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
4Àå, 'REST'¿¡¼´Â REST ¿øÄ¢°ú API ¼³°è¿¡ ´ëÇÑ °³¿ä¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â @RestController ¾î³ëÅ×À̼Ç, REST Ŭ¶óÀ̾ðÆ®¿Í »óÈ£ ÀÛ¿ëÇϱâ, API ¹®¼ÈÇϱ⠵îÀ» ´Ù·ì´Ï´Ù.
5Àå, 'JSON'¿¡¼´Â RESTful API¿¡¼ ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â µ¥ÀÌÅÍ Çü½ÄÀÎ JSON¿¡ ÁßÁ¡À» µÓ´Ï´Ù. JSON µ¥ÀÌÅÍ À¯Çü°ú JSONÀ» Java Ŭ·¡½º¿¡ ¸ÅÇÎÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
6Àå, 'jQuery Ajax Åë½Å'¿¡¼´Â jQueryÀÇ AJAX ¸Þ¼µå($.get(), $.post() µî)¸¦ »ç¿ëÇÏ¿© REST API¿Í »óÈ£ ÀÛ¿ëÇÏ¿© ½Ç½Ã°£ Ŭ¶óÀ̾ðÆ®-¼¹ö Åë½ÅÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
7Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ¸ÅÇÎ'¿¡¼´Â HTTP ¿äûÀ» ÄÁÆ®·Ñ·¯ ¸Þ¼µå¿¡ ¸ÅÇÎÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. °æ·Î ¸ÅÇÎ, HTTP ¸Þ¼µå ¸ÅÇÎ, Çì´õ ±â¹Ý ¸ÅÇÎÀ» ´Ù·ì´Ï´Ù.
8Àå, 'ÄÁÆ®·Ñ·¯ ÀÀ´ä'¿¡¼´Â À¯¿¬¼º Çâ»óÀ» À§ÇÑ ResponseEntity, Ä÷º¼Ç, byte[] °°Àº ¿ø½Ã µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ´Ù¾çÇÑ ÀÀ´ä À¯ÇüÀ» »ìÆ캾´Ï´Ù.
9Àå, 'ÄÁÆ®·Ñ·¯ ¿äû ó¸®'¿¡¼´Â ¸Å°³º¯¼ö, JavaBean, ÆÄÀÏ ¾÷·Îµå, @JsonFormatÀ» »ç¿ëÇÑ ³¯Â¥ ¼½ÄÀ» Æ÷ÇÔÇÑ ¼ö½Å ¿äû 󸮿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
10Àå, 'ÀÔ·Â À¯È¿¼º °Ë»ç'¿¡¼´Â µ¥ÀÌÅÍ ¹«°á¼º ¹× ¿À·ù °ü¸®¸¦ º¸ÀåÇϱâ À§ÇØ @NotNull ¹× @Size¿Í °°Àº ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÏ¿© »ç¿ëÀÚ ÀÔ·ÂÀÇ À¯È¿¼ºÀ» °Ë»çÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
11Àå, '¸Þ½ÃÁö ó¸®'¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¿©·¯ ¾ð¾î¸¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±¹Á¦È ¹× ¸Þ½ÃÁö ¼Ò½º ±¸¼ºÀ» ¼Ò°³ÇÕ´Ï´Ù.
12Àå, 'ÀÇÁ¸¼º ÁÖÀÔ'¿¡¼´Â ÇÊµå ±â¹Ý, »ý¼ºÀÚ ±â¹Ý, ¼³Á¤ÀÚ ±â¹Ý µî ´Ù¾çÇÑ ÀÇÁ¸¼º ÁÖÀÔ ¹æ¹ý°ú SpringÀÇ ¸ðµâ½Ä ¼³°è¿¡¼ ÀÇÁ¸¼º ÁÖÀÔÀÇ ¿ªÇÒ¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
13Àå, '¿¹¿Ü ó¸®'¿¡¼´Â »ç¿ëÀÚ Á¤ÀÇ ¿¹¿Ü¿Í À¯È¿¼º °Ë»ç ¿À·ù 󸮸¦ Æ÷ÇÔÇÑ ¿¹¿Ü °ü¸® Àü·«À» ´Ù·ì´Ï´Ù.
14Àå, 'ÀÎÅͼÁÅÍ'¿¡¼´Â ·Î±ë ¹× »ç¿ëÀÚ ÁöÁ¤ ±ÇÇÑ È®Àΰú °°Àº ¿äû Àüó¸® ¹× ÈÄ󸮸¦ À§ÇÑ ÀÎÅͼÁÅÍ¿¡ ´ëÇØ »ìÆ캾´Ï´Ù.
15Àå, 'µ¥ÀÌÅͺ£À̽º ¿¬°á'¿¡¼´Â µ¥ÀÌÅÍ Áö¼Ó¼ºÀ» À§ÇÑ MySQL ¼³Á¤, Spring JDBC, JPA ¹× MyBatis¸¦ ´Ù·ç´Â µ¥ÀÌÅͺ£À̽º ÅëÇÕÀ» ¼Ò°³ÇÕ´Ï´Ù.
16Àå, 'Spring JDBC'¿¡¼´Â µ¥ÀÌÅÍ °Ë»ö, ¼öÁ¤, °á°ú¸¦ Java °´Ã¼¿¡ ¸ÅÇÎÇÏ´Â µî µ¥ÀÌÅͺ£À̽º ÀÛ¾÷¿¡ JdbcTemplateÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» »ìÆ캾´Ï´Ù.
17Àå, 'REST API ¼¹ö ±¸ÇöÇϱâ'¿¡¼´Â @RepositoryRestController¿Í HATEOAS »ç¿ëÀ» Æ÷ÇÔÇØ ¿ÏÀüÇÑ RESTful API ¼¹ö¸¦ ±¸ÃàÇÏ´Â °úÁ¤À» ¾È³»ÇÕ´Ï´Ù.
18Àå, 'SPA Ŭ¶óÀ̾ðÆ®'¿¡¼´Â API¿Í ÅëÇÕµÈ ÄÜÅÙÃ÷ °Ô½Ã, ÆíÁý ¹× ³ª¿°ú °°Àº ±â´ÉÀ» »ç¿ëÇÏ¿© Angular¸¦ »ç¿ëÇÏ¿© SPA(´ÜÀÏ ÆäÀÌÁö ¾ÖÇø®ÄÉÀ̼Ç)¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
19Àå, 'ÆÄÀÏ ¾÷·Îµå'¿¡¼´Â À̹ÌÁö ¾÷·Îµå, ´ÙÁß ÆÄÀÏ Ã³¸®, ºñµ¿±â ó¸® µî ÆÄÀÏ ¾÷·Îµå¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
20Àå, 'AOP'¿¡¼´Â ·Î±ë ¹× Æ®·£Àè¼Ç °ü¸®¿Í °°Àº ±³Â÷ÀûÀÎ ¹®Á¦¸¦ @Before ¹× @Around¿Í °°Àº ¾î³ëÅ×À̼ÇÀ» »ç¿ëÇÏ¿© °ü¸®Çϱâ À§ÇÑ °üÁ¡ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» ¼Ò°³ÇÕ´Ï´Ù.
21Àå, 'Æ®·£Àè¼Ç'¿¡¼´Â µ¥ÀÌÅͺ£À̽º ÀÛ¾÷ Áß µ¥ÀÌÅÍ ÀÏ°ü¼ºÀ» º¸ÀåÇÏ´Â Æ®·£Àè¼Ç °ü¸®¿¡ ÁßÁ¡À» µÓ´Ï´Ù.
22Àå, 'Spring Security'¿¡¼´Â JDBC ±â¹Ý ÀÎÁõ, »ç¿ëÀÚ Á¤ÀÇ ·Î±×ÀÎ ÆäÀÌÁö, ¾×¼¼½º Á¦¾î µî Spring Security¸¦ »ç¿ëÇÑ ÀÎÁõ ¹× ±ÇÇÑ ºÎ¿©¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °³¿ä¸¦ Á¦°øÇÕ´Ï´Ù.
23Àå, 'JWT'¿¡¼´Â ÅäÅ« »ý¼º, À¯È¿¼º °Ë»ç ¹× º¸¾È ÇÊÅÍ¿ÍÀÇ ÅëÇÕÀ» ¼³¸íÇÏ¸é¼ JSON À¥ ÅäÅ«(JWT)À¸·Î REST API¸¦ º¸È£ÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù.
24Àå, '½ÇÀü REST API ÇÁ·ÎÁ§Æ®'¿¡¼´Â ¸ðµç °ÍÀ» ¿ÏÀüÇÑ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿Í ¿¬°áÇÕ´Ï´Ù. »ç¿ëÀÚ °ü¸®, Á¦Ç° ±¸¸Å, ¾×¼¼½º ·Î±ë, ¼ºñ½º ¼º´É ¸ð´ÏÅ͸µ°ú °°Àº ±â´ÉÀ» ±¸ÇöÇÏ°Ô µË´Ï´Ù.
ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é ½ºÇÁ¸µ ºÎÆ® REST API °³¹ßÀ» ¿ÏÀüÈ÷ ÀÌÇØÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. È®Àå °¡´ÉÇÏ°í ¾ÈÀüÇÑ API¸¦ ¼³°è, ±¸Çö ¹× ¹èÆ÷ÇÏ¿© ÃֽŠ°³¹ß Ç¥ÁØÀ» ÃæÁ·ÇÏ´Â ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé ¼ö ÀÖ°Ô µË´Ï´Ù.
ÀÌ Ã¥Àº Á¾ÀÌÃ¥ ÇüÅ°¡ ¾Æ´Ñ EPUB ÀüÀÚÃ¥À¸·Î Á¦À۵Ǿî, ÀüÅëÀûÀÎ ÆäÀÌÁö ·¹À̾ƿô°ú´Â ´Ù¸¥, À¥ ±â¹ÝÀÇ È帧À» ÃëÇÏ°í ÀÖ½À´Ï´Ù. µû¶ó¼ Á¾ÀÌÃ¥°ú °°Àº ±¸¼º¿¡ Àͼ÷ÇÑ µ¶ÀÚ¶ó¸é ´Ù¼Ò ÀÌÁú°¨À» ´À³¥ ¼ö ÀÖ½À´Ï´Ù.