โญSrirachaPedia(JSP TEAM PROJECT )โญ

p_chan.logยท2022๋…„ 11์›” 28์ผ

project

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail
  • ํ”„๋กœ์ ํŠธ๋ช… : SrirachaPedia (JSP TEAM PROJECT )
  • ์ด๋ฆ„ : ๋ฐ•์ฐฌ
  • ๐Ÿ˜บ ๊นƒํ—ˆ๋ธŒ : https://github.com/ts941229/sriracha_project
  • ๐Ÿ“บ ์œ ํŠœ๋ธŒ ์‹œ์—ฐ ์˜์ƒ

๐Ÿ“œ๋ชฉ์ฐจ

  1. ๊ธฐํš์˜๋„
  2. ์กฐ์›์†Œ๊ฐœ
  3. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๋ฐ ์ง„ํ–‰ ์ผ์ •
  4. ์„ค๊ณ„๋ฐฉ์‹
    1) ERD
    2) Flow Chart
  5. ์ฃผ์š”์ฝ”๋“œ ์„ค๋ช…
  6. ์†Œ๊ฐ

๐Ÿ‘‰ ๊ธฐํš์˜๋„

์ฒ˜์Œ ํŒ€์›๋“ค์ด๋ž‘ ๋งŒ๋‚˜์„œ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๋Š”๊ฒŒ ์‹œ๊ฐ„์ด ์ข€ ์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค.
๊ฐ์ž ๊ณตํ†ต์ ๋„ ์ฐพ์•„๋ณด๊ณ  ๊ฐœ์ธํ”„๋กœ์ ํŠธ ํ•œ๊ฒƒ๋„ ๋ดค๋Š”๋ฐ ๋งˆ๋•…ํ•œ ์ฃผ์ œ๊ฐ€
๋‚˜์˜ค์ง€ ์•Š์•˜๋Š”๋ฐ ์šฐ์—ฐํžˆ ๋‹ค๋“ค ์˜ํ™”๋ฅผ ์ข‹์•„ํ•œ๋‹ค๋Š”๊ฑธ ์•Œ๊ฒŒ๋˜์„œ
๊ทธ๋Ÿผ ์˜ํ™”์ถ”์ฒœ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž!!
ํ•ด์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ์ฒซ๊ฑธ์Œ์„ ๋–ผ๊ฒŒ ๋ฌ๋‹ค.
์šฐ๋ฆฌ๋Š” ์ด ์„ธ์ƒ์˜ ๋ชจ๋“  ์˜ํ™”์ •๋ณด๋ฅผ ์•Œ๋ ค์ค„์ˆ˜์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœํ–ˆ๊ณ 
์™“์ฑ  ํ”ผ๋””์•„ ํด๋ก ์‚ฌ์ดํŠธ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋ฌ๋‹ค.
ํ”„๋กœ์ ํŠธ๋ช…์€ ์™“์ฑ  ํ”ผ๋‹ค์•„์™€ ๋ผ์ž„์„ ๋งž์ถ˜ ์Šค๋ฆฌ๋ผ์ฐจ ํ”ผ๋””์•„๋กœ ์ •ํ–ˆ๋‹ค.!!

๐Ÿ“œ์กฐ์›์†Œ๊ฐœ

์ฐธ์—ฌ์ธ์› : 7๋ช…

๋‚ด๊ฐ€ ๋งก์€ ์ž‘์—…

  • ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„
  • ํ”„๋ก ํŠธ์ž‘์—…
  • PPT
  • ๋ฐœํ‘œ

๐ŸŽ‡ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๋ฐ ์ง„ํ–‰ ์ผ์ •

๐Ÿ”จ๊ฐœ๋ฐœํ™˜๊ฒฝ

๐Ÿ“†๊ฐœ๋ฐœ์ผ์ •

๊ธฐ๊ฐ„ : 22.10/26 ~ 22.11/17

๐Ÿ“ˆ ์„ค๊ณ„๋ฐฉ์‹

๐Ÿ‘‡ ERD

๐Ÿ‘‡ FlowChart

โœ๏ธ ์ฃผ์š”์ฝ”๋“œ ์„ค๋ช…

๐Ÿ™†โ€โ™‚๏ธ ๋‚ด๊ฐ€ ๋งก์€ ์ž‘์—…

๐Ÿ—๏ธ ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„

view

action

dao

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

// -------------------------------id ๊ฐ’ ๋ณ€์ˆ˜
let elInputUsername = document.querySelector('#user_name')
let elInputId = document.querySelector('#user_id')
let elInputPassword = document.querySelector('#user_pw')
let elInputPasswordretype = document.querySelector('#user_repw')
let elJoinbutton = document.querySelector('#joinbutton')
let idChkButton = document.querySelector('#idChkButton')

// ------------------------------- ์„ฑ๊ณต, ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ๋ณ€์ˆ˜
let elNameSuccess = document.querySelector('.name-success')
let elIdFailuremessage = document.querySelector('.idFailure-message')
let elIdSuccessmessage = document.querySelector('.idSuccess-message')
let elIdOverlapmessage = document.querySelector('.idOverlap-message')
let elPwSuccessmessage = document.querySelector('.pwSuccess-message')
let elPwFailuremessage = document.querySelector('.pwFailure-message')
let elMissmatchmessage = document.querySelector('.pwMissmatch-message')
let elMatchmessage = document.querySelector('.pwMatch-message')

// ------------------------------- ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”
elJoinbutton.disabled = true;

// -------------------------------๊ฐ ์˜์—ญ๋งˆ๋‹ค true๊ฐ’์„ ์ „๋‹ฌํ•ด์ค„ flag๋ณ€์ˆ˜ ์„ ์–ธ
let flagName = false;
let flagId = false;
let flagPw = false;
let flagRePw = false;
let flagIdChk = false;


