ÃֽŠ°Ô½Ã±Û(JAVA)
2019.05.29 / 24:16

OPEN API »ç¿ëÇÏ´Â ¹æ¹ý (OPEN API »ç¿ëÇغ»Àû ÀÖ³ª¿ä?)

Źµ¹ÀÌ°³¹ßÀÚ
Ãßõ ¼ö 253

OPEN API »ç¿ëÇÏ´Â ¹æ¹ý (OPEN API »ç¿ëÇغ»Àû ÀÖ³ª¿ä?)

°ø°øµ¥ÀÌÅÍ Æ÷Åп¡¼­ Á¦°øÇÏ´Â OPEN API »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ °£´ÜÈ÷ °øºÎÇغ¸¾Ò´Ù.

(¿ø·¡´Â ÀÚ¹Ù¿¡¼­ XML ÆÄ½Ì ¶óÀ̺귯¸®¸¦ Å×½ºÆ®Çغ¸·Á°í Àû´çÇÑ XML ÆÄÀÏÀ» ã´Ù°¡ OPEN API°¡ JSON Çü½Ä ¸»°íµµ XMLÇü½ÄÀ¸·Î Á¦°øÇÑ´Ù´Â °ÍÀÌ »ý°¢³ª¼­ Å×½ºÆ®ÇغôÙ.)

½ÅÀÔ °³¹ßÀÚ·Î Ãë¾÷ÇÒ ¶§ °¡²û¾¿ OPEN API »ç¿ë °æÇèÀ» ¹°¾îº¸´Â °÷µµ ÀÖ¾ú´Ù.

ÀÌ¹Ì ¸¹Àº ½ÅÀÔ °³¹ßÀÚµéÀÌ Æ÷Æ®Æú¸®¿À¸¦ ¸¸µé¸é¼­ ¾î¶² ÇÁ·ÎÁ§Æ®¿¡¼­´Â OPEN API¸¦ »ç¿ëÇغÃÀ»°Å¶ó »ý°¢µÇÁö¸¸ Á¤¸®ÇÏ´Â °â, »ç¿ëÇغ¸Áö ¾ÊÀº ºÐµéµµ °¡º±°Ô °æÇèÇÒ °âÇؼ­ OPEN API¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ Á¤¸®ÇÑ´Ù.

°ø°øµ¥ÀÌÅÍ Æ÷ÅÐ OPEN API »ç¿ë ÇÁ·Î¼¼½º

