개발일지 10 - API & AI 활용

tk7580·2025년 6월 5일

작품의 데이터와 이미지 등을 결국 확보해야 하는데
이 부분은 외부 API를 사용하는 방법이 있다.

TMDB (The Movie Database) API: 영화, TV 쇼, 인물 정보를 제공하며, 다양한 언어를 지원하고 이미지 URL도 풍부하게 제공
무료 API 키를 발급받아 사용할 수 있으며, 사용량 제한이 있을 수 있음

이런 외부 API와 제미나이 등의 LLM을 활용하여 보조하는 방식으로 데이터를 담는다.


웹사이트에 가입하고 설정 메뉴에서 API키를 발급받았다.
프로젝트 이름과 사이트 URL을 입력해야 하는데,
사이트 주소가 있으려면 도메인을 구매해야 하고
현재는 로컬호스트로 진행 중이기에 깃허브 주소를 첨부하였다.

API키를 발급받고, API를 사용하기 위한 PYTHON 프로젝트를 src, build.gradle 파일 등이 있는 위치에 폴더로 생성한다.

API키를 담을 .env파일, 개별 .gitignore파일, collector.py파일을 생성한다.

맞는 코드를 작성하고 터미널에서 실행해본다.
실행 결과

--- 전체 API 응답 (JSON) ---
{
    "page": 1,
    "results": [
        {
            "adult": false,
            "backdrop_path": "/l33oR0mnvf20avWyIMxW02EtQxn.jpg",
            "genre_ids": [
                12,
                18,
                878
            ],
            "id": 157336,
            "original_language": "en",
            "original_title": "Interstellar",
            "overview": "세계 각국의 정부와 경제가 완전히 붕괴된 미래가 다가온다. 지난 20세기에 범한 잘못이
전 세계적인 식량 부족을 불러왔고, NASA도 해체되었다. 나사 소속 우주비행사였던 쿠퍼는 지구에 몰아친 식량난  
으로 옥수수나 키우며 살고 있다. 거센 황사가 몰아친 어느 날 알 수 없는 힘에 이끌려 딸과 함께 도착한 곳은 인 
류가 이주할 행성을 찾는 나사의 비밀본부. 이 때 시공간에 불가사의한 틈이 열리고, 이 곳을 탐험해 인류를 구해 야 하는 임무를 위해 쿠퍼는 만류하는 딸을 뒤로한 채 우주선에 탑승하는데...",
            "popularity": 37.6389,
            "poster_path": "/evoEi8SBSvIIEveM3V6nCJ6vKj8.jpg",
            "release_date": "2014-11-05",
            "title": "인터스텔라",
            "video": false,
            "vote_average": 8.455,
            "vote_count": 37243
        },
        {
            "adult": false,
            "backdrop_path": "/8C32MMrMYT5gON7nXgEGeM4puH4.jpg",
            "genre_ids": [
                99
            ],
            "id": 336592,
            "original_language": "en",
            "original_title": "The Science of Interstellar",
            "overview": "Matthew McConaughey narrates a fascinating look at Christopher Nolan's sci-fi film
, 'Interstellar', including scientific foundations, the work of consulting Scientist Kip Thorne, basic film
 themes, the science behind the search for planets capable of hosting life, space-time and the theory of re
lativity, the science of wormholes and black holes, crafting the film's visuals based on real scientific ob
servation, the birth of the universe, the Dust Bowl and the evolution of dust as a toxin, the likelihood of
 future dust storms, the prospects of escaping a dying or doomed planet and the possibilities of colonizing Mars.",
            "popularity": 2.6888,
            "poster_path": "/pUvbuOTHKQWrLuGY1x2pHd1evPL.jpg",
            "release_date": "2014-11-13",
            "title": "인터스텔라의 과학",
            "video": false,
            "vote_average": 6.8,
            "vote_count": 33
        },
        {
            "adult": false,
            "backdrop_path": "/wUZID3WzrzuIQmcIjXahZkV1ItI.jpg",
            "genre_ids": [
                878
            ],
            "id": 398188,
            "original_language": "en",
            "original_title": "Interstellar Wars",
            "overview": "어느 날 달 이면에서 발생한 웜홀을 통해 지구 상공에 거대 UFO가 등장한다. UFO가 발사
 빛을 맞은 사람들은 좀비처럼 변하는 이상 증세를 보이며 서로를 공격하게 된다. 무자비한 살육의 현장을 이대   
로 지켜만 볼 수 없단 것을 깨달은 정부에서는 미 공군 특수 부대를 출격, 거대 UFO와 맞서는 인류 최후의 전쟁이 시작된다.",
            "popularity": 0.6881,
            "poster_path": "/1wRRWXe0bZNZT8rMKUtZT7GOTkS.jpg",
            "release_date": "2016-06-09",
            "title": "인터스텔라: 우주 전쟁",
            "video": false,
            "vote_average": 2.967,
            "vote_count": 15
        },
        {
            "adult": false,
            "backdrop_path": "/p1XtUnWJrmVNqyhYJGIatMNt8C1.jpg",
            "genre_ids": [
                16,
                878,
                10402,
                12
            ],
            "id": 11049,
            "original_language": "en",
            "original_title": "Interstella 5555: The 5tory of the 5ecret 5tar 5ystem",
            "overview": "대사가 전혀 없는 뮤직 애니메이션. 악의 무리에 의해 납치되어 온 다른 은하계의 4명은
지구에서 최고의 밴드가 된다. 다프트 펑크의 음악과 레이지 마츠모토의 디자인이 만나 만들어진 뮤지컬 애니메이이",
            "popularity": 1.9714,
            "poster_path": "/n0K6mjU8aVnag2mi93FuvJsjZi.jpg",
            "release_date": "2003-05-28",
            "title": "인터스텔라 5555",
            "video": false,
            "vote_average": 7.8,
            "vote_count": 483
        }
    ],
    "total_pages": 1,
    "total_results": 4
}

--- 첫 번째 검색 결과 주요 정보 ---
ID: 157336
제목: 인터스텔라
원제: Interstellar
개봉일: 2014-11-05
줄거리: 세계 각국의 정부와 경제가 완전히 붕괴된 미래가 다가온다. 지난 20세기에 범한 잘못이 전 세계적인 식량
부족을 불러왔고, NASA도 해체되었다. 나사 소속 우주비행사였던 쿠퍼는 지구에 몰아친 식량난으로 옥수수나 키우우
 살고 있다. 거센 황사가 몰아친 어느 날 알 수 없는 힘에 이끌려 딸과 함께 도착한 곳은 인류가 이주할 행성을   
찾는 나사의 비밀본부. 이 때 시공간에 불가사의한 틈이 열리고, 이 곳을 탐험해 인류를 구해야 하는 임무를 위해 쿠퍼는 만류하는 딸을 뒤로한 채 우주선에 탑승하는데...
포스터 경로: https://image.tmdb.org/t/p/w500/evoEi8SBSvIIEveM3V6nCJ6vKj8.jpg
PS C:\Users\admin\IdeaProjects\springproject\python_api_collector> 

성공!

이제 가져온 데이터를 DB에 저장

출력 결과

--- API에서 가져온 영화 정보 ---
제목: 인터스텔라

데이터베이스에 성공적으로 연결되었습니다.

성공: '인터스텔라' 작품 정보가 work 테이블에 저장되었습니다.
저장된 레코드의 ID: 1

성공!

0개의 댓글