//------------------------------- ์ด๋ฆ„์ด ์œ ํšจ์„ฑ์ฒดํฌ
elInputUsername.onkeyup = function() {
   var regName = /^[๊ฐ€-ํžฃ]{2,10}$/;

   if (regName.test(elInputUsername.value)) {
      elNameSuccess.classList.add('hide')
      flagName = true;
   }
   else {
      elNameSuccess.classList.remove('hide')
      flagName = false;

   }
}


//------------------------------- ์•„์ด๋””๊ฐ€ ์œ ํšจ์„ฑ์ฒดํฌ
elInputId.onkeyup = function() {

   var regId = /^[a-z]+[a-z0-9]{5,19}$/g;;

   if (regId.test(elInputId.value)) {
      elIdFailuremessage.classList.add('hide')
      flagId = true;
   }
   else {
      elIdFailuremessage.classList.remove('hide')
      flagId = false;
   }
   
}

//------------------------------- ์•„์ด๋””๊ฐ€ ์ค‘๋ณตํ™•์ธ ์œ ํšจ์„ฑ์ฒดํฌ
function checkId(userid){
   
   if( userid == "" ){
   } else {
      let xhr = new XMLHttpRequest();
      xhr.open("POST", "/join/idcheck.jsp?userid="+ userid, true);      
      xhr.send();
      xhr.onreadystatechange = function(){
         if( xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200 ){
            //alert( xhr.responseText );
            
            if( xhr.responseText.trim() == "ok" ){
               flagIdChk = true;
               elIdSuccessmessage.classList.remove('hide')
               elIdOverlapmessage.classList.add('hide')
               
            } else {
               flagIdChk = false;
               elIdOverlapmessage.classList.remove('hide')
               elIdSuccessmessage.classList.add('hide')
            }
            button();
            
         }
      }   
   }
   
}


//------------------------------- ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ์ฒดํฌ
elInputPassword.onkeyup = function() {
   var regPw = /^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/;

   if (regPw.test(elInputPassword.value)) {
      elPwFailuremessage.classList.add('hide')
      flagPw = true;
   }
   else {
      elPwFailuremessage.classList.remove('hide')
      flagPw = false;
   }
}

//------------------------------- ๋น„๋ฐ€๋ฒˆํ˜ธํ™•์ธ ์œ ํšจ์„ฑ์ฒดํฌ
elInputPasswordretype.onkeyup = function() {
   if (elInputPassword.value == elInputPasswordretype.value) {
      elMissmatchmessage.classList.add('hide')
      flagRePw = true;
   }
   else {
      elMissmatchmessage.classList.remove('hide')
      flagRePw = false;
   }
   // ์—”ํ„ฐํ‚ค ํŽ˜์ด์ง•์ฒ˜๋ฆฌ
   if (window.event.keyCode == 13) {
      $().ready(function () {
            $(function () {
                Swal.fire({
                    title: '์ •๋ง๋กœ ํšŒ์›๊ฐ€์ž…์„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?',
                    text: "๋‹ค์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‹ ์ค‘ํ•˜์„ธ์š”.",
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: '์Šน์ธ',
                    cancelButtonText: '์ทจ์†Œ'
                }).then((result) => {
                    if (result.isConfirmed) {
                            document.signUp.submit();
                    }
                    else{
							window.location.reload();
					}
                })
            });
        });
   };
   
}

//------------------------------- keyup 
elInputUsername.addEventListener('keyup', button)
elInputId.addEventListener('keyup', button)
elInputPassword.addEventListener('keyup', button)
elInputPasswordretype.addEventListener('keyup', button)

//------------------------------- ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ, ์ „ํ™”๋ฒˆํ˜ธ ๊ฐ’์„ ๋ชจ๋‘ ์ž…๋ ฅํ•˜์˜€์„ ๋•Œ, ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜๋Š” ํ•จ์ˆ˜
function button() {

   if (flagName && flagId && flagPw && flagRePw && flagIdChk) {
      elJoinbutton.disabled = false;    // ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

   } else {
      elJoinbutton.disabled = true;    // ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”

   }

}

// ํšŒ์›๊ฐ€์ž… ์ปจํŽŒ์ฐฝ  
$().ready(function () {
            $("#joinbutton").click(function () {
                Swal.fire({
                    title: '์ •๋ง๋กœ ํšŒ์›๊ฐ€์ž…์„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?',
                    text: "๋‹ค์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‹ ์ค‘ํ•˜์„ธ์š”.",
//                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
//                    cancelButtonColor: '#d33',
                    confirmButtonText: '์Šน์ธ',
                    cancelButtonText: '์ทจ์†Œ',
                }).then((result) => {
                    if (result.isConfirmed) {
                            document.signUp.submit();
                    }
                    else{
							window.location.reload();
					}
                })
            });
        });

๐Ÿ’ป Rest API ์‚ฌ์šฉ๋ฒ•(TMDB)

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ์ด๋ผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์˜ํ™” API์ด๋‹ค.
์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๊ฐ€ ์˜ํ™”์ถ”์ฒœ ์‚ฌ์ดํŠธ์ธ ๋งŒํผ ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ๋ฐ
์ผ์ผํžˆ ๋‹ค ์˜ํ™”๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„์ˆœ ์—†์œผ๋‹ˆ ์˜ํ™”API๋ฅผ ์ฐพ๋‹ค๊ฐ€ TMDB๋ผ๋Š” API๋ฅผ ์•Œ๊ฒŒ๋ฌ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ TMDB๋ฅผ ์–ด๋–ป๊ฒŒ ์ผ๋Š”์ง€ ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณด๊ฒ ๋‹ค.

TMDB๋งํฌ : https://www.themoviedb.org/

