(JSP) °£´Ü OpenAPI ¸¸µé±â
¾Û ÀÛ¾÷À» ÇÏ´Ù º¸¸é ¼¹ö¿¡¼ ÇØÁÖ¾úÀ¸¸é ÇÏ´Â ÀÛ¾÷µéÀÌ ÀÖ´Ù. ƯÈ÷ ¾ÆÀÌÆù ¾ÛÀÇ °æ¿ì ¾ÖÇà ½É»ç°¡ ÃÖ¼Ò ÀÏÁÖÀÏÀÇ °æ¿ì°¡ ¸¹±â ¶§¹®¿¡ ÆĽÌÇÏ´Â ºÎºÐÀ̳ª ¿¬µ¿ÇÏ´Â ¿ÜºÎ API°¡ º¯°æµÇ´Â °æ¿ì ¾ÆÀÌÆù ¾Û³»¿¡¼ ÇØ´ç Äڵ尡 ÀÖÀ¸¸é º¯°æÀ» ÇÏ´õ¶óµµ »ç¿ëÀÚ°¡ ´Ù½Ã º»·¡ÀÇ ±â´ÉÀ» ¾²·Á¸é ½Ã°£ÀÌ ¿À·¡ °É¸°´Ù.
³»°¡ ¿øÇÏ´Â°Ç ´Ü ÇÑ°¡Áö¿´´Ù. HTTP GET ¹æ½ÄÀ¸·Î ¾î¶² µ¥ÀÌÅ͸¦ Àü´ÞÇÏ¸é ±×¿¡ µû¸¥ ÀÀ´äÀ» JSON Çü½ÄÀ¸·Î ³Ñ°ÜÁÖ´Â ÀÛ¾÷. ±×°Í¸¸ µÇ¸é µÈ´Ù. CSS, À̹ÌÁö ÀÌ·±°ÍµéÀº À¥ »çÀÌÆ® ¸¸µå´Â °³¹ßÀڵ鿡°Ô ÇÊ¿äÇÑ°Å°í °£´ÜÇÏ°Ô µ¥ÀÌÅÍ󸮸¦ ÇØÁÙ ¼¹ö°¡ ÇÊ¿äÇÏ°í, ±×°ÍÀ» ¹ÞÀ»¼ö ÀÖ´Â OpenAPI¸¦ ¸¸µå´Â °ÍÀÌ ÇÊ¿äÇß´Ù.
ÇÊÀÚ´Â ÅèĹÀ» ¼³Ä¡Çغ»Àûµµ, JSP ¹®¹ýÀ» ¾ËÁöµµ ¸øÇÑ´Ù. ±×³É STEP BY STEP À¸·Î Çغ¸°Ú´Ù.
1. ÅèĹ ¼³Ä¡
– ÀÌ°Ç ¾Ë°í ÀÖ¾ú´Ù. JSP¸¦ ¿Ã¸±·Á¸é ÅèĹÀ̶ó´Â À¥¼¹ö°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀ». ±×·¡¼ ÅèĹÀ» ¹Þ¾Æ¼ ¼³Ä¡ Çß´Ù. ÀÌ°Ç º°µµÀÇ ¼³¸íÀ» ÇÏÁö ¾Ê°Ú´Ù. ³×À̹ö¿¡ ÅèĹ ¼³Ä¡¶ó°í Ä¡¸é ³ª¿Â´Ù.
2. Dynamic Web project
– ÅèĹÀ» ¼³Ä¡ÇÏ°í ³ª¼ ¾î¶»°Ô JSP ÄÚµùÀ» ½ÃÀÛÇؾßÇÏ´ÂÁö ¸·¸·Çß´Ù. ÀÏ´Ü ÀÌŬ¸³½º¸¦ ¿¾î¼ new ÇÁ·ÎÁ§Æ®¸¦ ¿¾î¼ º¸´Ï web ºÎºÐ¿¡ ¸ð°¡ ¸¹´Ù. ¼²ºÒ¸® ´©¸£±â°¡ ¹«¼¿ü´Ù. ¹«¼¿ï¶© ³×À̹ö °Ë»öÀÌ´Ù. Dynamic Web Project¸¦ Ç϶ó°í ÇÑ´Ù. »ç½Ç ³ ¾ÆÁ÷µµ Static Web Project ¿ÍÀÇ Â÷ÀÌÁ¡À» ¸ð¸£°Ú´Ù. ³»°¡ ÇÏ°í ½ÍÀº°Ç ±×³É »¡¸® ¶ç¿öº¸´Â °Å´Ù.
OpenAPI ¶ó´Â ÇÁ·ÎÁ§Æ®¸íÀ» ÀÔ·ÂÇÏ°í Target RunTime ¿¡¼ Apache Tomcat7.0À» ¼±ÅÃÇØ ÁØ´Ù. ¾Õ ´Ü°è¿¡¼ ¼³Ä¡ÇÑ TomcatÀÇ °æ·Î¸¦ ÀνÄÇÏ°Ô ÇؾßÇÑ´Ù. ±× ÀÌÀ¯´Â ÀÌŬ¸³½º¿¡¼ ´ÙÀ½ ´Ü°è¿¡¼ ½ÇÇàÇÒ¶§, ÅèĹÀ» ÀνÄÇؼ ±¸µ¿ÇÑ ÈÄ ¸¸µç À¥ ÆäÀÌÁö¸¦ º¸¿©Áֱ⠶§¹®ÀÌ´Ù.
3. JSP ÆÄÀÏ ¸¸µé±â
– JSP ÆÄÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù´Â°Ç ¾Ë°í ÀÖ´Ù. ±Ùµ¥ ¹®Á¦´Â ¾îµð¿¡ ¸¸µå³Ä´Â °ÍÀÌ´Ù. ¾î·Æ´Ù. ¶Ç ³×À̹ö °Ë»öÁú.. ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ¸»ÀÌ WebContent ¹Ø¿¡ ¸¸µé¶ó°í ÇÑ´Ù. test.jsp ÆÄÀÏÀ» ¸¸µé¾ú´õ´Ï ¾Æ·¡¿Í °°Àº ȸéÀÌ »ý°å°í html Äڵ尡 µé¾î°£ ºÎºÐÀÌ ³ª¿Ô´Ù.
°£´ÜÇÏ°Ô ½ÇÇàÇØ º¸°íÀÚ Çß´Ù. ÅÂ±× ¾È¿¡ hello world ¸¦ Âï¾î ³Ö°í ½ÇÇàÀ» ´·¶´Ù. ¾Æ·¡¿Í °°Àº ȸéÀÌ ³ª¿Í¼ ±×³É next, finish. ³»¿ëÀ» °£´ÜÈ÷ ¿ä¾àÇÏÀÚ¸é ½ÇÇàÇÏ´Â ÅèĹÀ» ¼±ÅÃÇÏ°í ±× ¾È¿¡ ¹«¾ùÀ» ³ÖÀ» °ÍÀÎÁö¸¦ ¼±ÅÃÇÏ´Â °ÍÀε¥ OpenAPI·Î Àû¾úÀ¸´Ï±î OpenAPI °¡ µé¾î°¡¼(?) ½ÇÇàµÇ´Â°Í °°´Ù. ¾Æ·¡¿Í °°ÀÌ hello world °¡ Ãâ·ÂµÇ´Â °ÍÀ» º¼ ¼ö°¡ ÀÖ´Ù.
4. Get ¹æ½ÄÀº ¾î¶»°Ô?
– ÀÚ, ÀÌÁ¦ Get ¹æ½ÄÀ¸·Î »ç¿ëÀÚ È¤Àº ³»°¡ ¸¸µå´Â ¾Û/¼ºñ½º¿¡¼ URL¿¡ µ¥ÀÌÅ͸¦ ½Ç¾î¼ º¸³»±â¸¸ ÇÏ¸é µÈ´Ù. Get ¹æ½Ä°ú Post¹æ½Ä¿¡ ´ëÇÑ °³³äÀº °¡Áö°í ÀÖ¾ú´Ù. Get ¹æ½ÄÀ» ¾î¶»°Ô ¹Þ¾Æ¿Í¾ßÇÒ±î? ÀÌ ¹°À½ÀÌ °¡Àå Å« ¹®Á¦ ¿´´Âµ¥ ¿ª½Ã ¶Ç ³×À̹ö/±¸±Û °Ë»öÀ» ÀÌ¿ëÇß´Ù.
°Ë»öÇÏ´Â °úÁ¤¿¡¼ JSP ÀÇ ´ë·«ÀûÀÎ ¹®¹ý¿¡ ´ëÇؼ ¾Ë°Ô µÇ¾ú´Âµ¥ ±×³É <% %>¸¦ ¾²¸é µÈ´Ù°í ÇÑ´Ù. ¾Æ¹«Æ° Get ¹æ½ÄÀ¸·Î ³Ñ¾î¿Â µ¥ÀÌÅ͸¦ °¡Á®¿Ã¶§´Â À§ÀÇ ÄÚµåó·³ reqeust.getParameter(¡°url ÀÎÀÚ¸í¡±) ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. q ¶ó´Â ÀÎÀÚ¿¡ 123À» ³Ñ°Ü º¸¾Ò°í, ¾Æ·¡¿Í °°ÀÌ È¸éÀÌ Ãâ·ÂµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. **5. ÀÚ¹Ù ÄÚµå ¿¬°á** – JSP ¾È¿¡¼ ó¸®Çصµ µÇÁö¸¸, ¸Õ°¡ ±×·± ÄÚµå´Â ½È¾ú´Ù. JSP´Â º¸¿©ÁÖ´Â ºÎºÐÀ̱⠶§¹®¿¡ ½ÇÁ¦ 󸮴 »ç½Ç Àڹ٠Ŭ·¡½º ÆÄÀÏ¿¡¼ ÇÏ´Â°Ô ¸Â´Ù°í »ý°¢Çß´Ù. °£´ÜÇÏ°Ô JSONÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ» ÀÚ¹Ù ÆÄÀÏ¿¡¼ ÇØÁִµ¥ GsonÀÌ ±× ¿ªÇÒÀ» ´ã´çÇϱâ·Î Çß´Ù. JsonMaker ¶ó´Â ÆÄÀÏÀ» Java Resources ¶ó´Â ºÎºÐ¿¡ ÀÚ¹Ù ÆÄÀÏ·Î ¸¸µé¾ú´Ù. ±×¸®°í ```toJson(String query, String category)``` ÇÔ¼ö¸¦ ¸¸µé¾ú´Ù. gson ¶óÀ̺귯¸®¸¦ ´Ù¿î ¹ÞÀºÈÄ, ```WebContent/WEB-INF/lib``` ¿¡ µÎ°í Java Build Path ¼³Á¤½Ã, ÇØ´ç µð·ºÅ丮¾È¿¡ ÀÖ´Â gsonÀ» ÂüÁ¶ÇÏ°Ô ÇÏ¿´´Ù. toJson()ÇÔ¼ö¿¡¼´Â get ¹æ½ÄÀ¸·Î ¹ÞÀº ³»¿ëÀ» ±×³É Àü´Þ ¹Þ¾Æ¼ Gson À¸·Î JSON StringÀ» ¸¸µé¾î¼ ¸®ÅÏÇÏ´Â ¾ÆÁÖ °£´ÜÇÑ ÇÔ¼öÀÌ´Ù. ÀÌ·¸°Ô Çؼ ÀÚ¹Ù ÆÄÀÏÀ» ¿Ï¼ºÇÏ¿´°í, ¸¸µç Àڹ٠Ŭ·¡½º¸¦ JSP¿Í ¿¬µ¿ ÇÏ¿©¾ß ÇÑ´Ù. ±×·¡¾ß °´Ã¼¸¦ ¸¸µé°í ÇÔ¼ö¸¦ ºÒ·¯¼ ¾µ¼ö°¡ ÀÖÀ»Å×´Ï±î ¸»ÀÌ´Ù.
ÀÚ¹Ù ÄÚµå ¿¬°áÀ» À§Çؼ´Â<% page import=¡±ÆÐÅ°Áö.Ŭ·¡½º¸í¡±%> ¸íÀ» »ó´Ü¿¡ ½áÁÖ¾î¾ß ÇÑ´Ù. ±×·¸°Ô ÇÏ°í ³ª¼ ¾Æ·¡ÀÇ ÄÚµå ó·³ JsonMaker °´Ã¼¸¦ ¸¸µé¾î¼ ÇÔ¼ö¸¦ È£ÃâÇÏ°í °á°ú¸¦ ´Ù½Ã º¸¿©ÁÖ´Â ½ÄÀ¸·Î ±¸¼ºÇÏ¿´´Ù.
ȸéÀ» È®ÀÎÇØ º¸ÀÚ. ´ÙÀ½°ú °°ÀÌ jsonÀÌ ³ª¿À´Â °ÍÀ» È®ÀÎ ÇÒ¼ö°¡ ÀÖ´Ù. ±×·¯³ª ½ÇÁ¦·Î ¾Û¿¡¼ HTTP Request ¸¦ Çؼ µ¥ÀÌÅ͸¦ °¡Á®¿À¸é Html ÀÚü°¡ ³ª¿À´Â °ÍÀ» º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. ½ÇÁ¦ À§ÀÇ ½ÇÇà ȸ鿡¼ ¿ìŬ¸¯ ÆäÀÌÁö ¼Ò½ºº¸±â¸¦ ´©¸£¸é html Äڵ尡 ³ª¿À´Â°ÍÀ» È®ÀÎÇÒ ¼ö°¡ ÀÖ´Ù.
³»°¡ ¿øÇÏ´Â °ÍÀº ¼ø¼ö JSON String À̱⠶§¹®¿¡ ¾Æ·¡¿Í °°ÀÌ html Äڵ尡 Á¦°ÅµÈ ³»¿ëÀ¸·Î ¹Ù²Ù¸é ¼ø¼ JSON StringÀ» °¡Á®¿Ã ¼ö°¡ ÀÖ´Ù. °³ÀÎÀûÀ¸·Î ÀÛ¾÷ÇßÀ»¶§¿¡´Â JSON À» ¹Þ´Â ÂÊ¿¡¼ ¹Þ¾Æ¿Â ÈÄ, ´Ù½Ã trimÀ» ÇØÁÖ´Â°Ô ÁÁÀº°Í °°´Ù.
¿øÇÏ´Â ¼öÁØÀÇ ÀÛ¾÷Àº ¿©±â±îÁö ¿´´Ù. ¿©±â¼´Â »ç½Ç ½±°Ô ¼³¸íÀ» ÇßÁö¸¸ ã°í ´Ù½Ã Çغ¸°í ã°í ´Ù½ÃÇغ¸°í ÇÏ´Â ½ÄÀÇ ¹Ýº¹À̾ú´Ù. ´ÜÀÏ À¥ÆäÀÌÁö Çϳª ¶ç¿ì´Â ÀÛ¾÷À¸·Î Çغ¸¸é º°°Å ¾Æ´ÏÁö¸¸ À¥ ÇÁ·Î±×·¡¹Ö ÀÚü´Â óÀ½À̾ú±â ¶§¹®¿¡ Àç¹Õ¾úÁö¸¸ ÀÌÇØ°¡ ¾ÈµÇ´Â ºÎºÐµµ ¸¹¾Ò´Ù. °£´ÜÇÑ °ÍÀº ½±Áö¸¸ ½ÇÁ¦·Î ÇÊÀÚ°¡ ´ÙÀ½ÀÇ Æ®À§ÅÍ ºÐ¼® ÆäÀÌÁö¸¦ ÆĽÌÇؼ APIÈ ÇÒ¶§¿¡´Â encoding ¿¡ ´ëÇÑ ºÎºÐ ¿ª½Ã ÇϳªÀÇ °É¸²µ¹·Î ÀÛ¿ëÇϱ⵵ ÇÏ¿´´Ù.
¹èÆ÷¸¦ ¼³¸íÇÏÁö ¾Ê¾Ò´Âµ¥, »ç½Ç ±×¸® ¾î·ÆÁö ¾Ê´Ù. ÀÌŬ¸³½º¿¡¼ ¸¸µç ÇÁ·ÎÁ§Æ®¿¡ ¸¶¿ì½º¸¦ ¿ìŬ¸¯Çϸé Export>WAR °¡ Àִµ¥ ±×°ÍÀ» ´©¸£¸é ÇÁ·ÎÁ§Æ®À̸§.WAR ÆÄÀÏÀÌ ¸¸µé¾î Áø´Ù. ½ÇÁ¦ ¹èº¸ÇÒ ¼¹öÀÇ ÅèĹ/WebApps¿¡ ¸¸µé ÆÄÀÏÀ» µÐä ´Ù½Ã ÅèĹÀ» Àç±âµ¿ Çϸé WAR °¡ Ç®¸®¸é¼ ÇÁ·ÎÁ§Æ® À̸§ÀÇ µð·ºÅ丮°¡ »ý±â°í URL·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
ÇÊÀÚ°¡ ´õ ¸ð¸£°Å³ª À߸øµÈ ºÎºÐÀ¸·Î Àü´ÞÇÏ°í ÀÖ´Â ºÎºÐµµ ÀÖÀ»°ÍÀ̶ó°í »ý°¢ÇÑ´Ù. ¿Ö³ÄÇÏ¸é °Åµì ¸»ÇÏÁö¸¸ À¥ ÀÛ¾÷À» óÀ½Çغ»°ÍÀ̱⿡. À߸øµÈ°Í ȤÀº Ãß°¡ÀûÀ¸·Î ¾Ë¾Æ¾ß ÇÏ´Â ºÎºÐÀÌ ÀÖ´Ù¸é ´ñ±ÛÀ» ÅëÇؼ ¹Ýµå½Ã ¾Ë·ÁÁֽñæ.