๊ธฐ์ ์ ๋ณด๋ฅผ ์์งํ๋ ๋ฐฉ๋ฒ
๊ณต๊ณต API ์กฐ์ฌ
๋จผ์ ๋ค๋ฅธ ์ฑ์ฉ ํ๋ซํผ๋ค์ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ๊ธฐ์ ์ ๋ณด๋ฅผ ์์งํ๊ณ ์๋์ง ์กฐ์ฌ๋ฅผ ์์ํ์ต๋๋ค. ๋๋ถ๋ถ์ ํ๋ซํผ๋ค์ด ๋ฐ์ดํฐ์ ์ถ์ฒ๋ฅผ ๋ช ์ํด ๋์ ์กฐ์ฌํ๊ธฐ๋ ์์ํ๋๋ฐ, ์ฝ 6๊ฐ์ ํ๋ซํผ์ ์ดํด๋ณธ ๊ฒฐ๊ณผ ๋ํ์ ์ผ๋ก ๋์ด์ค(NICE), ๊ธ์ต๊ฐ๋ ์(FSS), ๊ธ์ต์์ํ(FSC), ๊ทธ๋ฆฌ๊ณ ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ(NPS) ๋ฑ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณต๋ฐ๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋์๊ฐ ์ค์๋ฒค์ฒ 24, ์๋ฆฌ์ค, ํด๋ฆฐ์์ด ๋ฑ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
๊ฐ ๋ฐ์ดํฐ ์ถ์ฒ์ ์น์ฌ์ดํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋์ด์ค(NICE): https://www.niceinfo.co.kr/main.nice
- ๊ธ์ต๊ฐ๋ ์(FSS): https://opendart.fss.or.kr/guide/main.do?apiGrpCd=DS001
- ๊ธ์ต์์ํ(FSC): https://www.fsc.go.kr/in060101
- ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ(NPS): https://www.data.go.kr/data/3046071/openapi.do
๊ฐ ๊ณต๊ณต ๋ฐ์ดํฐ๋ง๋ค ์ ๊ณตํ๋ ์ ๋ณด๊ฐ ์๋ก ์ค๋ณต๋๋ ๋ถ๋ถ๋ ์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํน์ ๋ฐ์ดํฐ๋ฅผ ํน์ ์ถ์ฒ์์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์๋์ ์ถ์ฒ ๊ทธ๋๋ก ํน์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
- ๋์ด์ค(NICE): ๊ธฐ๋ณธ ์ ๋ณด
- ๊ธ์ต๊ฐ๋ ์(FSS): ์ฌ๋ฌด ์ ๋ณด, ์ฐ๋ด ์ ๋ณด, ์ง์ ์ ๋ณด
- ๊ธ์ต์์ํ(FSC): ์ฐ๋ด ์ ๋ณด, ์ง์ ์ ๋ณด
- ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ(NPS): ์ง์ ์ ๋ณด
๊ณต๊ณต API ํ์ฉ
๊ธฐํ๋จ๊ณ๋ง ๋ณด๋ฉด API๋ฅผ ๊ทธ๋๋ก ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ณด์ฌ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง, ์ค์ ์ ์ฉ ๊ณผ์ ์์๋ ์๊ฐ๋ณด๋ค ์ฌ๋ฌ ์ํ์ฐฉ์ค์ ๊ณ ๋ฏผ์ ๊ฒช๊ฒ ๋ฉ๋๋ค.
๊ฐ ๊ณต๊ณต API๋ฅผ ํ ๋ฒ์ฉ ์ธ๋ฐํ๊ฒ ์ดํด๋ด ์๋ค.
๊ธ์ต๊ฐ๋ ์(FSS) ๊ณ ์ ๋ฒํธ ์กฐํ
๋จผ์ ๊ธ์ต๊ฐ๋ ์(FSS, ์ดํ '๊ธ๊ฐ์')์์ ์ ๊ณตํ๋ API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ๋ชจ๋ API ์์ฒญ์์ ๊ธ๊ฐ์์์ ์ ์ํ ๊ธฐ์ ์ ๊ณ ์ ๋ฒํธ๊ฐ ํ์ ์์ฒญ์ธ์๋ก ๋ค์ด๊ฐ์ผ ํฉ๋๋ค.
๋ฌธ์ ๋ ๊ธ๊ฐ์ API๋ฅผ ํตํด์๋ ๊ณ ์ ๋ฒํธ๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ด '๊ณ ์ ๋ฒํธ์กฐํ API' ๋ฐ์ ์๋ค๋ ์ ์ธ๋ฐ, ๋ช ์ธ๋ฅผ ๋ณด๋ฉด ๋งค์ฐ ๋ถํธํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ํด๋น API๋ ํน์ ๊ธฐ์ ์ ๋ํ ๊ณ ์ ๋ฒํธ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์๋๋ผ ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋ ๊ธฐ์ ์ ๊ณ ์ ๋ฒํธ๊ฐ ๊ธฐ๋ก๋ XML ํ์ผ์ ์์ถ๋ ZIP ํ์ผ ํํ๋ก ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ์ง์ด ์ด XML ํ์ผ์์ ๊ณ ์ ๋ฒํธ์ ๋งคํ๋ ๊ฐ์ด ์ฌ์ ์๋ฑ๋ก๋ฒํธ๋ ๋ฒ์ธ๋ฑ๋ก๋ฒํธ๊ฐ ์๋ ๊ธฐ์ ๋ช ์ด๋ผ๋ ์ ์ด ๋ฌธ์ ์ธ๋ฐ, ๊ธฐ์กด์ '(์ฃผ)๋ง์ด๋ค์ค์์ดํฐ', '(์ )๊ตฌ๊ธ์ฝ๋ฆฌ์' ๋ฑ๊ณผ ๊ฐ์ ํ์์ผ๋ก ๊ธฐ์ ๋ช ์ ์ ์ฅํ๊ณ ์๋ค๋ฉด ๊ณ ์ ๋ฒํธ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ์ฑ ๊ณผ์ ์ด ํ์ํ๊ฒ ๋ฉ๋๋ค. ๋ํ 'SKํ์ด๋์ค'๋ฅผ '์์ค์ผ์ดํ์ด๋์ค'์ ๊ฐ์ด ๊ธฐ์ ๋ช ์ ์๋ฌธ์ ํ๊ธ๋ก ๊ธฐ๋กํด ๋์ ์ผ์ด์ค์ ๊ฒฝ์ฐ์๋ ์ด๋ฅผ ๋ค์ ๋ณํํ๋ ๊ณผ์ ์ด ์ถ๊ฐ๋ก ํ์ํฉ๋๋ค.
์ด๋ฐ ์ ๋ค๋ก ์ธํด ๊ณ ์ ๋ฒํธ๋ฅผ ์ ์ฅํ๋ ๊ณผ์ ์ด ์๋นํ ๊น๋ค๋ก์ฐ๋ฉฐ, ๊ธฐ์ ๋ช ์ ํ์ฑํ๊ณ ๋ณํํ๋ ๊ณผ์ ์์ ์์์น ๋ชปํ ์ผ์ด์ค๊น์ง ๊ณ ๋ คํ๋ค ๋ณด๋ฉด, ํด๋น ๊ณ ์ ๋ฒํธ๊ฐ ์ง์ง ํด๋น ๊ธฐ์ ์ ํด๋นํ๋ ๋ฒํธ๋ก ์ ์ฅ๋๋์ง์ ๋ํ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์์ฌํ๊ฒ ๋ฉ๋๋ค.
๋ฌด๊ฒฐ์ฑ์ ์กฐ๊ธ์ด๋๋ง ์งํค๊ธฐ ์ํด์๋ ๊ธฐ์ ๊ฐํฉ API๋ฅผ ํตํด XMLํ์ผ์ ์กด์ฌํ๋ ๋ชจ๋ ๊ณ ์ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ๋ฒ์ฉ ํธ์ถํ์ฌ ์๋ต๊ฐ์ผ๋ก ๋ด๋ ค์ค๋ ์ฌ์ ์๋ฑ๋ก๋ฒํธ์ ๋ฒ์ธ๋ฑ๋ก๋ฒํธ๋ก ๊ต์ฐจ๊ฒ์ฆ์ ์งํํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด ๊ณผ์ ์์๋ ๊ตญ๋ด๊ธฐ์ ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ ์ ๋ฑ๋ก๋ฒํธ๊ฐ "123456789"์ ๊ฐ์ด 10์๋ฆฌ์ ์ซ์๋ง ์ค๋ ๊ฒ๋ ์๊ณ , "123-45-67890"์ ๊ฐ์ด ํ์ดํฐ(-)์ด ํฌํจ๋ ํํ๋ก ์ค๋ ๊ฒฝ์ฐ์, null์ด๋ ๋น ๋ฌธ์์ด("")๋ก ์ค๋ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ ๋ง์ ์์ธ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๊ธ๊ฐ์์ ๊ณ ์ ๋ฒํธ๋ฅผ ์ป๊ธฐ ์ํ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๊ธ์ต์์ํ(FSC) API๋ฅผ ํตํด ๋ฒ์ธ๋ฑ๋ก๋ฒํธ๋ก ๊ณ ์ ๋ฒํธ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด์ ๋ํด์๋ ์๋์์ ์์ ํ๊ฒ ์ต๋๋ค.
๊ธ์ต๊ฐ๋ ์(FSS) ์ฌ๋ฌด์ ๋ณด & ์ธ์์ ๋ณด ์กฐํ
์ด์ ๊ณ ์ ๋ฒํธ๋ฅผ ์ป์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌด์ ๋ณด์กฐํ API์ ์ง์ํํฉ API๋ฅผ ํตํด์ ์ฌ๋ฌด์ ๋ณด์ ์ฐ๋ด์ ๋ณด ๋ฑ์ ์กฐํํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด API๋ค์ ์ฌ์ฉํ ๋๋ ๋ค์ํ ์์ธ์ผ์ด์ค๋ค์ ๊ณ ๋ คํด์ผ ํ๋๋ฐ, ํนํ ์ง์ํํฉ API์ ๊ฒฝ์ฐ๊ฐ ๊ณ ๋ คํด์ผ ํ ์ ๋ค์ด ๋ง์ต๋๋ค.
๋ช ์ธ ๋ถ๋ถ์ ํ์ธ ํ, ์ผ์ฑ์ ์์ ์ง์ํํฉ์ ์กฐํํ์ ๋ ์๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
"status": "000",
"message": "์ ์",
"list": [
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "๋จ",
"fo_bbm": "DX",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "38,023",
"rgllbr_abacpt_labrr_co": "-",
"cnttk_co": "333",
"cnttk_abacpt_labrr_co": "-",
"sm": "38,356",
"avrg_cnwk_sdytrn": "16.0",
"fyer_salary_totamt": "-",
"jan_salary_am": "-",
"rm": "-"
},
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "์ฌ",
"fo_bbm": "DX",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "11,948",
"rgllbr_abacpt_labrr_co": "223",
"cnttk_co": "94",
"cnttk_abacpt_labrr_co": "-",
"sm": "12,042",
"avrg_cnwk_sdytrn": "12.8",
"fyer_salary_totamt": "-",
"jan_salary_am": "-",
"rm": "-"
},
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "๋จ",
"fo_bbm": "DS",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "51,079",
"rgllbr_abacpt_labrr_co": "-",
"cnttk_co": "126",
"cnttk_abacpt_labrr_co": "-",
"sm": "51,205",
"avrg_cnwk_sdytrn": "10.5",
"fyer_salary_totamt": "-",
"jan_salary_am": "-",
"rm": "-"
},
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "์ฌ",
"fo_bbm": "DS",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "19,777",
"rgllbr_abacpt_labrr_co": "181",
"cnttk_co": "24",
"cnttk_abacpt_labrr_co": "-",
"sm": "19,801",
"avrg_cnwk_sdytrn": "10.7",
"fyer_salary_totamt": "-",
"jan_salary_am": "-",
"rm": "-"
},
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "๋จ",
"fo_bbm": "์ฑ๋ณํฉ๊ณ",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "89,102",
"rgllbr_abacpt_labrr_co": "-",
"cnttk_co": "459",
"cnttk_abacpt_labrr_co": "-",
"sm": "89,561",
"avrg_cnwk_sdytrn": "12.9",
"fyer_salary_totamt": "12,408,336,000,000",
"jan_salary_am": "143,000,000",
"rm": "-"
},
{
"rcept_no": "20230307000542",
"corp_cls": "Y",
"corp_code": "00126380",
"corp_name": "์ผ์ฑ์ ์",
"sexdstn": "์ฌ",
"fo_bbm": "์ฑ๋ณํฉ๊ณ",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "31,725",
"rgllbr_abacpt_labrr_co": "404",
"cnttk_co": "118",
"cnttk_abacpt_labrr_co": "-",
"sm": "31,843",
"avrg_cnwk_sdytrn": "11.5",
"fyer_salary_totamt": "3,189,421,000,000",
"jan_salary_am": "110,000,000",
"rm": "-"
}
]
}
์ง์ํํฉ API์ ์๋ต๊ฐ์ ์ดํด๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์ ๋ค์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ์ผ์ฑ์ ์ ์ ์ฒด์ ํด๋นํ๋ ๊ฐ๋ค๋ง ๋์ค๋ ๊ฒ์ด ์๋๋ผ, 'fo_bbm'์ ํตํด ์ฌ์ ๋ถ๋ฌธ๋ณ๋ก ๋์จ๋ค.
- 'fo_bbm(์ฌ์ ๋ถ๋ถ)'์ '์ฑ๋ณํฉ๊ณ'๋ผ๋ ๊ฐ์ ํตํด ์ ์ฒด ๋ถ๋ฌธ์ ํ์ธํ ์ ์๋ค.
- ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ '-' ์ฒ๋ฆฌ๋์ด ์๋ค.
- ์ฐ๋ด ์ ๋ณด์ ๊ฐ์ ํน์ ๊ฐ๋ค์ ','๋ก ์ฒ๋ฆฌ๋์ด ์๋ค.
์ ์ฒ๋ฆฌ๋ ํ๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ผ์ฑ์ ์ ์ ์ฒด์ ํด๋นํ๋ ์ง์์ ์ฐ๋ด ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด 'fo_bbm'์ด '์ฑ๋ณํฉ๊ณ'์ด๊ณ , 'sexdstn'์ด '๋จ'๊ณผ '์ฌ'์ธ ๊ฒฝ์ฐ๋ง ๋ฝ์๋ด์ด ์๋์ ์์ ํตํด ๊ณ์ฐํ ์ ์์ต๋๋ค.
(๋จ์ 1์ธ ํ๊ท ์ฐ๋ด * ๋จ์์ง์์) + (์ฌ์ 1์ธ ํ๊ท ์ฐ๋ด *์ฌ์์ง์์) / (๋จ์์ง์์ + ์ฌ์์ง์์)
ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ์์ ์ผ์ฑ์ ์์ ๊ฐ์ด ์๋ต๊ฐ์ด ๋ด๋ ค์ฌ ๋๋ง ์ ์ฉ๊ฐ๋ฅ ํ ๊ฒ์ผ๋ก, ๋ค๋ฅธ ๊ธฐ์ ์ ์กฐํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๋ต๊ฐ์ด ๋ค๋ฅด๊ฒ ์กฐํ๋ฉ๋๋ค.
{
"status": "000",
"message": "์ ์",
"list": [
{
"rcept_no": "20230315001173",
"corp_cls": "Y",
"corp_code": "00172291",
"corp_name": "๋์กด๋น์ฆ์จ",
"sexdstn": "๋จ",
"fo_bbm": "๋ณธ์ฌ",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "1,083",
"rgllbr_abacpt_labrr_co": "-",
"cnttk_co": "20",
"cnttk_abacpt_labrr_co": "-",
"sm": "1,103",
"avrg_cnwk_sdytrn": "6๋
2๊ฐ์",
"fyer_salary_totamt": "61,933,000,000",
"jan_salary_am": "59,000,000",
"rm": "-"
},
{
"rcept_no": "20230315001173",
"corp_cls": "Y",
"corp_code": "00172291",
"corp_name": "๋์กด๋น์ฆ์จ",
"sexdstn": "์ฌ",
"fo_bbm": "๋ณธ์ฌ",
"reform_bfe_emp_co_rgllbr": "-",
"reform_bfe_emp_co_cnttk": "-",
"reform_bfe_emp_co_etc": "-",
"rgllbr_co": "631",
"rgllbr_abacpt_labrr_co": "-",
"cnttk_co": "24",
"cnttk_abacpt_labrr_co": "-",
"sm": "655",
"avrg_cnwk_sdytrn": "4๋
8๊ฐ์",
"fyer_salary_totamt": "27,731,000,000",
"jan_salary_am": "47,000,000",
"rm": "-"
}
]
}
์๋ต์ ๋ณด๋ฉด, ๋ช ์ธ์ ๋ฌ๋ฆฌ 'ํ๊ท ๊ทผ์์ฐ์(avrg_cnwk_sdytrn)'๊ฐ 'x๋ x๊ฐ์'๋ก ์๋ต๋๊ฑฐ๋, 'fo_bbm'๋ '์ฑ๋ณ์ ์ฒด'๊ฐ ์๋๋ผ '๋ณธ์ฌ'๋ก ํ๊ธฐ๋๋ ๋ฑ ์์๊ณผ ๋ค๋ฅด๊ฒ ๋์ต๋๋ค.
๋ฐ๋ผ์ ๊ธ๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ๋๋ ๋ช ์ธ์๋ง ์์กดํ์ฌ ๊ฐ๋ฐํ์ง ์๊ณ , ์ค์ ๋ก ์ฌ๋ฌ ์๋ต๊ฐ์ ์ง์ ํ์ธํ์ฌ ์ด์ ๋ฐ๋ฅธ ๋ค์ํ ์์ธ ์ผ์ด์ค์ฒ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ํ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ํ ๊ธ๊ฐ์์ ๊ฒฝ์ฐ ์๋น์ค์ ์์ ์ ์ธ ์ด์์ ์ํ์ฌ ์ด์ฉํ๋๊ฐ ์กด์ฌํ๋ ์ด ๋ถ๋ถ๋ ๊ผญ ์ฐธ๊ณ ํด์ ์งํํด์ผ ํฉ๋๋ค.
๊ธ์ต์์ํ(FSC)
๊ธ์ต์์ํ(FSC, ์ดํ '๊ธ์ต์')๋ ๊ธ๊ฐ์์ ์์ ์กฐ์ง์ผ๋ก, ๊ธ๊ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธ์ต์์ํ ์ฐํ์ ํน์๋ฒ์ธ์ ๋๋ค. ๋ณ๋๋ก ๋ฌธ์์ ๋ช ์๋์ด ์์ง๋ ์์ง๋ง, ์ ์ฅ๋ ๋ฐ์ดํฐ ์กฐํํ์ฌ ์ดํด๋ณธ ๊ฒฐ๊ณผ ์ฐ๋ด์ ๋ณด์ ๊ฐ์ด ์์ชฝ์์ ๋์ผํ๊ฒ ์ป์ ์ ์๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๊ธ๊ฐ์์ ์๋ ์ ๋ณด๋ ๋๋ถ๋ถ ๊ธ์ต์ API์์๋ ์กฐํ๊ฐ ๊ฐ๋ฅํ๊ณ , ๋ฐ๋๋ก ๊ธ์ต์์์ ์กฐํ๋๋ ์ ๋ณด๋ ๊ธ๊ฐ์ API๋ฅผ ํตํด ์กฐํ๊ฐ ๊ฐ๋ฅํ๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค.
์ฌ์ฉํ๋ฉด์ ๋๋ ์ ์ ๊ธ๊ฐ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋์ ์ผ๋ก ํฐ ๊ท๋ชจ์ ๊ธฐ์ ์ ๋ํ ๋ฐ์ดํฐ๋ง ๊ฐ์ง๊ณ ์์๊ณ , ์์ ๊ท๋ชจ์ ๊ธฐ์ ๋ค์ ๋ํ ๋ฐ์ดํฐ๋ ์ ์กฐํ๋์ง ์์์ต๋๋ค.
๊ธ์ต์์ ๊ธฐ์ ๊ธฐ๋ณธ์ ๋ณด API๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ฒ์ธ ๋ฑ๋ก๋ฒํธ๋ฅผ ํ์ ์์ฒญ๊ฐ์ผ๋ก ํ์ฌ ๊ธฐ์ ์ ๊ธฐ๋ณธ ์ ๋ณด์ ํจ๊ป '๊ธ๊ฐ์์ ๊ณ ์ ๋ฒํธ'์ '๊ธฐ์ 1์ธํ๊ท ์ฐ๋ด'์ ์ป์ ์ ์์ต๋๋ค.
๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ(NPS)
๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ(NPS, ์ดํ '๊ตญ๋ฏผ์ฐ๊ธ') API๋ฅผ ํ์ฉํ๋ฉด, ์๋ณ ์ง์ ์ ๋ณด(์ด ์ธ์ ์, ์ ์ฌ์ ์, ํด์ง์ ์)๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ฅผ ํ์ฉ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์ฝ๊ฐ์ ์ ์ฒ๋ฆฌ ์์ ์ด ํ์ํฉ๋๋ค.
๊ตญ๋ฏผ์ฐ๊ธ์์ ์๋ณ ์ง์ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด์๋ ์๋ ์ธ API๋ฅผ ์ ๋ถ ํ์ฉํด์ผ ํฉ๋๋ค.
- ์ฌ์ ์ฅ ๊ธฐ๋ณธ์ ๋ณด ์กฐํ(์๋ณ๋ฒํธ)
- ์์ธ ์ ๋ณด์กฐํ(์ด ์ง์์)
- ๊ธฐ๊ฐ๋ณ ํํฉ ์ ๋ณด์กฐํ(์๋ณ ์ทจ์ ์ ์, ์๋ณ ํด์ง์ ์)
ํนํ, ๊ตญ๋ฏผ์ฐ๊ธ์์ ํน์ ๊ธฐ์ ์ ์์ธ ์ ๋ณด์ ๊ธฐ๊ฐ๋ณ ํํฉ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด์ , ๊ธ๊ฐ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ตญ๋ฏผ์ฐ๊ธ์์ ์ ์ํ ๊ณ ์ ํ ์๋ณ๋ฒํธ(seq)๋ฅผ ์์ฒญ ์ธ์๋ก ๋ณด๋ด์ผ ํฉ๋๋ค.
์๋ณ๋ฒํธ(seq)๋ฅผ ์ป๊ธฐ ์ํ ์ฌ์ ์ฅ '์ฌ์ ์ฅ ๊ธฐ๋ณธ์ ๋ณด ์กฐํ API'์ ๋ช ์ธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ฒญ ๋ณ์์๋ '์ฌ์ ์๋ช '์ด ํ์์ด๊ณ , '๋ฒ์ ๋์ฝ๋'์ '์ฌ์ ์๋ฑ๋ก๋ฒํธ'๋ ์ต์ ์ผ๋ก ๋ค์ด๊ฐ๋๋ค. ํ์๊ฐ์ธ '์ฌ์ ์๋ช '๋ง ์ ๋ ฅํ๊ณ ์์ฒญํ๋ฉด ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ต๊ฐ์ผ๋ก ์กฐํ๋ฉ๋๋ค.
...
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202204</dataCrtYm>
<ldongAddrMgplDgCd>30</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>200</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>124</ldongAddrMgplSgguEmdCd>
<seq>39196607</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)-(์ผ์ฉ)๋ฆฌ๋ชจ๋ธ๋ง 3๋จ๊ณ(์์ฉ๊ณตํ๋) ๊ณต์ฌ ๋๋๋ฐฉ๊ธฐ ๊ตฌ๋งค์ค์น</wkplNm>
<wkplRoadNmDtlAddr>๋์ ๊ด์ญ์ ์ ์ฑ๊ตฌ ๋ํ๋ก</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202202</dataCrtYm>
<ldongAddrMgplDgCd>27</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>140</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>115</ldongAddrMgplSgguEmdCd>
<seq>37992726</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)/ ์ผ์ฉ/ ๋๊ตฌ๋ฐ์ผ์์ด๋ฑํ๊ต ์ธ 11๊ต ๋๋๋ฐฉ๊ธฐ ๊ตฌ์
์ค์น</wkplNm>
<wkplRoadNmDtlAddr>๋๊ตฌ๊ด์ญ์ ๋๊ตฌ ์์ฌ๋ก49๊ธธ</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202110</dataCrtYm>
<ldongAddrMgplDgCd>26</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>440</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>114</ldongAddrMgplSgguEmdCd>
<seq>35956727</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ๏ผ-(์ผ์ฉ)๋ถ์ฐํ
ํฌ๋
ธํํฌ์์คํ
๋๋๋ฐฉ๊ธฐ๊ตฌ๋งค</wkplNm>
<wkplRoadNmDtlAddr>๋ถ์ฐ๊ด์ญ์ ๊ฐ์๊ตฌ ๊ณผํ์ฐ๋จ1๋ก60๋ฒ๊ธธ</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202302</dataCrtYm>
<ldongAddrMgplDgCd>41</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>117</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>101</ldongAddrMgplSgguEmdCd>
<seq>44689804</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)</wkplNm>
<wkplRoadNmDtlAddr>๊ฒฝ๊ธฐ๋ ์์์ ์ํต๊ตฌ ์ผ์ฑ๋ก</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
</items>
...
์์ธํ ๋ณด๋ฉด ๋ญ๊ฐ ์ด์ํฉ๋๋ค. ๋ด๋ ค์จ ๋ฐ์ดํฐ์๋ ์ผ์ฑ์ ์ ๋ณธ์ฌ๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ๊ณต์ฅ๋ค์ ์ ๋ณด๊น์ง ํฌํจ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ํ๋ ๋ณธ์ฌ ๋ฐ์ดํฐ๋ง์ ์ป๊ธฐ ์ํด์๋ ์ฌ์ค์ '๋ฒ์ ๋์ฝ๋'๋ฅผ ํ์์ ์ผ๋ก ์ ๋ ฅํ์ฌ ์์ฒญํด์ผ ํฉ๋๋ค.
์ด๋ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ํฌ๋ ๊ธฐ์ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ณด๋ NICE์ ์์กดํ๊ณ ์๋๋ฐ, ์ฌ์ฉํ๊ณ ์๋ NICE API์์๋ ๋ฒ์ ๋์ฝ๋๋ ์ ๊ณตํ์ง ์์์ต๋๋ค. ๊ตญ๋ฏผ์ฐ๊ธ์์ ์ํ๋ ๋ณธ์ฌ ๋ฐ์ดํฐ๋ง์ ์ป๊ธฐ ์ํด์ ๋ฒ์ ๋์ฝ๋๊ฐ ํ์๋ก ์๊ตฌ๋๋ ๋งํผ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ์์ ์ฐพ์์ผ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ ๋ฒ์ ๋ ์ฝ๋๋ฅผ ์ป์ ์ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐพ์๋์ต๋๋ค.
์ด ๋ API ๋ชจ๋ ๋ฒ์ ๋์ฝ๋๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์นด์นด์ค API๋ ์๊ฒฝ๋ ์ขํ๋ฅผ ์ด์ฉํ์ฌ ๋ฒ์ ๋์ฝ๋๋ฅผ ์ฐพ์ ์ ์๊ณ , ํ์ ์์ ๋ถ API๋ ์ฃผ์๋ฅผ ํตํด ๋ฒ์ ๋์ฝ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ์ ์ ํํด๋ ์ป์ ์ ์์ง๋ง, ์ด๋ฏธ ๊ณต๊ณต ๋ฐ์ดํฐ๋ก ์ธํด ์ฝ๊ฐ์ ํผ๋ก๊ฐ์ ๋๊ผ๊ณ , ํธ๋ํฝ ์ ํ์ด ํฌ๊ฒ ์๋ ์นด์นด์ค API๋ฅผ ์ ํํ์ฌ ๋ฒ์ ๋์ฝ๋๋ฅผ ์ป๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ด์ ๋ฒ์ ๋ ์ฝ๋๋ฅผ ์ ๋ ฅํ์ฌ ์กฐํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ ๋ณธ์ฌ์ ์ ๋ณด๋ง ์ ํํ๊ฒ ์ป์ด์ฌ ์ ์์ต๋๋ค.
...
<items>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202302</dataCrtYm>
<ldongAddrMgplDgCd>41</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>117</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>101</ldongAddrMgplSgguEmdCd>
<seq>44689804</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)</wkplNm>
<wkplRoadNmDtlAddr>๊ฒฝ๊ธฐ๋ ์์์ ์ํต๊ตฌ ์ผ์ฑ๋ก</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202303</dataCrtYm>
<ldongAddrMgplDgCd>41</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>117</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>101</ldongAddrMgplSgguEmdCd>
<seq>44689806</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)</wkplNm>
<wkplRoadNmDtlAddr>๊ฒฝ๊ธฐ๋ ์์์ ์ํต๊ตฌ ์ผ์ฑ๋ก</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
<item>
<bzowrRgstNo>124810****</bzowrRgstNo>
<dataCrtYm>202304</dataCrtYm>
<ldongAddrMgplDgCd>41</ldongAddrMgplDgCd>
<ldongAddrMgplSgguCd>117</ldongAddrMgplSgguCd>
<ldongAddrMgplSgguEmdCd>101</ldongAddrMgplSgguEmdCd>
<seq>44689809</seq>
<wkplJnngStcd>1</wkplJnngStcd>
<wkplNm>์ผ์ฑ์ ์(์ฃผ)</wkplNm>
<wkplRoadNmDtlAddr>๊ฒฝ๊ธฐ๋ ์์์ ์ํต๊ตฌ ์ผ์ฑ๋ก</wkplRoadNmDtlAddr>
<wkplStylDvcd>1</wkplStylDvcd>
</item>
</items>
...
์ด์ '์๋ฃ์์ฑ๋ ์(dataCrtYm)'๋ฅผ ํตํด ํด๋น ์ฐ๋์ ์์ ํ์ ํ๊ณ '์๋ณ๋ฒํธ(seq)'๋ฅผ ์ด์ฉํด '์ฌ์ ์ฅ ์์ธ์ ๋ณด ์กฐํ API'๋ฅผ ํตํด '์ด ์ง์ ์'๋ฅผ, ๊ทธ๋ฆฌ๊ณ '๊ธฐ๊ฐ๋ณ ํํฉ ์ ๋ณด์กฐํ API'๋ฅผ ํตํด '์๋ณ ์ทจ์ ์ ์์ ์๋ณ ํด์ง์ ์'๋ฅผ ์ป์ ์ ์์ต๋๋ค (์ ๊ตณ์ด ๋ ๊ฐ๋ก ๊ตฌ๋ณํ๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค).
๊ณต๊ณต๋ฐ์ดํฐํฌํธ API์ ๊ณ ์ง์ ์ธ ๋ฌธ์
๊ธ์ต๊ฐ๋ ์(opendart)์์ ์ ๊ณตํ๋ API๋ฅผ ์ ์ธํ๊ณ , ๊ณต๊ณต๋ฐ์ดํฐํฌํธ(data.go.kr/api)์์ ์ ๊ณตํ๋ ๊ธ์ต์์ํ, ๊ตญ๋ฏผ์ฐ๊ธ๊ณต๋จ์ ํฌํจํ ๋ชจ๋ API๋ค์ ๊ฐ๋ฐ์๋ค์ ๊ดด๋กญํ๋ ๋ช ๊ฐ์ง ๊ณ ์ง์ ์ธ ๋ฌธ์ ๋ค์ด ์กด์ฌํฉ๋๋ค.
1. ๊ฐํ์ ์ผ๋ก 'SERVICE_KEY_IS_NOT_REGISTERED_ERROR'๊ฐ ๋ฐ์
<OpenAPI_ServiceResponse>
<cmmMsgHeader>
<errMsg>SERVICE ERROR</errMsg>
<returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>
<returnReasonCode>30</returnReasonCode>
</cmmMsgHeader>
</OpenAPI_ServiceResponse>
๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ์ ๋ฌธ์ํ๊ธฐ ์น์ ์๋ 'SERVICE_KEY_IS_NOT_REGISTERED_ERROR' ์ค๋ฅ์ ๋ํ ์ค๋ช ์ด ์์ต๋๋ค. ์ด ์ค๋ฅ๋ ์๋ชป๋ ์ธ์ฆํค๋ฅผ ์ฌ์ฉํ์ฌ ํธ์ถํ๊ฑฐ๋, ์ธ์ฆ ๊ธฐ๊ด ์๋ฒ์ ๋๊ธฐํ๋์ง ์์์ ๋ ๋ฐ์ํ๋ค๊ณ ๋ช ์๋์ด ์์ต๋๋ค. ํ์ง๋ง ๋ถ๊ณผ ๋ฐฉ๊ธ ์ ๊น์ง ์ ์์ ์ผ๋ก ํธ์ถ๋๋ ๋์ผํ ์ธ์ฆํค๋ฅผ ๊ฐ์ง๊ณ API๋ฅผ ํธ์ถํ์์๋ ๋ถ๊ตฌํ๊ณ , 10๋ฒ ์ค 1๋ฒ์ '์ธ์ฆํค๊ฐ ์ฌ๋ฐ๋ฅด์ง ์๋ค'๋ ์ค๋ฅ๊ฐ ๊ฐํ์ ์ผ๋ก ๋ฐ์ํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ API Retry ์ ๋ต์ ํตํด ์ฌ์์ฒญํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์ง๋ง, ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ช ๋ ์ ๋ถํฐ ๋ง์ ์ด์ฉ์๋ค์ ์ํด ์ง๋ฌธ ๊ฒ์ํ์ ๋ฌธ์๋์์์๋ ๋ถ๊ตฌํ๊ณ ์์ง๊น์ง ํด๊ฒฐ๋์ง ์์ ๊ฒ์ ๋ณด๋ฉด ํฌํธ ๋ด๋น์๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ ์์ง๊ฐ ์์ด ๋ณด์์ต๋๋ค.
2. ์์ฒญ์ ๊ฒฐ๊ณผ๋ ์ค์ง XML ํ์์ ๋ฐ๋ ๊ฐ์ ํตํด์๋ง ํ์ธ ๊ฐ๋ฅ
๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ API๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ, ํด๋น API๊ฐ JSON ํ์ ์ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ง์ํ๋๋ผ๋ ์ค๋ฅ ๋ฉ์์ง๋ ๋ฌด์กฐ๊ฑด XML ํ์์ผ๋ก๋ง ์ถ๋ ฅ๋ฉ๋๋ค. ๋ํ ์ค๋ฅ์ ์ข ๋ฅ์ ๊ด๊ณ์์ด HTTP ์ํ ์ฝ๋๋ ํญ์ 200์ผ๋ก ์๋ต๋๋ฉฐ, ์ค๋ฅ์ ๋ํ ๋ด์ฉ์ ์๋ต ๊ฒฐ๊ณผ์ ํฌํจ๋์ด ์ ๊ณต๋ฉ๋๋ค. ์ด๋ก ์ธํด HTTP ์ํ ์ฝ๋๋ฅผ ํตํด 1์ฐจ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ณ , ์๋ต ๋ณธ๋ฌธ์ ๋ฐ๋์ ํ์ธํ์ฌ ํธ์ถ์ด ์ ์์ ์ธ์ง ์๋์ง๋ฅผ ํ๋ณํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค.
์์ ๊ฐ์ ๋ฐฉ์์ ์๋ต ๋ฐฉ์์ SOAP protocol์ด๋ผ๊ณ ํ๋๋ฐ, ์ฌ์ฉํ๋ ์ ์ฅ์์ ์ฅ์ ์ ์ฌ์ค ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ ๋ฆฌ