React로 영화 정보를 검색해보자 - 첫번째 React 설치 / 네이버 API 사용기
반응형

react

 

안녕하세요 Lotts 입니다 😉

 

nomadCoders에서 ReactJS로 웹 서비스만들기 강의를 듣고 있습니다.

강의에서는 영화 정보를 yts사이트에서 가져와서 사용하고 있습니다만

 

이번 포스팅에서 소개할 내용은

우리에게 익숙한 네이버 검색 영화 API를 이용하여

영화 정보를 React에서 받아보도록 하겠습니다

👏👏👏

 

니꼴라스쌤의 ReacJS로 웹 서비스 만들기가 궁금하신 분들을 위해 링크를 걸어놓겠습니다

 

우선 오늘의 포스팅에서는

ReactJS 시작하기

네이버 검색 영화 API 사전 준비

에 대해서 알아보겠습니다

 


📢 React 시작하기

 

React App를 시작할 때 여러 방법이 있지만

가장 추천하는 방법으로 진행하도록 할게요

가장 간편하고 쉬운 방법으로..

 

우선 React App을 만들기 전에

필요한 개발 환경을 만들어 보도록 하겠습니다 😉

 


🔅 사전 준비

 

node.js 8.10 이상 버전 설치 및 npm 5.6 이상 버전을 node.js 사이트에 접속하여 설치를 줍니다

 

그다음 npx를 설치해 줍니다

npm install npx -g

💡NPX ?

npx는 npm 5.2+ 버전의 패키지 실행 도구입니다


 

React App을 만들기 위한 사전 준비는 끝났습니다

 

이제 React App을 만들어보도록 하겠습니다 😊😊

 

🔅 Create React App

npx create-react-app movie_app

cd movie_app

npm start

 

자, React App을 만들었습니다.

응? 이게 끝인가? 😲 생각하시는 분들도 있겠지만

맞습니다 👌👌

React의 새로운 싱글 페이지 애플리케이션을 만들었습니다

👏👏👏

 

그래도 수상하다 여기신다면 😤😤

React 공식 사이트에 Create React App 를 보시면 확인할 수 있습니다 🔎

공식 사이트 그대로 했습니다 역시 공식 사이트가 쵝오

 

다음으로

☝ naver 검색 API 등록하기

naver 검색 API 사용하기

naver 검색 API 예제

에 대해서 알아보겠습니다

 

React의 기본적인 개념인 Component, Props, state, 생명주기에 대해서는

저도 React를 공부 중이라

나중에 따로 포스팅해보도록 하겠습니다 🙏

 


📢 네이버 검색 영화 API 등록하기

 

우선 네이버 검색 API 영화 개발 가이드에 접속을 합니다 💨

 

다음 오픈 API 이용 신청을 선택해주세요

만약 네이버 오픈 API가 처음이시면 애플리케이션 등록 먼저 해주셔야 합니다

 

네이버 애플리케이션 등록 화면

간단하게 애플리케이션 이름을 등록하고

사용 API를 검색 으로 하시면 됩니다

WEB설정은 로컬에서 테스트하기 때문에 localhost:3000로 설정하였습니다 😄

 

등록과 오픈 API 이용 신청이 완료되면

내 애플리케이션client ID, client Secret가 보이실 겁니다

API 호출 시 사용하게 되는 key입니다

매우 중요한 정보입니다

 

 ❗ Client Secret 키가 노출되지 않게 조심하게 사용해야 합니다 ❗

 

네이버 영화 API를 사용하기 위한 준비가 되었습니다

다음 사용방법을 알아보겠습니다. 🔎


 

📢네이버 검색 영화 API 사용

 

사용법은 위에서 언급했던 네이버 검색 API 영화 개발 가이드에 상세히 나와있습니다만

영화 App를 만들기 위해

제가 사용한 정보에 대해서 말씀드리겠습니다 🤘🤘

 

✅ API 기본 정보

https://openapi.naver.com/v1/search/movie.json - JSON 포맷

 

요청 변수

query - 필수 - 검색을 원하는 질의

display - 선택 - 검색 결과 출력 건수

 

출력 결과

items - items 속성으로 표현된 개별 검색 결과

title - 영화의 제목

image - 썸네일 이미지의 URL

director - 영화의 감독

actor - 영화의 출연 배우

userRating - 유저들의 평점

link - 영화의 하이퍼텍스트 link

pubDate - 영화 제작연도

 

API를 사용하기 위한 준비는 끝났습니다 😉

하지만 

해당 정보를 토대로

실제로 호출해봐야 이해가 쉬울 거 같습니다 👌👌

그래서 테스트로 호출하여 확인해 보도록 하겠습니다 🔎


📢네이버 검색 영화 API 예제

 

실제 정보가 어떻게 나오는지 확인하기 위해

postman을 이용하여 확인해보도록 하겠습니다

 

⚪ Request

Params에 query(검색) 은 아이언맨

display(검색 결과)는 20개로 설정하였습니다

 

🔵 Response

정상적으로 아래와 같은 응답 메시지를 받을 수 있습니다

👏👏

 

items 안에 영화 정보가 개별로 들어가 있는 걸 확인할 수 있습니다 🔎

