[ÆĽÌ] 1. ±âÃÊÀûÀÎ À¥ µ¥ÀÌÅÍ ¹Þ¾Æ¿À±â
¿ì¼± º»°ÝÀûÀ¸·Î JSONÆĽ̿¡ µé¾î°¡±â¿¡ ¾Õ¼ À¥°ú ¿¬µ¿ÇÏ¿© µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿À´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ
»ç½Ç ÀÌ ¹æ¹ýÀº JSON¾øÀÌ ±×³É HTMLÀ̳ª XMLÁ¤º¸¸¦ ±×´ë·Î ¹Þ¾Æ¿Â°Í¿¡ ºÒ°úÇÏÁö¸¸ Áß¿äÇÑ°ÍÀº ÀÎÅͳݰú ¿¬°áÇÏ¿© µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿À´Â ¹æ½ÄÀ» ÀÍÈù´Ù´Â Á¡¿¡ ÀÖ´Ù.
¸ñÇ¥°¡ µÇ´Â »çÀÌÆ®´Â º»ÀÎÀÇ IP¸¦ º¸¿©ÁÖ´Â »çÀÌÆ®ÀÎ http://ipip.kr/ ·Î ÇÏ°Ú´Ù.
ÀÌ »çÀÌÆ®´Â µé¾î°¡º¸¸é ¾Ë°ÚÁö¸¸ Á¤¸» ½ÉÇÃÇÏ°Ô ¾ÆÀÌÇǸ¸ º¸¿©ÁÖ´Â ¿ªÇÒ¿¡ Ãæ½ÇÇÏ¿© ÆĽÌÇϱⰡ ½±´Ù.
¿ì¸®ÀÇ ¸ñÇ¥´Â Àú »çÀÌÆ®¸¦ µé¾î°¡¸é º¸ÀÌ´Â ¾ÆÀÌÇÇ ÁÖ¼Ò 4ÀÚ¸®¸¸ Á¤È®ÇÏ°Ô ¹Þ¾Æ¿Í¼ Ãâ·Â½ÃÅ°´Â °ÍÀÌ´Ù.
±×·³ ÀÌÁ¦ ¾î¶²°ÍµéÀÌ ÇÊ¿äÇÑÁö ¼ø¼´ë·Î »ý°¢Çغ¸ÀÚ
(1) ÀÎÅͳݰú ¿¬°áÇØ¾ß ÇÏ´Ï ´ç¿¬È÷ À¥ÆäÀÌÁö¿ÍÀÇ ¿¬°á ¼ö´ÜÀÌ ÇÊ¿äÇÏ´Ù.
(2) ¿¬°á ÀÌÈÄ ¿øÇÏ´Â °á°ú¸¦ ¹Þ¾Æ¿À±â À§ÇÑ ÀÔÃâ·Â¼ö´ÜÀÌ ÇÊ¿äÇÏ´Ù.
»ó±â 2°¡Áö¸¦ »ç¿ëÇϱâ À§Çؼ import¸¦ ÇØÁØ´Ù.
À̸§¿¡¼ ¾Ë ¼ö ÀÖ´Ù½ÃÇÇ urlÀ» °¡Áö°í ¿¬°áÇÑ´ÙÀ½ BufferedReader¿Í InputStreamReader¸¦ ÀÌ¿ëÇØ °á°ú¸¦ ¹Þ¾Æ¿Â µÚ ÄÜ¼Ö È¸é¿¡ Ãâ·Â½ÃÄÑ ÁÙ °ÍÀÌ´Ù.
¿ì¼± ÀÎÅÍ³Ý ¿¬°á¿¡ ÇÊ¿äÇÑ ±âº» º¯¼öµéÀ» ¼±¾ðÇØÁØ´Ù
Áö±Ý ´Ü°è¿¡¼± Áö¿ªº¯¼ö·Î ÇÏ´ø, Àü¿ªº¯¼ö·Î ÇÏ´ø Å©°Ô »ó°üÀº ¾øÀ¸³ª, Æò¼Ò ÇÏ´ø´ë·Î Àü¿ª staticº¯¼ö·Î Àü¾ðÇÏ¿´´Ù.
Çϳª¾¿ »ìÆ캸¸é Address´Â ¸»±×´ë·Î Á¢¼ÓÇÒ »çÀÌÆ®ÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇÒ String°ªÀÌ´Ù.
URLÀº ÁÖ¼Ò¿Í °°ÀÌ ¿¬°áÇØÁÙ¶§ »ç¿ëÇÒ °ÍÀÌ´Ù.
¹öÆÛ¸®´õ´Â °á°ú°ªÀ» ¹Þ¾Æ¿Í¼ Ãâ·ÂÇØÁÙ¶§ »ç¿ëÇÒ °ÍÀÌ´Ù.
HttpURLConnectionÀº URLÀ» °¡Áö°í ½ÇÁ¦·Î ¿¬°áÀ» ¼öÇàÇÏ´Â ÁßÃßÀûÀÎ ¿ªÇÒÀ» ÇÑ´Ù.
protocolÀº À¥¿¡¼ ¸í·É¼öÇàÀ» ÇÒ¶§ ¿äû°ú ÀÀ´ä ¹æ½ÄÀ» ÀúÀåÇØÁØ´Ù.
¿©±â¿£ GET¹æ½Ä°ú POST¹æ½ÄÀÌ Àִµ¥ GET¹æ½ÄÀº ¿ì¸®°¡ ÈçÈ÷ º¸´Â https://search.naver.com/search.naver?where=nexearch&query=%EB%84%A4%EC%9D%B4%EB%B2%84&sm=top_hty&fbm=0&ie=utf8 ÀÌ·± ½ÄÀÇ °Ë»ö ³»¿ëµéÀÌ ÁÖ¼Ò¿¡ ´Ù µé¾î³ª´Â ¹æ½ÄÀÎ ¹Ý¸é, POST¹æ½ÄÀº www.aaaa.com/test.do ÀÌ·±½ÄÀ¸·Î ÁÖ¼Ò¿¡ Á¤º¸°¡ µé¾î³ªÁö ¾Ê´Â ¹æ½ÄÀÌ´Ù.(¿ø·¡ ±»ÀÌ º¯¼ö¼±¾ðÀº ¾ÈÇصµ µÇÁö¸¸ °¡µ¶¼ºÀ» À§ÇØ º¯¼ö·Î ¼±¾ðÇß´Ù.)
¾Æ¹«Æ° ¿©±â±îÁö Çؼ ±âº»ÀûÀÎ º¯¼ö ¼±¾ðÀº ³¡³µ´Ù. ÀÌÁ¦ main¸Þ¼Òµå¿¡¼ º¯¼ö¿¡ °ªµéÀ» ÁöÁ¤ÇØ ÁÖ¸é µÈ´Ù.
(1) Address¿¡ ¿ì¸®°¡ Á¢¼ÓÇÒ ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ÁÖ¾ú´Ù. »ç½Ç Àü¿ªº¯¼ö·Î ¼±¾ðÇÑ ÀÌÀ¯°¡ ¿©±â¿¡µµ ÀÖ´Ù. ÀÌ ÁÖ¼Ò°ªÀ» Scanner¸¦ ÀÌ¿ëÇؼ Á÷Á¢ ÀÔ·Â¹Þ¾Æ ¹èÁ¤ÇÏ´Â µîÀÇ ¹æ½ÄÀ¸·Î ÀÀ¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
(2) url°´Ã¼¸¦ ¼±¾ðÇÏ°í, ¸Å°³º¯¼ö·Î ÁÖ¼Ò°ªÀ» ³Ö¾î¼ urlÀ» ¿Ï¼º½ÃÄÑÁØ´Ù.
(3) connº¯¼ö¿¡ url.openConnection()À» ÅëÇØ Åë½ÅÀ» ¿¾îÁØ °ÍÀ» (HttpURLConnection)À» ÅëÇØ Çüº¯È¯ ÇÏ¿© ÀúÀåÇØ ÁØ´Ù. Áï, ÀÌ °úÁ¤ÀÌ urlÀ» ÅëÇØ ÀÎÅͳݰúÀÇ ¿¬°áÀ» À̾îÁØ °ÍÀÌ´Ù.
(4) conn.setRequestMethod()ÀÇ ÀÎÀÚ ³»ºÎ¿¡ ¿äû&ÀÀ´ä ¹æ½ÄÀ» ³Ö¾îÁØ´Ù. ¾Æ±îµµ ¼³¸íÇß´Ù½ÃÇÇ GET°ú POST¹æ½ÄÀÌ ÀÖÀ¸¸ç, ¿ì¸®´Â protocol = "GET"À¸·Î ¼±¾ðÇßÀ¸¹Ç·Î get¹æ½ÄÀ¸·Î ÇØ ÁÖ¾ú´Ù.(»ç½Ç get¹æ½ÄÀÌ ´ëºÎºÐÀ̱ä ÇÏÁö¸¸ post¹æ½ÄÀÏ ¶§µµ ÀÖÀ¸´Ï ½ÇÁ¦·Î ¼³°èÇÒ¶© ¾çÂÊ ´Ù ¼³°è ÈÄ ÇÊ¿äÇÑ °ÍÀ» ¸ÂÃç »ç¿ëÇØ Áִ°ÍÀÌ ¿Ç´Ù.
(5) conn.getInputStream()À» ÅëÇØ ¿¬°áµÈ ÁÖ¼Ò¿¡¼ ¹Þ¾Æ¿Â Á¤º¸µéÀ» new InputStreamReader()ÀÇ ÀÎDz½ºÆ®¸²¿¡ ³Ö¾îÁÖ°í, À̸¦ new BufferedReader()¸¦ ÅëÇØ br°´Ã¼¿¡ ÀúÀåÇØÁØ´Ù. ÀÎDz½ºÆ®¸²ÀÇ µÎ¹ø° ÀÎÀÚÀÎ "MS949"´Â ±ÛÀÚ ÀÎÄÚµù Çü½ÄÀ¸·Î ¿¾³¯ºÎÅÍ ÇѱÛÀ» Ç¥ÇöÇϴµ¥ »ç¿ëÇÏ´Â ¹æ½ÄÀÌ´Ù. ¸¸ÀÏ ±ÛÀÚ°¡ Á¦´ë·Î Ãâ·ÂÀÌ ¾ÈµÈ´Ù¸é "UTF-8"µî ´Ù¸¥ ÀÎÄÚµù Çü½ÄÀ¸·Î ¹Ù²ãº¸¸é µÈ´Ù. ÀÌ ÀÎÄÚµù ŸÀÔÀº »ý·«ÇÒ ¼ö ÀÖÀ¸¸ç, »ý·« ½Ã ÀÌŬ¸³½º¿¡¼ ÇØ´ç ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ¼³Á¤°ªÀ» µû¸¥´Ù.
ÀÌÁ¦ ÀÌ·¸°Ô ³ª¿Â ³»¿ëµéÀ» ¸ÕÀú ÇÑÁÙ¾¿ ³¡³¯¶§ ±îÁö Âß Ãâ·ÂÇÏ´Â ½ÄÀ» Â¥º¸ÀÚ
br.readLine()À» ÅëÇØ ÇÑÁÙ¾¿ Àоî¿Â °á°ú¸¦ lineÀ̶ó´Â ½ºÆ®¸µ °ª¿¡ ÀúÀåÇÏ°í, ÀÌ line°ªÀÌ ³Î°ªÀÌ µÉ¶§, Áï, Àоî¿Ã ³»¿ëÀÌ ´õÀÌ»ó ¾øÀ» ¶§ ±îÁö Ãâ·ÂÇØÁØ´Ù.
À̸¦ ½ÇÇà½ÃÅ°¸é ¾Æ·¡¿Í °°Àº ³»¿ëÀÌ ³ª¿Â´Ù.
ÀÌ ¹®Àå ÀüºÎ´Ù Ãâ·ÂÇÏ¸é ¾öû³ ±æÀÌ°¡ µÇ´Âµ¥ ¿ì¸®°¡ ¾Ë°í½ÍÀº°Ç ȨÆäÀÌÁö html¼Ò½º Àü¹®ÀÌ ¾Æ´Ñ »¡°£ ÁÙ·Î ÃijõÀº ¾ÆÀÌÇÇ 4ÀÚ¸® ÀÌ´Ù.
µû¶ó¼ <tilte>Your IP·Î ¹®ÀåÀÌ ½ÃÀÛÇÒ ¶§, ¾ÆÀÌÇÇ 4ÀÚ¸®ÀÇ ¾Õ, µÚ ¹®ÀåµéÀ» ¸ðµÎ Á¦°ÅÇÏ°í Ãâ·ÂÇØÁÖ¸é µÈ´Ù.
lineÀÌ <title>Your... À¸·Î ½ÃÀÛÇϸé line¿¡¼ <title>Your IP is ¹®Àå°ú, </title>¹®ÀåÀ» ¸ðµÎ ¾ø¾Ö("")ÁÖ°í À̸¦ ip¶ó´Â ½ºÆ®¸µ¿¡ ´ãÀº µÚ Ãâ·ÂÇØÁÖ´Â ±¸Á¶ÀÌ´Ù.
ÀÌÁ¦ Äڵ带 Á¾ÇÕ½ÃÅ°¸é ¾Æ·¡¿Í °°´Ù.
ÄÚµå ±¸¼º :
Ãâ·Â °á°ú :
¿©±â±îÁö Çؼ ±âÃÊÀûÀÎ ÀÎÅÍ³Ý ¿¬°áÀ» ÅëÇÑ ÆĽ̿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. »ç½Ç Áö±Ý ¼Ò°³ÇÑ ÀÌ ¹æ¹ýÀº XMLÆĽ̵µ ¾Æ´Ï°í JSONÆĽ̵µ ¾Æ´Ñ ¸»±×´ë·Î HTMLÀ» ±×´ë·Î °¡Á®¿Í¼ ÇÊ¿äÇÑ ºÎºÐ¸¸ À߶󳻼 Ãâ·ÂÇÑ °Í¿¡ ºÒ°úÇÏ´Ù.
ÇÏÁö¸¸ À̹ø ÀåÀº ¾Æ¹«·± ¶óÀ̺귯¸® ÆÄÀÏ ¾øÀÌ ÆĽÌÀ» ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸¾Ò´Ù´Â °Í°ú, ½ÇÁ¦·Î ÀÎÅͳݿ¡ ¿¬°áÇÏ¿© µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿À´Â °úÁ¤À» Á÷Á¢ Çغ¸¾Ò´Ù´Â Á¡¿¡¼ Àǹ̸¦ °¡Áú¸¸ ÇÏ´Ù.
´ÙÀ½Àå¿¡¼ºÎÅÏ º»°ÝÀûÀ¸·Î JSONÀ» ÀÌ¿ëÇÑ ÆĽ̰ú, APIÅ° ¹ß±Þ¿¡ ´ëÇؼ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú´Ù.