์œ„ ๋งํฌ์—์„œ ํšŒ์›๊ฐ€์ž… ํ›„ API์ธ์ฆํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์€ ํ›„

https://developers.themoviedb.org/3/movies/get-movie-details

์œ„ ๋งํฌ์—์„œ movie๋ฅผ ํด๋ฆญ ํ›„

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ํด๋ฆญํ•œ ๋’ค ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ
์ธ๊ธฐ์˜ํ™” ๋ฐ์ดํ„ฐ์ธ Get Popular๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ๋‹ค.


Get Popular๋ฅผ ํด๋ฆญํ•˜๋ฉด ์œ„ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ Try it out ํƒญ์—์„œ
๊ฐ ์ •๋ณด๋“ค์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฐ‘์— SEND REQUEST๋ถ€๋ถ„์— ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋˜๋ฉด์„œ
URL์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

{"page":1,"results":[{"adult":false,"backdrop_path":"/bQXAqRx2Fgc46uCVWgoPz5L5Dtr.jpg","genre_ids":[28,14,878],"id":436270,"original_language":"en","original_title":"Black Adam","overview":"๊ธฐ์›์ „ ๊ฐ€์žฅ ๋ฒˆ์„ฑํ•˜๊ณ  ์œ„๋Œ€ํ•œ ๊ณ ๋Œ€ ๊ตญ๊ฐ€์˜€์ง€๋งŒ ํ˜„์žฌ๋Š” ๊ตญ์ œ ๊ตฐ์‚ฌ ์กฐ์ง ์ธํ„ฐ๊ฐฑ์˜ ๋…์žฌ ๊ตญ๊ฐ€๋กœ ์ „๋ฝํ•œ ์นธ๋‹คํฌ. ์ธํ„ฐ๊ฐฑ์˜ ๋ˆˆ์„ ํ”ผํ•ด ๊ณ ๋Œ€ ์œ ๋ฌผ์„ ์ฐพ๋˜ '์•„๋“œ๋ฆฌ์•„๋‚˜'๋Š” ์šฐ์—ฐํžˆ 5000๋…„ ๋™์•ˆ ์ž ๋“ค์–ด ์žˆ๋˜ '๋ธ”๋ž™ ์•„๋‹ด'์„ ๊นจ์šฐ๊ฒŒ ๋œ๋‹ค.  ์—„์ฒญ๋‚œ ๊ดด๋ ฅ๊ณผ ์Šคํ”ผ๋“œ, ๋ฐฉํƒ„ ๋Šฅ๋ ฅ๊ณผ ์ž์œ ์ž์žฌ์˜ ๊ณ ๊ณต๋น„ํ–‰, ๋ฒˆ๊ฐœ๋ฅผ ์˜๋Š” ๋Šฅ๋ ฅ๊นŒ์ง€. ์˜จ๋ชธ์ด ๋ฌด๊ธฐ์ธ '๋ธ”๋ž™ ์•„๋‹ด'์€ ์ž์‹ ์˜ ์•ž์„ ๋ง‰์•„์„œ๋Š” ์ธํ„ฐ๊ฐฑ๋“ค์„ ๋ชจ์กฐ๋ฆฌ ์“ธ์–ด๋ฒ„๋ฆฌ๊ณ  ์นธ๋‹คํฌ ๊ตญ๋ฏผ๋“ค์€ ์ด์— ์—ด๊ด‘ํ•œ๋‹ค. ํ•œํŽธ, ๊ทธ์˜ ํญ์ฃผ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ํ˜ธํฌ๋งจ, ๋‹ฅํ„ฐ ํŽ˜์ดํŠธ, ์•„ํ†ฐ ์Šค๋งค์…”, ์‚ฌ์ดํด๋ก ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํžˆ์–ด๋กœ ๊ตฐ๋‹จ '์ €์Šคํ‹ฐ์Šค ์†Œ์‚ฌ์ด์–ดํ‹ฐ'๊ฐ€ ์นธ๋‹คํฌ์— ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ...","popularity":17030.072,"poster_path":"/mEdMHGy1FfCUc7PskFO0tibm8jp.jpg","release_date":"2022-10-19","title":"๋ธ”๋ž™ ์•„๋‹ด","video":false,"vote_average":7.3,"vote_count":1996},{"adult":false,"backdrop_path":"/kmzppWh7ljL6K9fXW72bPN3gKwu.jpg","genre_ids":[14,28,35,80],"id":1013860,"original_language":"en","original_title":"R.I.P.D. 2: Rise of the Damned","overview":"","popularity":6521.435,"poster_path":"/g4yJTzMtOBUTAR2Qnmj8TYIcFVq.jpg","release_date":"2022-11-15","title":"R.I.P.D.:์•Œ.์•„์ด.ํ”ผ.๋””.  2","video":false,"vote_average":6.8,"vote_count":162},{"adult":false,"backdrop_path":"/kpUre8wWSXn3D5RhrMttBZa6w1v.jpg","genre_ids":[35,10751,14],"id":338958,"original_language":"en","original_title":"Disenchanted","overview":"๋™ํ™” ๊ฐ™์€ ์‚ถ์„ ์œ„ํ•ด ๋‰ด์š•์„ ๋– ๋‚˜ ๋จผ๋กœ๋นŒ์ด๋ผ๋Š” ์กฐ์šฉํ•œ ๊ต์™ธ๋กœ ์ด์‚ฌํ•œ ์ง€์ ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋…€๊ฐ€ ๊ฟˆ๊พธ๋˜ ์˜์›ํ•œ ํ–‰๋ณต์„ ์ฐพ์„ ์ˆ˜ ์—†์ž ์•ˆ๋‹ฌ๋ผ์‹œ์•„์˜ ๋งˆ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๊ณ , ์ด๋กœ ์ธํ•ด ๋งˆ์„ ์ „์ฒด๊ฐ€ ๋™ํ™” ์† ์„ธ๊ณ„๋กœ ๋ณ€ํ•ด ๋ฒ„๋ฆฐ๋‹ค. ์ด์ œ ์ž์‹ ๊ณผ ๊ฐ€์กฑ์˜ ์ง„์ •ํ•œ ํ–‰๋ณต์„ ์œ„ํ•ด ์‹œ๊ณ„๊ฐ€ ์ž์ •์„ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ์ „๊นŒ์ง€ ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋˜๋Œ๋ ค๋†“์•„์•ผ ํ•˜๋Š”๋ฐ. ์ง€์ ค์€ ๊ทธ๋…€๊ฐ€ ๊ทธํ† ๋ก ์›ํ•˜๋˜ ์˜์›ํ•œ ํ–‰๋ณต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊นŒ?","popularity":3475.144,"poster_path":"/9MSqVj9ulOAK5TqQFjtAMuj2dTk.jpg","release_date":"2022-11-16","title":"๋งˆ๋ฒ•์— ๊ฑธ๋ฆฐ ์‚ฌ๋ž‘ 2","video":false,"vote_average":7.4,"vote_count":380},{"adult":false,"backdrop_path":"/au4HUSWDRadIcl9CqySlw1kJMfo.jpg","genre_ids":[80,28,53],"id":829799,"original_language":"en","original_title":"Paradise City","overview":"","popularity":3860.261,"poster_path":"/xdmmd437QdjcCls8yCQxrH5YYM4.jpg","release_date":"2022-11-11","title":"ํŒŒ๋ผ๋‹ค์ด์Šค ์‹œํ‹ฐ","video":false,"vote_average":5.3,"vote_count":17},{"adult":false,"backdrop_path":null,"genre_ids":[28,27,53],"id":988233,"original_language":"en","original_title":"Hex","overview":"","popularity":3709.629,"poster_path":"/xFJHb43ZAnnuiDztxZYsmyopweb.jpg","release_date":"2022-11-01","title":"Hex","video":false,"vote_average":3.8,"vote_count":5},{"adult":false,"backdrop_path":"/xDMIl84Qo5Tsu62c9DGWhmPI67A.jpg","genre_ids":[28,12,878],"id":505642,"original_language":"en","original_title":"Black Panther: Wakanda Forever","overview":"๊ตญ์™•์ด์ž ๋ธ”๋ž™ ํŒฌ์„œ์ธ ํ‹ฐ์ฐฐ๋ผ์˜ ์ฃฝ์Œ ์ดํ›„ ์ˆ˜๋งŽ์€ ๊ฐ•๋Œ€๊ตญ์œผ๋กœ๋ถ€ํ„ฐ ์œ„ํ˜‘์„ ๋ฐ›๊ฒŒ ๋œ ์™€์นธ๋‹ค. ๋ผ๋ชฌ๋‹ค, ์Šˆ๋ฆฌ ๊ทธ๋ฆฌ๊ณ  ๋‚˜ํ‚ค์•„, ์˜ค์ฝ”์˜ˆ, ์Œ๋ฐ”์ฟ ๋Š” ๊ฐ์ž ์‚ฌ๋ช…๊ฐ์„ ๊ฐ–๊ณ  ์™€์นธ๋‹ค๋ฅผ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ์™ธ๋กœ์šด ์‹ธ์›€์„ ์ด์–ด๊ฐ„๋‹ค. ํ•œํŽธ, ๋น„๋ธŒ๋ผ๋Š„์˜ ํŒจ๊ถŒ์„ ๋‘˜๋Ÿฌ์‹ผ ๋ฏธ์Šคํ„ฐ๋ฆฌํ•œ ์Œ๋ชจ์™€ ํ•จ๊ป˜ ๊นŠ์€ ํ•ด์ €์—์„œ ๋ชจ์Šต์„ ๋“œ๋Ÿฌ๋‚ธ ์ตœ๊ฐ•์˜ ์  ๋„ค์ด๋จธ์™€ ํƒˆ๋กœ์นธ์˜ ์ „์‚ฌ๋“ค์€ ์™€์นธ๋‹ค๋ฅผ ํ–ฅํ•ด ๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์„ ํผ๋ถ“๊ธฐ ์‹œ์ž‘ํ•˜๋Š”๋ฐโ€ฆ","popularity":2952.936,"poster_path":"/3PCRWLeqp5y20k6XVzcamZR3BWF.jpg","release_date":"2022-11-09","title":"๋ธ”๋ž™ ํŒฌ์„œ: ์™€์นธ๋‹ค ํฌ์—๋ฒ„","video":false,"vote_average":7.5,"vote_count":1039},{"adult":false,"backdrop_path":"/aQOWnw3HydsCQZ10O0wvxFOaWc3.jpg","genre_ids":[36,28,18],"id":551271,"original_language":"en","original_title":"Medieval","overview":"","popularity":2563.793,"poster_path":"/4njdAkiBdC5LnFApeXSkFQ78GdT.jpg","release_date":"2022-09-08","title":"๋ฏธ๋””๋ฒŒ","video":false,"vote_average":7.2,"vote_count":185},{"adult":false,"backdrop_path":"/yNib9QAiyaopUJbaayKQ2xK7mYf.jpg","genre_ids":[18,28,10752],"id":966220,"original_language":"uk","original_title":"ะกะฝะฐะนะฟะตั€. ะ‘ั–ะปะธะน ะฒะพั€ะพะฝ","overview":"","popularity":2573.447,"poster_path":"/66mrr3AK6grmkfGJ1wlCP8dkzjM.jpg","release_date":"2022-05-03","title":"ะกะฝะฐะนะฟะตั€. ะ‘ั–ะปะธะน ะฒะพั€ะพะฝ","video":false,"vote_average":7.4,"vote_count":128},{"adult":false,"backdrop_path":"/olPXihyFeeNvnaD6IOBltgIV1FU.jpg","genre_ids":[27,9648,53],"id":882598,"original_language":"en","original_title":"Smile","overview":"๊ธฐ๊ดดํ•œ ๋ฏธ์†Œ๋ฅผ ์ง€์œผ๋ฉฐ ์ž์‹ ์˜ ๋ˆˆ ์•ž์—์„œ ๋ชฉ์ˆจ์„ ๋Š๋Š” ํ™˜์ž๋ฅผ ๋ชฉ๊ฒฉํ•œ ์ •์‹ ๊ณผ ์˜์‚ฌ โ€˜๋กœ์ฆˆโ€™. ๊ทธ๋‚  ์ดํ›„๋กœ โ€˜๋กœ์ฆˆโ€™์˜ ์ผ์ƒ์— ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๋”์ฐํ•œ ์ผ๋“ค์ด ์ž‡๋”ฐ๋ผ ๋ฐœ์ƒํ•œ๋‹ค. ์ผ์ƒ์„ ๋ฎ์นœ ๊ณตํฌ์— ๋ฐœ๋ฒ„๋‘ฅ์น˜๋˜ โ€˜๋กœ์ฆˆโ€™๋Š” ์ด์ „์—๋„ ์ž์‹ ๊ณผ ๊ฐ™์€ ์ผ์„ ๊ฒช์€ ์‚ฌ๋žŒ๋“ค์ด ์žˆ์—ˆ๊ณ  ๊ทธ๋“ค ๋ชจ๋‘ ๋”์ฐํ•œ ์ฃฝ์Œ์„ ํ”ผํ•  ์ˆ˜ ์—†์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋œ๋‹ค. ์‹œ์‹œ๊ฐ๊ฐ ๋‹ค๊ฐ€์˜ค๋Š” ์ฃฝ์Œ์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•ด ์‚ฌํˆฌ๋ฅผ ๋ฒŒ์ด๋˜ ๋กœ์ฆˆ๋Š” ์žŠ๊ณ  ์‹ถ๋˜ ๊ณผ๊ฑฐ์™€ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š”๋ฐโ€ฆ","popularity":2425.949,"poster_path":"/8ncuVFt4e0M2NTTsoPtbxfWN5dO.jpg","release_date":"2022-09-23","title":"์Šค๋งˆ์ผ","video":false,"vote_average":6.8,"vote_count":922},{"adult":false,"backdrop_path":"/gVecEIEZLZg3pV5CACXAB48I6au.jpg","genre_ids":[80,18,9648,53],"id":862965,"original_language":"en","original_title":"Emily the Criminal","overview":"","popularity":2785.674,"poster_path":"/iZvzMpREGiqDQ5eYbx8z70qPgst.jpg","release_date":"2022-08-12","title":"์—๋ฐ€๋ฆฌ ๋” ํฌ๋ฆฌ๋ฏธ๋„","video":false,"vote_average":6.9,"vote_count":202},{"adult":false,"backdrop_path":"/707thQazLJiYLBhCrZlRoV05NNL.jpg","genre_ids":[28,18,53],"id":948276,"original_language":"fr","original_title":"Balle perdue 2","overview":"๋ˆ„๋ช…์„ ๋ฒ—์€ ์ฒœ์žฌ ์ž๋™์ฐจ ์ •๋น„๊ณต ๋ฆฌ๋…ธ. ์ด์ œ ๊ทธ์˜ ๋งˆ์Œ์†์— ๋‚จ์€ ๋ชฉํ‘œ๋Š” ๋‹จ ํ•˜๋‚˜. ๋™์ƒ๊ณผ ๋ฉ˜ํ† ๋ฅผ ์ฃฝ์ธ ๋น„๋ฆฌ ๊ฒฝ์ฐฐ๋“ค์—๊ฒŒ ๋ณต์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.","popularity":2778.164,"poster_path":"/A84Usw0jwhh5RPAKZV7gwP532Fl.jpg","release_date":"2022-11-10","title":"์‚ฌ๋ผ์ง„ ํƒ„ํ™˜ 2","video":false,"vote_average":6.8,"vote_count":125},{"adult":false,"backdrop_path":"/f9g3R9gq0bASip9RnK2H56dbb5j.jpg","genre_ids":[53],"id":979924,"original_language":"en","original_title":"On the Line","overview":"์ง„ํ–‰์ž๊ฐ€ ์ „ํ™”๋ฅผ ๋ฐ›๋Š”๋ฐ, ์ด ์ „ํ™”์—์„œ ์ •์ฒด๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ์ด  ์‡ผ๋งจ์˜ ์˜จ ๊ฐ€์กฑ์„ ์ฃฝ์ด๊ฒ ๋‹ค๊ณ  ํ˜‘๋ฐ•ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋ž‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด  ๋ผ๋””์˜ค ์ง„ํ–‰์ž๋Š” ์ƒ์กด ๊ฒŒ์ž„์„ ํ•ด์•ผ ํ•  ๊ฒƒ์ด๊ณ   ์ด๊ธธ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋ฒ”์ธ์˜ ์‹ ์›์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.","popularity":2535.935,"poster_path":"/a14BbSHvLgzCdbDD6tAL8OBVKL1.jpg","release_date":"2022-10-31","title":"์˜จ ๋” ๋ผ์ธ","video":false,"vote_average":6.5,"vote_count":145},{"adult":false,"backdrop_path":"/eyiSLRh44SKKWIJ6bxWq8z1sscB.jpg","genre_ids":[53,27,80],"id":899294,"original_language":"en","original_title":"Frank and Penelope","overview":"","popularity":2345.994,"poster_path":"/5NpXoAi3nEQkEgLO09nmotPfyNa.jpg","release_date":"2022-06-03","title":"Frank and Penelope","video":false,"vote_average":7.5,"vote_count":35},{"adult":false,"backdrop_path":"/sCOHkah9RbFeZfFnfBrcykKCMNa.jpg","genre_ids":[27,878],"id":846778,"original_language":"en","original_title":"Margaux","overview":"์ฃผ๋ง ํŒŒํ‹ฐ๋ฅผ ์œ„ํ•ด ์—์–ด๋น„์•ค๋น„ ์ˆ™์†Œ๋ฅผ ๋ ŒํŠธํ•œ ํ•œ ๋ฌด๋ฆฌ์˜ ๋Œ€ํ•™์ƒ๋“ค์ด, ์ˆ™์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ธ๊ณต์ง€๋Šฅ ์‹œ์Šคํ…œ \"๋งˆ๊ณ \"์˜ ์‚ฌ์•…ํ•œ ๋ณธ์„ฑ๊ณผ ๋งž๋‹ฅ๋œจ๋ฆฌ๊ฒŒ ๋˜๋Š” ์ด์•ผ๊ธฐ","popularity":2240.808,"poster_path":"/uNzgeMetu9l4q9NDw7gtiUFwPOJ.jpg","release_date":"2022-09-09","title":"๋งˆ๊ณ ","video":false,"vote_average":6.8,"vote_count":42},{"adult":false,"backdrop_path":"/u9Io1hVnxb2b3T0z99aOK8sq0SN.jpg","genre_ids":[9648,12,80],"id":829280,"original_language":"en","original_title":"Enola Holmes 2","overview":"ํƒ์ •์ด ๋œ ํ›„ ์ฒซ ๋ฒˆ์งธ ์‚ฌ๊ฑด์„ ์ˆ˜์ž„ํ•œ ์—๋†€๋ผ. ํ•˜์ง€๋งŒ ์‹ค์ข…๋œ ์†Œ๋…€์˜ ๋ฏธ์Šคํ„ฐ๋ฆฌ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์นœ๊ตฌ๋“ค์˜ ๋„์›€์ด ํ•„์š”ํ•˜๋‹ค. ์–ด์ฉŒ๋ฉด ์˜ค๋น  ์…œ๋ก์˜ ๋„์›€๊นŒ์ง€๋„.","popularity":1635.717,"poster_path":"/S6fDnntDjduIWuLW2GcqFasobD.jpg","release_date":"2022-11-04","title":"์—๋†€๋ผ ํ™ˆ์ฆˆ 2","video":false,"vote_average":7.7,"vote_count":1144},{"adult":false,"backdrop_path":"/8Tr79lfoCkOYRg8SYwWit4OoQLi.jpg","genre_ids":[878,28],"id":872177,"original_language":"en","original_title":"Corrective Measures","overview":"๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ๋ฒ”์ฃ„์ž๋“ค์ด ์‚ฌ๋Š” ์„ธ๊ณ„์—์„œ  ๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์ตœ๋Œ€ ๋ณด์•ˆ ๊ต๋„์†Œ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ์ˆ˜๊ฐ์ž์™€ ์ง์› ๊ฐ„์˜ ๊ธด์žฅ์ด ๊ณ ์กฐ๋˜์–ด ๊ฐ์˜ฅ์„ ์ง‘์–ด์‚ผํ‚ค๋Š” ๋ฌด์ •๋ถ€ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์งˆ์„œ๊ฐ€ ๋’ค์ง‘ํžŒ๋‹ค","popularity":2173.345,"poster_path":"/9qG7cBhu444BYmcIOeoLJoCBMuO.jpg","release_date":"2022-04-29","title":"์‹œ์ • ์กฐ์น˜","video":false,"vote_average":4.9,"vote_count":28},{"adult":false,"backdrop_path":"/sqVxhRkPwOo6jogWZjE99V1HRE1.jpg","genre_ids":[16,35,10751],"id":1037858,"original_language":"en","original_title":"The Soccer Football Movie","overview":"์ข‹์•„ํ•˜๋Š” ์ถ•๊ตฌ์„ ์ˆ˜๋“ค์˜ ์žฌ๋Šฅ์ด ์‚ฌ๋ผ์กŒ๋‹ค. ๋ฐ”๋กœ ์‚ฌ์•…ํ•œ ๊ณผํ•™์ž๊ฐ€ ๋‹ค ํ›”์ณ๊ฐ”๊ธฐ ๋•Œ๋ฌธ! ์ถ•๊ตฌ๋ฅผ ์‚ฌ๋ž‘ํ•˜๋Š” ๋„ค ์•„์ด๋“ค์ด ์ด ์ƒํ™ฉ์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์„๊นŒ?","popularity":1756.384,"poster_path":"/sWoYDNPNZs5MtzPbirXV73tIHrA.jpg","release_date":"2022-11-09","title":"๋ฏธ์…˜ ์ถ•๊ตฌ: ๋Œ์—ฐ๋ณ€์ด๋ฅผ ๋ฌด์ฐ”๋Ÿฌ๋ผ!","video":false,"vote_average":7,"vote_count":41},{"adult":false,"backdrop_path":"/tUBN1paMQ1tmVA5Sjy1ZjPWVsiF.jpg","genre_ids":[12,16,35,10751,14],"id":676701,"original_language":"es","original_title":"Tadeo Jones 3: La Tabla Esmeralda","overview":"","popularity":1331.281,"poster_path":"/8ZJjRunZbkMSXcRHiqAdQiecXYz.jpg","release_date":"2022-08-24","title":"Tadeo Jones 3: La Tabla Esmeralda","video":false,"vote_average":7.9,"vote_count":119},{"adult":false,"backdrop_path":"/oqwqnaaoSpQMqAQyoEiF8W2F7Id.jpg","genre_ids":[10751,35,16,12],"id":1018403,"original_language":"en","original_title":"Tom and Jerry Snowman's Land","overview":"","popularity":1711.627,"poster_path":"/effgnqJMX2lXvXhKlJt7Pm1TkcU.jpg","release_date":"2022-09-06","title":"Tom and Jerry Snowman's Land","video":false,"vote_average":8,"vote_count":13},{"adult":false,"backdrop_path":"/pGx6O6IwqADOsgmqWzPysmWnOyr.jpg","genre_ids":[28,14],"id":732459,"original_language":"en","original_title":"Blade of the 47 Ronin","overview":"","popularity":1517.04,"poster_path":"/kjFDIlUCJkcpFxYKtE6OsGcAfQQ.jpg","release_date":"2022-10-25","title":"47 ๋กœ๋‹Œ์˜ ๊ฒ€","video":false,"vote_average":7,"vote_count":83}],"total_pages":36072,"total_results":721425}

