Skip to content

KDT1-FE/KDT5-M2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

🎬 μ˜ν™” 검색

주어진 APIλ₯Ό ν™œμš©ν•΄ 'μ™„μ„± μ˜ˆμ‹œ' 처럼 자유둭게 μ˜ν™” 검색 κΈ°λŠ₯을 κ΅¬ν˜„ν•΄λ³΄μ„Έμš”!
과제 μˆ˜ν–‰ 및 리뷰 기간은 별도 곡지λ₯Ό μ°Έκ³ ν•˜μ„Έμš”!

과제 μˆ˜ν–‰ 및 제좜 방법

KDT기수번호_이름  |  E.g, KDT0_ParkYoungWoong
  1. ν˜„μž¬ μ €μž₯μ†Œλ₯Ό λ‘œμ»¬μ— 클둠(Clone)ν•©λ‹ˆλ‹€.
  2. μžμ‹ μ˜ λ³Έλͺ…μœΌλ‘œ 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.(ꡬ뢄 κ°€λŠ₯ν•˜λ„λ‘ λ³Έλͺ…을 κΌ­ νŒŒμŠ€μΉΌμΌ€μ΄μŠ€λ‘œ ν‘œμ‹œν•˜μ„Έμš”, git branch KDT0_ParkYoungWoong)
  3. μžμ‹ μ˜ λ³Έλͺ… λΈŒλžœμΉ˜μ—μ„œ 과제λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  4. 과제 μˆ˜ν–‰μ΄ μ™„λ£Œλ˜λ©΄, μžμ‹ μ˜ λ³Έλͺ… 브랜치λ₯Ό 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ(Push)ν•©λ‹ˆλ‹€.(main λΈŒλžœμΉ˜μ— ν‘Έμ‹œν•˜μ§€ μ•Šλ„λ‘ κΌ­ μ£Όμ˜ν•˜μ„Έμš”, git push origin KDT0_ParkYoungWoong)
  5. μ €μž₯μ†Œμ—μ„œ main 브랜치λ₯Ό λŒ€μƒμœΌλ‘œ Pull Request μƒμ„±ν•˜λ©΄, 과제 제좜이 μ™„λ£Œλ©λ‹ˆλ‹€!(E.g, main <== KDT0_ParkYoungWoong)
  • main ν˜Ήμ€ λ‹€λ₯Έ μ‚¬λžŒμ˜ 브랜치둜 μ ˆλŒ€ λ³‘ν•©ν•˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•˜μ„Έμš”!
  • Pull Requestμ—μ„œ λ³΄μ΄λŠ” μ„€λͺ…을 λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ° 쉽도둝 κΌΌκΌΌν•˜κ²Œ μž‘μ„±ν•˜μ„Έμš”!
  • Pull Requestμ—μ„œ 과제 제좜 ν›„ μ ˆλŒ€ 병합(Merge)ν•˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•˜μ„Έμš”!
  • 과제 μˆ˜ν–‰ 및 제좜 κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν•œ 경우, λ°”λ‘œ λ‹΄λ‹Ή λ©˜ν† λ‚˜ κ°•μ‚¬μ—μ„œ μ–˜κΈ°ν•˜μ„Έμš”!

μš”κ΅¬μ‚¬ν•­

ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­μ€ κΌ­ 달성해야 ν•˜λŠ” λͺ©ν‘œλ‘œ, μˆ˜μ •/μ‚­μ œλŠ” λΆˆκ°€ν•˜κ³  μΆ”κ°€λŠ” κ°€λŠ₯ν•©λ‹ˆλ‹€.
선택 μš”κ΅¬μ‚¬ν•­μ€ λ‹¨μˆœ μ˜ˆμ‹œλ‘œ, 자유둭게 μΆ”κ°€/μˆ˜μ •/μ‚­μ œν•΄μ„œ κ΅¬ν˜„ν•΄λ³΄μ„Έμš”.
각 μš”κ΅¬μ‚¬ν•­μ€ 달성 ν›„ λ§ˆν¬λ‹€μš΄μ—μ„œ - [x]둜 ν‘œμ‹œν•˜μ„Έμš”.

❗ ν•„μˆ˜

  • μ˜ν™” 제λͺ©μœΌλ‘œ 검색이 κ°€λŠ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€!
  • κ²€μƒ‰λœ 결과의 μ˜ν™” λͺ©λ‘μ΄ 좜λ ₯돼야 ν•©λ‹ˆλ‹€!
  • 단일 μ˜ν™”μ˜ 상세정보(제λͺ©, κ°œλ΄‰μ—°λ„, 평점, μž₯λ₯΄, 감독, 배우, 쀄거리, ν¬μŠ€ν„° λ“±)λ₯Ό λ³Ό 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€!
  • μ‹€μ œ μ„œλΉ„μŠ€λ‘œ λ°°ν¬ν•˜κ³  μ ‘κ·Ό κ°€λŠ₯ν•œ 링크λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

