영화진흥위원회에서 제공하는 오픈 API를 사용하여 영화진흥위원회에서 관리하는 데이터베이스에서 2022.05.20 날짜 기준으로 일별 박스오피스 내역을 가져와보자.
http://www.kobis.or.kr/kobisopenapi/homepg/main/main.do
키 발급/ 관리에 들어간 후
사용 목적 및 관리명을 임의로 작성해준다.
예) 공부 목적/ 영화 API
다시 키 발급/ 관리에 들어가면 발급된 키를 확인할 수 있다.
오픈API > 제공서비스로 들어간다.
일별 박스오피스 API를 활용해보자
Json 주소를 복사하여 붙인다.
이 부분을 발급 받은 키로 변경한다.
targetDt는 조회하고자 하는 날짜를 가져와 주는 인터페이스다.
원하는 날짜를 조회하고싶다면 'targetDt=yyyymmdd'형식으로 날짜를 입력하면된다.
cf) 크롬 extension 중 하나인 jsonview를 설치하면 위 사진처럼 데이터가 json형식으로 정렬되어 나온다.
방금 받아온 일별 박스오피스 내역을 Node.js 환경에서 데이터 출력해보자.
{
boxOfficeResult: {
boxofficeType: "일별 박스오피스",
showRange: "20220520~20220520",
dailyBoxOfficeList: [
{
rnum: "1",
rank: "1",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20204548",
movieNm: "범죄도시 2",
openDt: "2022-05-18",
salesAmt: "5535540550",
salesShare: "86.5",
salesInten: "1844127600",
salesChange: "50",
salesAcc: "15890715890",
audiCnt: "523194",
audiInten: "156971",
audiChange: "42.9",
audiAcc: "1539849",
scrnCnt: "2373",
showCnt: "12985",
},
{
rnum: "2",
rank: "2",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20212855",
movieNm: "닥터 스트레인지: 대혼돈의 멀티버스",
openDt: "2022-05-04",
salesAmt: "711470560",
salesShare: "11.1",
salesInten: "293170000",
salesChange: "70.1",
salesAcc: "55575757800",
audiCnt: "67704",
audiInten: "26015",
audiChange: "62.4",
audiAcc: "5211689",
scrnCnt: "1113",
showCnt: "4451",
},
{
rnum: "3",
rank: "3",
rankInten: "2",
rankOldAndNew: "OLD",
movieCd: "20224270",
movieNm: "배드 가이즈",
openDt: "2022-05-04",
salesAmt: "20389300",
salesShare: "0.3",
salesInten: "9347400",
salesChange: "84.7",
salesAcc: "3256822300",
audiCnt: "2396",
audiInten: "1122",
audiChange: "88.1",
audiAcc: "341853",
scrnCnt: "208",
showCnt: "258",
},
{
rnum: "4",
rank: "4",
rankInten: "-1",
rankOldAndNew: "OLD",
movieCd: "20199500",
movieNm: "뜨거운 피",
openDt: "2022-03-23",
salesAmt: "17097000",
salesShare: "0.3",
salesInten: "82000",
salesChange: "0.5",
salesAcc: "3707711970",
audiCnt: "2000",
audiInten: "0",
audiChange: "0",
audiAcc: "387191",
scrnCnt: "5",
showCnt: "7",
},
{
rnum: "5",
rank: "5",
rankInten: "-1",
rankOldAndNew: "OLD",
movieCd: "20211568",
movieNm: "아치의 노래, 정태춘",
openDt: "2022-05-18",
salesAmt: "17341900",
salesShare: "0.3",
salesInten: "2673680",
salesChange: "18.2",
salesAcc: "86934820",
audiCnt: "1675",
audiInten: "169",
audiChange: "11.2",
audiAcc: "9213",
scrnCnt: "144",
showCnt: "185",
},
{
rnum: "6",
rank: "6",
rankInten: "10",
rankOldAndNew: "OLD",
movieCd: "20223991",
movieNm: "어부바",
openDt: "2022-05-11",
salesAmt: "8730000",
salesShare: "0.1",
salesInten: "6181000",
salesChange: "242.5",
salesAcc: "156484470",
audiCnt: "1642",
audiInten: "1223",
audiChange: "291.9",
audiAcc: "18278",
scrnCnt: "30",
showCnt: "35",
},
{
rnum: "7",
rank: "7",
rankInten: "6",
rankOldAndNew: "OLD",
movieCd: "20204665",
movieNm: "EBS 댄스파티! ",
openDt: " ",
salesAmt: "5555000",
salesShare: "0.1",
salesInten: "2533000",
salesChange: "83.8",
salesAcc: "40115000",
audiCnt: "930",
audiInten: "426",
audiChange: "84.5",
audiAcc: "6907",
scrnCnt: "19",
showCnt: "19",
},
{
rnum: "8",
rank: "8",
rankInten: "-2",
rankOldAndNew: "OLD",
movieCd: "20211421",
movieNm: "매스",
openDt: "2022-05-18",
salesAmt: "7842700",
salesShare: "0.1",
salesInten: "-3243100",
salesChange: "-29.3",
salesAcc: "33332600",
audiCnt: "875",
audiInten: "-283",
audiChange: "-24.4",
audiAcc: "3524",
scrnCnt: "61",
showCnt: "97",
},
{
rnum: "9",
rank: "9",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20224782",
movieNm: "파이어스타터",
openDt: "2022-05-19",
salesAmt: "3809000",
salesShare: "0.1",
salesInten: "47000",
salesChange: "1.2",
salesAcc: "7571000",
audiCnt: "755",
audiInten: "4",
audiChange: "0.5",
audiAcc: "1506",
scrnCnt: "6",
showCnt: "6",
},
{
rnum: "10",
rank: "10",
rankInten: "8",
rankOldAndNew: "OLD",
movieCd: "20212725",
movieNm: "신비한 동물들과 덤블도어의 비밀",
openDt: "2022-04-13",
salesAmt: "7179700",
salesShare: "0.1",
salesInten: "3442100",
salesChange: "92.1",
salesAcc: "12257125480",
audiCnt: "718",
audiInten: "343",
audiChange: "91.5",
audiAcc: "1189821",
scrnCnt: "45",
showCnt: "68",
},
],
},
}
위의 데이터는 json형식이기 때문에 javascript형식으로 변환시켜야 오류가 안난다.
const boxOfficeTarget = [{
boxOfficeResult: {
boxofficeType: "일별 박스오피스",
showRange: "20220520~20220520",
dailyBoxOfficeList: [
{
rnum: "1",
rank: "1",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20204548",
movieNm: "범죄도시 2",
openDt: "2022-05-18",
salesAmt: "5535540550",
salesShare: "86.5",
salesInten: "1844127600",
salesChange: "50",
salesAcc: "15890715890",
audiCnt: "523194",
audiInten: "156971",
audiChange: "42.9",
audiAcc: "1539849",
scrnCnt: "2373",
showCnt: "12985",
},
{
rnum: "2",
rank: "2",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20212855",
movieNm: "닥터 스트레인지: 대혼돈의 멀티버스",
openDt: "2022-05-04",
salesAmt: "711470560",
salesShare: "11.1",
salesInten: "293170000",
salesChange: "70.1",
salesAcc: "55575757800",
audiCnt: "67704",
audiInten: "26015",
audiChange: "62.4",
audiAcc: "5211689",
scrnCnt: "1113",
showCnt: "4451",
},
{
rnum: "3",
rank: "3",
rankInten: "2",
rankOldAndNew: "OLD",
movieCd: "20224270",
movieNm: "배드 가이즈",
openDt: "2022-05-04",
salesAmt: "20389300",
salesShare: "0.3",
salesInten: "9347400",
salesChange: "84.7",
salesAcc: "3256822300",
audiCnt: "2396",
audiInten: "1122",
audiChange: "88.1",
audiAcc: "341853",
scrnCnt: "208",
showCnt: "258",
},
{
rnum: "4",
rank: "4",
rankInten: "-1",
rankOldAndNew: "OLD",
movieCd: "20199500",
movieNm: "뜨거운 피",
openDt: "2022-03-23",
salesAmt: "17097000",
salesShare: "0.3",
salesInten: "82000",
salesChange: "0.5",
salesAcc: "3707711970",
audiCnt: "2000",
audiInten: "0",
audiChange: "0",
audiAcc: "387191",
scrnCnt: "5",
showCnt: "7",
},
{
rnum: "5",
rank: "5",
rankInten: "-1",
rankOldAndNew: "OLD",
movieCd: "20211568",
movieNm: "아치의 노래, 정태춘",
openDt: "2022-05-18",
salesAmt: "17341900",
salesShare: "0.3",
salesInten: "2673680",
salesChange: "18.2",
salesAcc: "86934820",
audiCnt: "1675",
audiInten: "169",
audiChange: "11.2",
audiAcc: "9213",
scrnCnt: "144",
showCnt: "185",
},
{
rnum: "6",
rank: "6",
rankInten: "10",
rankOldAndNew: "OLD",
movieCd: "20223991",
movieNm: "어부바",
openDt: "2022-05-11",
salesAmt: "8730000",
salesShare: "0.1",
salesInten: "6181000",
salesChange: "242.5",
salesAcc: "156484470",
audiCnt: "1642",
audiInten: "1223",
audiChange: "291.9",
audiAcc: "18278",
scrnCnt: "30",
showCnt: "35",
},
{
rnum: "7",
rank: "7",
rankInten: "6",
rankOldAndNew: "OLD",
movieCd: "20204665",
movieNm: "EBS 댄스파티! ",
openDt: " ",
salesAmt: "5555000",
salesShare: "0.1",
salesInten: "2533000",
salesChange: "83.8",
salesAcc: "40115000",
audiCnt: "930",
audiInten: "426",
audiChange: "84.5",
audiAcc: "6907",
scrnCnt: "19",
showCnt: "19",
},
{
rnum: "8",
rank: "8",
rankInten: "-2",
rankOldAndNew: "OLD",
movieCd: "20211421",
movieNm: "매스",
openDt: "2022-05-18",
salesAmt: "7842700",
salesShare: "0.1",
salesInten: "-3243100",
salesChange: "-29.3",
salesAcc: "33332600",
audiCnt: "875",
audiInten: "-283",
audiChange: "-24.4",
audiAcc: "3524",
scrnCnt: "61",
showCnt: "97",
},
{
rnum: "9",
rank: "9",
rankInten: "0",
rankOldAndNew: "OLD",
movieCd: "20224782",
movieNm: "파이어스타터",
openDt: "2022-05-19",
salesAmt: "3809000",
salesShare: "0.1",
salesInten: "47000",
salesChange: "1.2",
salesAcc: "7571000",
audiCnt: "755",
audiInten: "4",
audiChange: "0.5",
audiAcc: "1506",
scrnCnt: "6",
showCnt: "6",
},
{
rnum: "10",
rank: "10",
rankInten: "8",
rankOldAndNew: "OLD",
movieCd: "20212725",
movieNm: "신비한 동물들과 덤블도어의 비밀",
openDt: "2022-04-13",
salesAmt: "7179700",
salesShare: "0.1",
salesInten: "3442100",
salesChange: "92.1",
salesAcc: "12257125480",
audiCnt: "718",
audiInten: "343",
audiChange: "91.5",
audiAcc: "1189821",
scrnCnt: "45",
showCnt: "68",
},
],
},
},
];
console.log(boxOfficeTarget)
방법은 간단하다 대괄호안에 담아서 배열 형태로 만들면 된다. 그리고 변수에 할당해주고 콘솔로그로 변수를 출력해보자.
안에 내용이 다 안보이는 문제가 생기는걸 볼 수 있다.
2번 이상 네스팅 되면 노드에서는 오브젝트라고만 나온다.
console.dir(boxOfficeTarget, { depth: null });
이라고 작성하고 출력해보면
모든 데이터가 출력된다.
잘봤습니다! 혹시 API를 받아오려는데 이미지는 없는건가요???