{
    "lastBuildDate": "Fri, 27 Mar 2020 18:20:43 +0900",
    "total": 12,
    "start": 1,
    "display": 12,
    "items": [
        {
            "title": "<b>아이언맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=123684",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/1236/123684_P00_161340.JPG",
            "subtitle": "",
            "pubDate": "2014",
            "director": "김용수|",
            "actor": "이동욱|신세경|김갑수|",
            "userRating": "4.94"
        },
        {
            "title": "<b>아이언맨</b> &amp; 캡틴 아메리카",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=133519",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/1335/133519_P01_183929.jpg",
            "subtitle": "Iron Man &amp; Captain America: Heroes United",
            "pubDate": "2014",
            "director": "",
            "actor": "아드리안 패스더|로저 크레이그 스미스|",
            "userRating": "9.00"
        },
        {
            "title": "<b>아이언맨</b> 3",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=70254",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0702/70254_P35_153229.jpg",
            "subtitle": "Iron Man 3",
            "pubDate": "2013",
            "director": "셰인 블랙|",
            "actor": "로버트 다우니 주니어|기네스 팰트로|벤 킹슬리|돈 치들|가이 피어스|레베카 홀|",
            "userRating": "8.86"
        },
        {
            "title": "<b>아이언 맨</b>: 라이즈 오브 테크노보어",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=106595",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/1065/106595_P01_175329.jpg",
            "subtitle": "Iron Man: Rise of Technovore",
            "pubDate": "2013",
            "director": "하마사키 히로시|",
            "actor": "후지와라 케이지|이리노 미유|",
            "userRating": "3.28"
        },
        {
            "title": "<b>아이언맨</b> &amp; 헐크",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=133520",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/1335/133520_P01_182323.jpg",
            "subtitle": "Iron Man &amp; Hulk: Heroes United",
            "pubDate": "2013",
            "director": "에릭 라돔스키|레오 릴리|",
            "actor": "아드리안 패스더|프레드 타타시오르|",
            "userRating": "4.00"
        },
        {
            "title": "<b>아이언맨</b> 2",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=49008",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0490/49008_P52_162130.jpg",
            "subtitle": "Iron Man 2",
            "pubDate": "2010",
            "director": "존 파브로|",
            "actor": "로버트 다우니 주니어|기네스 팰트로|돈 치들|스칼렛 요한슨|미키 루크|",
            "userRating": "7.36"
        },
        {
            "title": "<b>아이언맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=44885",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0448/D4885-01.jpg",
            "subtitle": "Iron Man",
            "pubDate": "2008",
            "director": "존 파브로|",
            "actor": "로버트 다우니 주니어|테렌스 하워드|제프 브리지스|기네스 팰트로|",
            "userRating": "8.91"
        },
        {
            "title": "인빈서블 <b>아이언 맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=66121",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0661/F6121-01.jpg",
            "subtitle": "The Invincible Iron Man",
            "pubDate": "2007",
            "director": "프랭크 포어|",
            "actor": "마크 워든|구엔돌린 예오|",
            "userRating": "7.24"
        },
        {
            "title": "특수공작원 <b>아이언맨</b> - 시리즈",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=74459",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0744/74459_P04_205653.jpg",
            "subtitle": "Cover Up",
            "pubDate": "1984",
            "director": "필 본델리|리처드 A. 콜라|피터 크레인|돈 칼로스 듀너웨이|월터 그루먼|존 D. 핸콕|제프리 헤이든|시드니 헤이어스|크리스토퍼 히블러|브루스 케슬러|가이 마거|버나드 맥이비티|아서 알랜 세이들먼|마이클 베자|돈 웨이스|",
            "actor": "제니퍼 오닐|리차드 앤더슨|미켈티 윌리암슨|이레나 페리스|데이너 스파크스|잉그리드 앤더슨|데보라 러드윅 데이비스|존 에릭 히섬|",
            "userRating": "7.63"
        },
        {
            "title": "특수공작원 <b>아이언맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=74460",
            "image": "",
            "subtitle": "Cover Up",
            "pubDate": "1984",
            "director": "피터 크레인|",
            "actor": "리차드 앤더슨|피터 브라운|메리 크로스비|캔디스 댈리|패트릭 고먼|존 에릭 히섬|",
            "userRating": "9.00"
        },
        {
            "title": "<b>아이언 맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=77056",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0770/77056_P01_055722.jpg",
            "subtitle": "Iron Man",
            "pubDate": "1951",
            "director": "조셉 페브니|",
            "actor": "제프 캔들러|에블린 키예스|",
            "userRating": "5.37"
        },
        {
            "title": "<b>아이언 맨</b>",
            "link": "https://movie.naver.com/movie/bi/mi/basic.nhn?code=77057",
            "image": "https://ssl.pstatic.net/imgmovie/mdi/mit110/0770/77057_P01_092258.jpg",
            "subtitle": "Iron Man",
            "pubDate": "1931",
            "director": "토드 브라우닝|",
            "actor": "루 에어스|로버트 암스트롱|",
            "userRating": "7.54"
        }
    ]
}

 

 

자 한번 확인해 봅시다❗❗

 

✅ React App 만들기

 네이버 영화 API 애플리케이션 등록

 네이버 영화 API 정보 확인

 네이버 영화 API 사용하기

 

👏👏👏👏

 

다음 포스팅에서는

네이버 검색 API를 이용한 영화 정보를 React에서 해보도록 하겠습니다

 

 

반응형