❔ 선택

  • ν•œ 번의 κ²€μƒ‰μœΌλ‘œ μ˜ν™” λͺ©λ‘μ΄ 20개 이상 κ²€μƒ‰λ˜λ„λ‘ λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™” κ°œλ΄‰μ—°λ„λ‘œ 검색할 수 μžˆλ„λ‘ λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™” λͺ©λ‘μ„ κ²€μƒ‰ν•˜λŠ” λ™μ•ˆ λ‘œλ”© μ• λ‹ˆλ©”μ΄μ…˜μ΄ 보이도둝 λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • λ¬΄ν•œ 슀크둀 κΈ°λŠ₯을 μΆ”κ°€ν•΄μ„œ μΆ”κ°€ μ˜ν™” λͺ©λ‘μ„ λ³Ό 수 μžˆλ„λ‘ λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™” ν¬μŠ€ν„°κ°€ 없을 경우 λŒ€μ²΄ 이미지λ₯Ό 좜λ ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™” 상세정보가 좜λ ₯되기 전에 λ‘œλ”© μ• λ‹ˆλ©”μ΄μ…˜μ΄ 보이도둝 λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™” 상세정보 ν¬μŠ€ν„°λ₯Ό κ³ ν•΄μƒλ„λ‘œ 좜λ ₯ν•΄λ³΄μ„Έμš”. (μ‹€μ‹œκ°„ 이미지 리사이징)
  • 차별화가 κ°€λŠ₯ν•˜λ„λ‘ ν”„λ‘œμ νŠΈλ₯Ό μ΅œλŒ€ν•œ 예쁘게 λ§Œλ“€μ–΄λ³΄μ„Έμš”.
  • μ˜ν™”μ™€ κ΄€λ ¨λœ 기타 κΈ°λŠ₯도 κ³ λ €ν•΄λ³΄μ„Έμš”.

API κΈ°λ³Έ μ‚¬μš©λ²•

curl https://omdbapi.com/?apikey=7035c60c
  \ -X 'GET'

μ˜ν™” λͺ©λ‘ 검색

μ˜ν™” λͺ©λ‘μ€ ν•œ λ²ˆμ— μ΅œλŒ€ 10κ°œκΉŒμ§€ 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.

νŒŒλΌλ―Έν„° μ„€λͺ… κΈ°λ³Έκ°’
s 검색할 μ˜ν™” 제λͺ©(ν•„μˆ˜!) -
y 검색할 κ°œλ΄‰μ—°λ„, 빈 값은 전체 검색 -
page 검색할 νŽ˜μ΄μ§€ 번호 1

μš”μ²­ μ½”λ“œ μ˜ˆμ‹œ:

async function getMovies(title, year = '', page = 1) {
  const s = `&s=${title}`
  const y = `&y=${year}`
  const p = `&page=${page}`
  try {
    const res = await fetch(`https://omdbapi.com/?apikey=7035c60c${s}${y}${p}`)
    const json = await res.json()
    if (json.Response === 'True') {
      const { Search: movies, totalResults } = json
      return {
        movies,
        totalResults
      }
    }
    return json.Error
  } catch (error) {
    console.log(error)
  }
}

응닡 데이터 νƒ€μž… 및 μ˜ˆμ‹œ:

interface ResponseValue {
  Search: Movie[] // κ²€μƒ‰λœ μ˜ν™” λͺ©λ‘, μ΅œλŒ€ 10개
  totalResults: string // κ²€μƒ‰λœ μ˜ν™” 개수
  Response: 'True' | 'False' // μš”μ²­ 성곡 μ—¬λΆ€
}
interface Movie {
  Title: string // μ˜ν™” 제λͺ©
  Year: string // μ˜ν™” κ°œλ΄‰μ—°λ„
  imdbID: string // μ˜ν™” 고유 ID
  Type: string // μ˜ν™” νƒ€μž…
  Poster: string // μ˜ν™” ν¬μŠ€ν„° 이미지 URL
}
{
  "Search": [
    {
      "Title": "Frozen",
      "Year": "2013",
      "imdbID": "tt2294629",
      "Type": "movie",
      "Poster": "https://m.media-amazon.com/images/M/MV5BMTQ1MjQwMTE5OF5BMl5BanBnXkFtZTgwNjk3MTcyMDE@._V1_SX300.jpg"
    },
    {
      "Title": "Frozen II",
      "Year": "2019",
      "imdbID": "tt4520988",
      "Type": "movie",
      "Poster": "https://m.media-amazon.com/images/M/MV5BMjA0YjYyZGMtN2U0Ni00YmY4LWJkZTItYTMyMjY3NGYyMTJkXkEyXkFqcGdeQXVyNDg4NjY5OTQ@._V1_SX300.jpg"
    }
  ],
  "totalResults": "338",
  "Response": "True"
}