URL์„ ์š”์ฒญ์„ํ•˜๋ฉด ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ JSON๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ฒŒ๋˜๋Š”๋ฐ ์ด JSON๋ฐ์ดํ„ฐ๋ฅผ ์ด์ œ parsingํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

JSON๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•˜๊ธฐ

// tmdb ์ ‘๊ทผ , json ์ถ”์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ
	// params - setSubject : "now_playing" , "popular" , "top_rated" , "upcoming"
	// 					pageNum : ๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐ€๋„ ์ž‘๋™๋˜๊ธฐ ๋•Œ๋ฌธ์— String ํƒ€์ž…์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค. 1~?? 
	public List getMovieList(String setSubject, String pageNum) {
		// URL์— ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋œ๋‹ค
		String base_url = "https://api.themoviedb.org/3/movie/";					// ์˜ํ™” ๊ฒ€์ƒ‰ ๊ธฐ๋ณธ url
		String subject = setSubject;																// ์ฃผ์ œ ( ์ธ๊ธฐ์žˆ๋Š” , ํƒ‘๋ ˆ์ดํŒ… , ์—…์ปค๋ฐ ๋“ฑ )
		String api_key = "?api_key=76b35796a3549ed9d36a411955f5428f";	// api ํ‚ค
		String language = "&language=ko-kr";												// ์–ธ์–ด ์˜ต์…˜
		String page = "&page="+ pageNum;													// ํŽ˜์ด์ง€ ์˜ต์…˜ ( ์•ˆ๋„ฃ์œผ๋ฉด ๋””ํดํŠธ 1 )
		
		String completed_url = base_url+subject+api_key+language+page;
		
//		System.out.println("callRestApi ํ˜ธ์ถœ");
		
		List<HashMap<String, Object>> movieList = null;
		
		try {
			
			URL url = new URL(completed_url);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			
			conn.setRequestMethod("GET");
			conn.setRequestProperty("Content-Type", "application/json");
			conn.setDoOutput(true); // ์„œ๋ฒ„๋กœ ๋ฐ›๋Š” ๊ฐ’์ด ์žˆ๋‹ค
			
			// ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ
			BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			StringBuilder sb = new StringBuilder();
			String line = null;
			
			// ์ฝ์„ ์ˆ˜ ์žˆ์„ ๋•Œ ๊นŒ์ง€
			while((line = br.readLine()) != null) {
				sb.append(line);
			}
			
			JSONParser parser = new JSONParser();
			JSONObject obj = (JSONObject) parser.parse(sb.toString());
			
			JSONArray objArray = (JSONArray) obj.get("results");
			
			movieList = new ArrayList();
			
			for(int i=0; i<objArray.size(); i++) {
				HashMap<String, Object> movieMap = new HashMap<>();
//				System.out.println(objArray.get(i));
				JSONObject result = (JSONObject) objArray.get(i);
				
				// ์˜ค๋ฒ„๋ทฐ๊ฐ€ "" ์ด ์•„๋‹Œ๊ฒฝ์šฐ๋งŒ ๋‹ด๊ธฐ
				if(!result.get("overview").equals("")) {
					
					movieMap.put("movie_id", result.get("id"));
					movieMap.put("movie_title", result.get("title"));
					movieMap.put("movie_overview", result.get("overview"));
					movieMap.put("movie_popularity", result.get("popularity"));
					movieMap.put("movie_vote_average", result.get("vote_average"));
					movieMap.put("movie_vote_count", result.get("vote_count"));
					movieMap.put("movie_poster_path", result.get("poster_path"));
					movieMap.put("movie_backdrop_path", result.get("backdrop_path"));
					movieMap.put("movie_adult", result.get("adult"));
					movieMap.put("movie_date", result.get("release_date"));
					movieMap.put("movie_subject", setSubject);
					
					// ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธฐ
					movieList.add(movieMap);
				}
				
//				System.out.println(objArray.get(i));
				
			}
			
//			for(int i=0; i<movieList.size(); i++) {
//				System.out.println("title : "+movieList.get(i).get("movie_title"));
//			}
			
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
			System.out.println("URL์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("Input ๋˜๋Š” Ouput ์˜ค๋ฅ˜");
		} catch (ParseException e) {
			e.printStackTrace();
			System.out.println("์ œ์ด์Šจ ํŒŒ์‹ฑ ์‹คํŒจ");
		}
		
		return movieList;
		
	}

์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ์ž๋ฐ”์—์„œ UrlConnection์„ ๋งบ์€ ํ›„ url์š”์ฒญ์„ ๋ณด๋‚ด ๋ฐ›์€ json๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๊ฐ€์ ธ์™€์„œ ํŒŒ์‹ฑ ํ›„ ๋ชจ๋‘ HashMap์— ๋‹ด๊ณ , ๊ทธ HashMap๋“ค์„ ๋‹ค์‹œ List์— ๋‹ด์•„ ๊ทธ List๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

List(์ธ๊ธฐ์˜ํ™”๊ฐ€ ๋ชจ๋‘ ๋“ค์–ด์žˆ๋Š”)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

// ์˜ํ™”์ •๋ณด ๋ถˆ๋Ÿฌ์™€์„œ db์— ๋„ฃ๋Š”๊ฑธ ๋”ฐ๋กœ ๋ฉ”์„œ๋“œ๋กœ ๋บ๋‹ค
	public void setMovieInDBperPage(int pagenum) {
		MovieDAO mdao = new MovieDAO();
		
		String[] subjects = {"now_playing", "popular", "top_rated", "upcoming"};

		for(int a=0; a<subjects.length; a++) {
			// ์˜ํ™” ๋ฆฌ์ŠคํŠธ ๋ฐ›์•„์˜จ๊ฑฐ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ
			List<HashMap<String, Object>> movieList = Util.getInstance().getMovieList(subjects[a], pagenum+"");
			
			// ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธด ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋ ค dto ์ƒ์„ฑ -> ๊ฐ’ ๋Œ€์ž… -> db์— ์ธ์„œํŠธ
			for (int i=0; i<movieList.size(); i++) {
				MovieDTO mdto = new MovieDTO();
				mdto.setMovie_id(Integer.parseInt(movieList.get(i).get("movie_id").toString()));
				mdto.setMovie_title(movieList.get(i).get("movie_title").toString());
				mdto.setMovie_overview(movieList.get(i).get("movie_overview").toString());
				mdto.setMovie_popularity(Double.parseDouble(movieList.get(i).get("movie_popularity").toString()));
				mdto.setMovie_vote_average(Double.parseDouble(movieList.get(i).get("movie_vote_average").toString()));
				mdto.setMovie_vote_count(Integer.parseInt(movieList.get(i).get("movie_vote_count").toString()));
				mdto.setMovie_poster_path(movieList.get(i).get("movie_poster_path").toString());
				mdto.setMovie_backdrop_path(movieList.get(i).get("movie_backdrop_path").toString());
				mdto.setMovie_adult(movieList.get(i).get("movie_adult").toString());
				mdto.setMovie_date(movieList.get(i).get("movie_date").toString());
				mdto.setMovie_subject(movieList.get(i).get("movie_subject").toString());
				
				// ์˜ํ™”๊ฐ€ ์žˆ๋‚˜ ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด ์˜ํ™”์ •๋ณด ์ž…๋ ฅ
				if(mdao.selectMovieById(mdto.getMovie_id())==null) {
					mdao.movieInsert(mdto);
				}
			}
		}
	}
// ์˜ํ™” 1ํŽ˜์ด์ง€ ์ž…๋ ฅ
		setMovieInDBperPage(1);
		System.out.println("1ํŽ˜์ด์ง€ ์ž…๋ ฅ ์™„๋ฃŒ");
		setMovieInDBperPage(2);
		System.out.println("2ํŽ˜์ด์ง€ ์ž…๋ ฅ ์™„๋ฃŒ");
		setMovieInDBperPage(3);
		System.out.println("3ํŽ˜์ด์ง€ ์ž…๋ ฅ ์™„๋ฃŒ");

TMDB์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ์šฐ๋ฆฌ์˜ DB์— ์ด๋ ‡๊ฒŒ ๋‹ด๊ธฐ๊ฒŒ๋œ๋‹ค.

๐Ÿ‘‰๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ view์— ์ ์šฉ

๐Ÿ™ ์†Œ๊ฐ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋น„์•ฝ์ ์œผ๋กœ ์‹ค๋ ฅ์ด ๋Š”๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋งŽ์ด๋“ ๋‹ค.
๋‚ด๊ฐ€ ๋งŒ์•ฝ ์–ด๋–ค๋ถ€๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ„๋‹ค๋ฉด ํŒ€์›๋“ค์ด ์•Œ๋ ค์ฃผ๊ณ  ํŒ€์›๋“ค์€ ์•Œ๋ ค์ฃผ๋ฉด์„œ ๋˜ ๊ณต๋ถ€๊ฐ€ ๋˜๊ณ  ๊ทธ๋Ÿฌ๋Š” ์„œ๋กœ์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์‹œ๊ฐ„์ด์—ˆ๋˜๊ฑฐ ๊ฐ™๋‹ค. ์ดˆ๋ฐ˜์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋˜๋Š”์ง€๋„ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๋ง‰๋ง‰ํ•œ ๋А๋‚Œ์ด ์žˆ์—ˆ์ง€๋งŒ
์ ์  ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ์žฌ๋ฐŒ์–ด์ง€๊ณ  ๋นจ๋ฆฌ ๋‹ค์Œ๋‚  ํ•™์› ๋‚˜๊ฐ€์„œ ํŒ€์›๋“ค์ด๋ž‘ ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ์•ž์œผ๋กœ ๊ตญ๋น„๊ณผ์ •์—์„œ ํŒ€ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•˜๋‚˜๋” ๋‚จ์•˜๋Š”๋ฐ ๊ทธ๋•Œ๋Š” ์ง€๊ธˆ๋ณด๋‹ค ๋ฐœ์ „ํ•œ ๋‚ด๊ฐ€๋˜์„œ ๋” ์ข‹์€ ๊ฒฐ๊ณผ๋ฌผ์€ ๋งŒ๋“ค๊ณ ์‹ถ๋‹ค.

profile
๊ฐœ๋ฐœ์ž ๋ฐ•์ฐฌ์˜ ๋…ธํŠธ

0๊ฐœ์˜ ๋Œ“๊ธ€