1. °ø°øµ¥ÀÌÅÍ Æ÷Åп¡ Á¢¼Ó, ·Î±×ÀÎÇÑ´Ù. (https://www.data.go.kr/)


2. ¿øÇÏ´Â ÀڷḦ °Ë»öÇÑ´Ù.

  ¿©±â¼­´Â ¿À´Ã³¯ Á¦ÀÏ ÇÖ(?)ÇÑ ¹Ì¼¼¸ÕÁö µ¥ÀÌÅ͸¦ °¡Á®¿Í¼­ ´ë±â¿À¿° Á¤º¸¸¦ ¹Þ¾Æ º¼ ¿¹Á¤ÀÌ´Ù.

[¹Ì¼¼¸ÕÁö °Ë»öÈ­¸é]

[¹Ì¼¼¸ÕÁö °Ë»ö°á°ú]

°Ë»ö°á°ú¸¦ º¸¸é ÆÄÀϵ¥ÀÌÅÍ 9°Ç, ¿ÀÇÂAPI 5°ÇÀÌ ÀÖ´Ù. ±× Áß ³»°¡ ¿øÇÏ´Â API¸¦ ¼±ÅÃÇϸéµÈ´Ù. ¿©±â¼­´Â Çѱ¹È¯°æ°ø´Ü_´ë±â¿À¿°Á¤º¸ Á¶È¸ ¼­ºñ½º¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.


3. È°¿ë ½ÅûÇϱâ, »ç¿ë ¹®¼­ ´Ù¿î·ÎµåÇϱâ

À§¿¡ º¸ÀÌ´Â »çÁø¿¡¼­ "È°¿ë½Åû" ¹öÆ°À» ´­·¯¼­ È°¿ëÀ» ½ÅûÇÏ¸é µÈ´Ù.

±× Àü¿¡ Âü°í¹®¼­ ºÎºÐ¿¡ ÀÖ´Â ¹®¼­ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¹®¼­¿¡ API¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀÌ ÀÖ´Ù.

±×¸®°í °£´ÜÇÏ°Ô ´Ù¸¥ ³»¿ëÀ» º¸´Â °Íµµ ÁÁ´Ù.

End Point´Â Àú URL·Î request¸¦ º¸³»¶ó´Â °ÍÀ¸·Î ÀÌÇØÇϸéµÇ°í API À¯ÇüÀº REST, µ¥ÀÌÅÍ ±âº» Æ÷¸ËÀº XMLÀÌ´Ù Á¤µµ È®ÀÎÇÏ°í ³Ñ¾î°£´Ù. (XML¸¸ Á¦°øµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¹Ø¿¡¼­ JSONÀ¸·Îµµ ¹ÞÀ½)


4. °³¹ß °èÁ¤ ½ÅûÇϱâ

[°³¹ß °èÁ¤ ½Åûȭ¸é]

( *** ÀÌ¹Ì ´ë±â¿À¿°Á¤º¸Á¶È¸ API´Â ½ÅûÀ» Çسö¼­ È­¸éÀ» º¸¿©ÁÙ ¼ö ¾øÀ¸¹Ç·Î ´ë±â Áß±Ý¼Ó Á¤º¸ API¸¦ ½ÅûÇÏ´Â È­¸éÀ¸·Î ´ëüÇß´Ù. »ó¼¼±â´ÉÁ¤º¸¸¸ ´Ù¸£±â ¶§¹®¿¡ ¶È°°ÀÌ È®Àθ¸ÇÏ¸é µÈ´Ù.) 

"½ÉÀÇ ¿©ºÎ"°¡ "ÀÚµ¿ ½ÂÀÎ"À̹ǷΠ½Åû¿Ï·á¸¸ÇÏ¸é ¹Ù·Î API¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

´Ü, ¾Æ·¡¿¡ »ó¼¼±â´É Á¤º¸¿¡¼­ ÀÏÀÏ Æ®·¡ÇÈÀÌ 1000(´ë±â¿À¿°Á¤º¸API¿¡¼­´Â 500)À̹ǷΠ1000ȸ Á¶È¸¸¦ ÇÏ¸é ´õ ¿À´ÃÀº ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾ø´Ù.

´õ ¸¹Àº Æ®·¡ÇÈÀÌ ÇÊ¿äÇÏ´Ù¸é Ãß°¡ ½Åû°ú ½ÂÀÎÀýÂ÷¸¦ ±â´Ù¸®¸é »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

½ÂÀÎÀϷκÎÅÍ 24°³¿ùÀÌ °¡´ÉÇÑ Á¡ È®ÀÎÀ» ÇÏ°í, ½Ã½ºÅÛ À¯ÇüÀº ÀϹÝÀûÀ¸·Î ÀϹÝÀ¸·Î µÎ¸é µÈ´Ù.

±×¸®°í »ó¼¼±â´ÉÁ¤º¸¿¡¼­ ÀÚ½ÅÀÌ ¿øÇÏ´Â API ÀڷḦ ¼±ÅÃÇؼ­ ÇÊ¿äÇÑ °Í¸¸ ¹ÞÀ» ¼ö ÀÖ´Ù.

À§¿¡¼­´Â ±×³É ´Ù üũÇÑ´Ù.


5. ¸¶ÀÌÆäÀÌÁö> ¿ÀÇÂAPI > °³¹ß°èÁ¤ APIÅ° ¹Þ±â

¸¶ÀÌÆäÀÌÁö¿¡ ¿ÀÇ API¿¡ °³¹ß°èÁ¤À̶ó´Â ÅÇÀ¸·Î °¡¸é È°¿ë¿¡ 1°ÇÀÌ µÇ¾îÀÖÀ» °ÍÀÌ´Ù. (ÀÌÀü¿¡ »ç¿ëÇÏ´ø API°¡ ÀÖ´Ù¸é ´õ ÀÖÀ» ¼ö ÀÖÀ½)

°Å±â¼­ "´ë±â¿À¿°Á¤º¸ Á¶È¸ ¼­ºñ½ºAPI"¸¦ ´­·¯º¸¸é Å° ¹Þ´Â ¹öÆ°ÀÌ ÀÖ´Ù.

ÀÌ ¹öÆ°À» ´­·¯¼­ Å°¸¦ ¹Þ´Â´Ù.

À§ »çÁø¿¡¼­´Â ÀÏ¹Ý ÀÎÁõÅ° Àç¹ß±ÞÀ̶ó°í ³ª¿ÍÀÖÁö¸¸ óÀ½ÇÒ ¶§´Â ÀϹÝÅ° ¹ß±Þ(?) À̶ó°í ½áÀÖÀ» °ÍÀÌ´Ù.

±×°ÍÀ» ´­·¯ Å°¸¦ ¹ÞÀ¸¸é °ËÀº»öÀ¸·Î Ä¥ÇØÁø ºÎºÐÀÎ ÀÏ¹Ý ÀÎÁõÅ°ºÎºÐ¿¡ Å° °ªÀÌ ¹ß±ÞµÉ °ÍÀÌ´Ù.

±×·¯¸é ÇØ´çÅ°¸¦ »ç¿ëÇؼ­ API¼­¹ö¿¡ ¿äûÇÏ¸é °á°ú°ªÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.

¶ÇÇÑ 3¹ø¿¡¼­ ¹ÞÀº Âü°í¹®¼­¸¦ ¿©±â¼­µµ ¹ÞÀ» ¼ö ÀÖ´Ù.


6. ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¹®¼­ È®ÀÎÇϱâ

ÀÌÁ¦ »ç¿ë¿¡ ÇÊ¿äÇÑ API key´Â ¾ò¾úÀ¸´Ï ¾îµð¿¡ ¾î¶»°Ô º¸³»´ÂÁö¸¸ ¾Ë¸é µÈ´Ù.

±× ¹æ¹ýÀº ¹®¼­¿¡ Àß ³ª¿ÍÀÖ´Ù.

[¸ñÂ÷È­¸é]

¸ñÂ÷¿¡¼­ »ç¿ë°¡´ÉÇÑ ¼­ºñ½º ¸ñ·ÏÀ» È®ÀÎÇÑ´Ù.

À§ »çÁø¿¡¼­´Â 2.2. ´ë±â¿À¿°Á¤º¸Á¶È¸ ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¿¹Á¤ÀÌ´Ï ÇØ´ç ÆäÀÌÁö·Î °¡¼­ È®ÀÎÇغ¸¸éµÈ´Ù.

ÇØ´ç ÆäÀÌÁö·Î°¡¸é ¼­ºñ½º ÀÎÁõ¹æ¹ýÀÌ ¼­ºñ½º key¸¸ ÀÖÀ¸¸é µÈ´Ù°í µ¿±×¶ó¹Ì Ç¥½Ã°¡ µÇ¾îÀÖ°í ±³È¯ µ¥ÀÌÅÍÇ¥ÁØÀ¸·Î XML°ú JSONÀ» Á¦°øÇÑ´Ù°í µÇ¾îÀÖ´Ù.

±× À§¿¡ ¹ØÁÙÀ» ¸ø Ãƴµ¥ Á¦ÀÏ Áß¿äÇÑ °ÍÀΠÀÎÅÍÆäÀ̽º Ç¥ÁØÀ¸·Î RESTÀÇ GET ¹æ½ÄÀ¸·Î ¿äûÇ϶ó°í ³ª¿ÍÀÖ´Ù.

¶ÇÇÑ ¸Þ½ÃÁö ±³È¯ À¯ÇüÀÌ Request-ResponseÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ°í ½Ç½Ã°£ Á¤º¸Áö¸¸ ¸Å ÃÊ´çÀÌ ¾Æ´Ï¶ó 10ºÐ¸¶´Ù ÃøÁ¤µÈ °ªÀÌ ¹Ý¿µµÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.

³¡À¸·Î JSON¹æ½ÄÀ¸·Î ÀÀ´äÀ» ¹Þ°í ½ÍÀ¸¸é &_returnType=json À» Ãß°¡ÇÏ¸é µÈ´Ù°í ÇÑ´Ù.

(¹Ø¿¡¼­ Å×½ºÆ®ÇÒ ¶§ ÇØ´ç ÆĶó¹ÌÅÍ°ªÀ» ³Ö¾î¼­ jsonÀ¸·Î ¹Þ¾Æ º»´Ù.)

[¿äû/ÀÀ´ä ¸Þ½ÃÁö]

Áß°£¿¡ ÀÌ·¸°Ô ¸Þ½ÃÁö sampleÀÌ ÀÖ´Ù.

Àú ¸Þ½ÃÁö ºÎºÐ¿¡¼­ ¼­ºñ½ºÅ°¸¸ ³»°¡ ¾Æ±î ¹ÞÀº apiÅ°¸¦ ³Ö°í ÇØ´ç URL·Î ¿äûÇϸé ÀÀ´äÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.

°¢ ÆĶó¹ÌÅÍ¿¡ ´ëÇÑ ÀÌÇصµ ¾Æ·¡ »çÁøó·³ ¹®¼­¿¡¼­ ¾Ë ¼ö ÀÖ´Ù.

[ÆĶó¹ÌÅÍ È®ÀÎ]

ÆĶó¹ÌÅÍ¿¡ ´ëÇÑ ¼³¸íÀÌ ³ª¿ÍÀÖ´Ù. ÀÏ´Ü ¿ì¸®°¡ °ü½ÉÀÖ´Â °ÍÀº stationNameÀ¸·Î ÃøÁ¤¼Ò¸íÀ» ³»°¡ ¾Ë°í½Í¾îÇÏ´Â À§Ä¡ÀÇ ÃøÁ¤¼Ò·Î º¯°æÇÏ´Â °ÍÀÌ°í dataTermµµ ÃÖ±Ù 1ÀÏ°£ÀÇ µ¥ÀÌÅÏÁö, 1°³¿ù°£ÀÇ µ¥ÀÌÅÏÁö, 3°³¿ù°£ÀÇ µ¥ÀÌÅÏÁö Á¤ÇÏ´Â °ÍÀÌ´Ù.

ÃøÁ¤¼Ò´Â ÇØ´ç API¿¡¼­µµ ¾Ë ¼ö ÀÖÁö¸¸ ¿¡¾îÄÚ¸®¾ÆÀÇ ÃøÁ¤¼Ò Á¤º¸¿¡¼­ °£´ÜÈ÷ ÆľÇÇÒ ¼öµµ ÀÖ´Ù.

[¿¡¾îÄÚ¸®¾Æ ¹Ì¼¼¸ÕÁö ÃøÁ¤¼ÒÁ¤º¸]

Áöµµ¿¡¼­ ¿øÇÏ´Â Áö¿ª(ex ÀÎõ, °æ±â, ¼­¿ï, ...)À» Ŭ¸¯ÇÏ°í ¿·¿¡ ³ª¿À´Â ÃøÁ¤¼Ò ¸íÀ¸·Î ÀÔ·ÂÇؼ­ Å×½ºÆ®Çغ¸¸é µÈ´Ù.


7. ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÑ Å×½ºÆ®

ÀÌÁ¦ º¸³¾ ¸Þ½ÃÁöµµ ¾Ë¾Ò°í ¸Þ½ÃÁöÀÇ ÀǹÌ(ÆĶó¹ÌÅÍ)µµ ¾Ë¾Ò°í api key ±îÁö ¾ò¾úÀ¸´Ï ¸ðµç Áغñ°¡ µÇ¾ú´Ù.

ÀÌÁ¦ ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î § ÇÁ·Î±×·¥ÀÌµç ±×³É ºê¶ó¿ìÀú¿¡¼­ Å×½ºÆ®¸¸ Çغ¸µç ¿äûÇÒ °Í¸¸ ³²¾Ò´Ù.

[ºê¶ó¿ìÀú Å×½ºÆ® json, ºê¶ó¿ìÀú Å×½ºÆ® xml]

[ÀÚ¹Ù ¼Ò½º json, ÀÚ¹Ù ¼Ò½º xml]

º¸´Ù½ÃÇÇ ºê¶ó¿ìÀúÀÇ URLâ¿¡´Ù°¡ Á÷Á¢ ¸Þ½ÃÁö(GET¹æ½Ä)¸¦ ³¯·Áµµ ÀÀ´äÀÌ ¿À´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ°í, ÀÚ¹Ù·Î °£´ÜÇÏ°Ô ¼Ò½º¸¦ ¸¸µé¾î¼­ ¿äûÇصµ ¹Þ¾ÆÁö´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

ÀÚ¹Ù »Ó¸¸¾Æ´Ï¶ó ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ȤÀº ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ À§¿Í À¯»çÇÑ ¹æ½ÄÀ¸·Î API¸¦ È£ÃâÇÏ°í °á°ú¸¦ ¸®ÅÏÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

³¡À¸·Î APIÈ£ÃâÇÏ´Â »ùÇà ÀÚ¹Ù¼Ò½º¸¦ Á¦°øÇÑ´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class OpenApi {
    public static void main(String[] args) {
        BufferedReader br = null;
        try{            
            String urlstr = "http://openapi.airkorea.or.kr/"
                    + "openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty"
                    + "?stationName=¼ö³»µ¿&dataTerm=month&pageNo=1&numOfRows=10&ServiceKey=¼­ºñ½ºÅ°&ver=1.3";
            URL url = new URL(urlstr);
            HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();
            urlconnection.setRequestMethod("GET");
            br = new BufferedReader(new InputStreamReader(urlconnection.getInputStream(),"UTF-8"));
            String result = "";
            String line;
            while((line = br.readLine()) != null) {
                result = result + line + "\n";
            }
            System.out.println(result);
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}
cs

ÆĶó¹ÌÅÍ¿¡¼­ "ServiceKey=~" ºÎºÐ¸¸ ÀÚ½ÅÀÇ api key·Î °íÄ¡¸é ¾ÆÁÖ Àß µ¿ÀÛÇÑ´Ù.



Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]

Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]

Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]

Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]

Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]