μ˜ν™” μƒμ œμ •λ³΄ 검색

단일 μ˜ν™”μ˜ μƒμ œμ •λ³΄λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€.

νŒŒλΌλ―Έν„° μ„€λͺ… κΈ°λ³Έκ°’
i 검색할 μ˜ν™” ID(ν•„μˆ˜!)
plot 쀄거리 길이 short

μš”μ²­ μ½”λ“œ μ˜ˆμ‹œ:

async function getMovie(id) {
  const res = await fetch(`https://omdbapi.com/?apikey=7035c60c&i=${id}&plot=full`)
  const json = await res.json()
  if (json.Response === 'True') {
    return json
  }
  return json.Error
}

응닡 데이터 νƒ€μž… 및 μ˜ˆμ‹œ:

interface ResponseValue {
  Title: string // μ˜ν™” 제λͺ©
  Year: string // μ˜ν™” κ°œλ΄‰μ—°λ„
  Rated: string // μ˜ν™” λ“±κΈ‰
  Released: string // μ˜ν™” κ°œλ΄‰μΌ
  Runtime: string // μ˜ν™” μƒμ˜μ‹œκ°„
  Genre: string // μ˜ν™” μž₯λ₯΄
  Director: string // μ˜ν™” 감독
  Writer: string // μ˜ν™” μž‘κ°€
  Actors: string // μ˜ν™” μΆœμ—°μ§„
  Plot: string // μ˜ν™” 쀄거리
  Language: string // μ˜ν™” μ–Έμ–΄
  Country: string // μ˜ν™” μ œμž‘ κ΅­κ°€
  Awards: string // μ˜ν™” μˆ˜μƒ λ‚΄μ—­
  Poster: string // μ˜ν™” ν¬μŠ€ν„° 이미지 URL
  Ratings: Rating[] // μ˜ν™” 평점 정보
  Metascore: string // μ˜ν™” λ©”νƒ€μŠ€μ½”μ–΄
  imdbRating: string // μ˜ν™” IMDB 평점
  imdbVotes: string // μ˜ν™” IMDB νˆ¬ν‘œ 수
  imdbID: string // μ˜ν™” 고유 ID
  Type: string // μ˜ν™” νƒ€μž…
  DVD: string // μ˜ν™” DVD μΆœμ‹œμΌ
  BoxOffice: string // μ˜ν™” λ°•μŠ€μ˜€ν”ΌμŠ€
  Production: string // μ˜ν™” μ œμž‘μ‚¬
  Website: string // μ˜ν™” 곡식 μ›Ήμ‚¬μ΄νŠΈ
  Response: string // μš”μ²­ 성곡 μ—¬λΆ€
}
interface Rating { // μ˜ν™” 평점 정보
  Source: string // 평점 제곡 μ‚¬μ΄νŠΈ
  Value: string // 평점
}
{
  "Title": "Frozen",
  "Year": "2013",
  "Rated": "PG",
  "Released": "27 Nov 2013",
  "Runtime": "102 min",
  "Genre": "Animation, Adventure, Comedy",
  "Director": "Chris Buck, Jennifer Lee",
  "Writer": "Jennifer Lee, Hans Christian Andersen, Chris Buck",
  "Actors": "Kristen Bell, Idina Menzel, Jonathan Groff",
  "Plot": "When the newly crowned Queen Elsa accidentally uses her power to turn things into ice to curse her home in infinite winter, her sister Anna teams up with a mountain man, his playful reindeer, and a snowman to change the weather co...",
  "Language": "English, Norwegian",
  "Country": "United States",
  "Awards": "Won 2 Oscars. 82 wins & 60 nominations total",
  "Poster": "https://m.media-amazon.com/images/M/MV5BMTQ1MjQwMTE5OF5BMl5BanBnXkFtZTgwNjk3MTcyMDE@._V1_SX300.jpg",
  "Ratings": [
    { "Source": "Internet Movie Database",  "Value": "7.4/10" },
    { "Source": "Rotten Tomatoes", "Value": "90%" },
    { "Source": "Metacritic", "Value": "75/100" }
  ],
  "Metascore": "75",
  "imdbRating": "7.4",
  "imdbVotes": "620,489",
  "imdbID": "tt2294629",
  "Type": "movie",
  "DVD": "18 Mar 2014",
  "BoxOffice": "$400,953,009",
  "Production": "N/A",
  "Website": "N/A",
  "Response": "True"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •