Giter VIP home page Giter VIP logo

vue_omdb_movie_search's Introduction

👩‍💻 요구 사항과 구현 내용

기본 요구사항

  • 타입스크립트를 사용해야 합니다!
  • 검색어를 입력해 영화를 검색할 수 있어야 합니다!
  • Search 컴포넌트에 영화 제목을 영문으로 입력한 뒤, 검색 버튼을 누르거나 Enter 키를 입력하면 검색 결과를 볼 수 있습니다.
    • Search 컴포넌트 구현
    • 영화 정보 상태 관리 구현
    • 영화 목록 출력 및 로딩 애니메이션
    • 영화 목록 내 항목 표시를 위한 컴포넌트
  • 검색된 결과를 통해 영화의 상세 정보를 볼 수 있어야 합니다!
  • 검색된 영화의 포스터를 클릭하면 상세 정보를 볼 수 있습니다.
    • 영화 상세 정보 확인 기능 구현
  • 클라이언트(브라우저)에서 API Key(7035c60c)가 노출되지 않아야 합니다!
  • API 키 은닉을 위해 Vercel 서버리스 함수를 활용하였습니다.
    • API 키 은닉을 위한 서버리스 함수 도입
  • 실제 서비스로 배포하고 접근 가능한 링크를 추가해야 합니다!

선택 요구사항

  • Vue Composition API를 사용해 보세요.
  • API 요청(Request)에 대한 로딩 애니메이션을 추가해 보세요.
    • 영화 목록 출력 및 로딩 애니메이션
    • 영화 상세 정보 페이지 Skeleton UI 적용
  • 영화를 검색하거나 더 보기 버튼으로 목록을 추가할 때 로딩 애니메이션 (kind of 스피너...?)이 노출됩니다.
  • 포스터를 클릭해서 영화 상세 정보를 불러올 때 Skeleton UI가 노출됩니다.
  • Suspense 적용해보려 했는데 적용하기엔 컴포넌트 Depth가 뭔가 낮아서 적용하지 않았습니다.
  • 영화 상세 검색으로 출력할 영화 포스터를 더 높은 해상도를 사용해 보세요.
    • 영화 포스터 주소에 포함된 SX300SX700과 같이 더 큰 숫자로 수정해 요청하세요.
    • 영화 상세 정보 확인 기능 구현
    • 실시간으로 이미지의 크기를 다르게 요청하는 것이 어떤 원리로 가능한지 조사해 보세요.
    • 실시간 이미지 리사이징...이라는 기술로 알고 있습니다. 검색해보면 AWS Lambda@Edge를 활용한 구현 사례를 많이 찾아볼 수 있고, sharp라는 라이브러리 또한 활용하고 있습니다. 원리는 URI에 이미지의 너비와 높이 정보, 또는 확장자 등의 정보를 Query String으로 요청하면 이를 Lambda(서버리스 함수)가 S3(스토리지 서버)에게 원본 이미지를 받은 뒤 리사이징 해주거나, 다른 확장자의 이미지를 가져다가 클라이언트로 보내주거나 하는 것으로 이해했습니다. 혹시 틀린 부분이 있으면 알려주세요!
  • 요청 주소에 HTTP가 아닌 HTTPS 프로토콜을 사용해야 하는 이유를 조사해 보세요.
  • 다양한 이유가 있습니다. (보안, SEO, CORS 등등..)
  • 보안 : HTTPS는 SSL/TLS 인증서에 기반한 웹 사이트 제공자의 신원 확인, 암호화된 통신 등을 통해 각종 정보보안과 관련한 문제를 해결할 수 있습니다.
  • SEO : HTTPS 프로토콜을 사용하는 웹 사이트는 Google의 검색 엔진 기준으로 HTTP 프로토콜을 사용하는 웹 사이트보다 상위에 노출됩니다.
  • CORS : 요즘은 많은 웹 서비스가 HTTPS 프로토콜을 활용하고 있는데, 해당 서비스의 자원을 요청할 때 만약 요청하는 주체가 HTTPS 프로토콜을 사용하고 요청을 받는 주체가 HTTP 프로토콜을 사용한다면, 이는 CORS 정책에 위반되어 요청이 차단됩니다.
  • Bootstrap, Tailwind 같은 UI 프레임워크를 사용하거나 혹은 직접 프로젝트를 예쁘게 만들어 보세요.
  • Open Graph 혹은 Twitter Cards로 메타 정보를 제공해 보세요.

vue_omdb_movie_search's People

Contributors

sscoderati avatar learn-programmers avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.