코드노트

WIL 바닐라 자바스크립트로 구현한 영화 검색사이트 본문

Code note/TIL, WIL

WIL 바닐라 자바스크립트로 구현한 영화 검색사이트

코드노트 2023. 1. 11. 16:24

1차 과제였던 클론코딩 후 

2차 과제로 영화검색 사이트를 제작했다.

영화 API를 들고와서 구현하는 검색사이트였다.

 

이번 영화 검색사이트를 제작하면서 비동기에 대해서 많이 배우게 된거 같다.

그리고 Jquery, React, Vue를 사용하지않고

바닐라 자바스크립트로 구현하다보니 자바스크립트에 대해서도 공부를 할 수 있는 계기가 되었다.

 

Vue를 사용해서 영화검색 사이트를 만들었던 경험이 있지만

바닐라 자바스크립트로 구현하는건 또 달랐던거 같다.

1년도 채 되지 않았는데 같은 API를 사용하는데도 사용하는데 힘이 들었다..

역시 코드를 짜고나면 바로 기억속에서 사라지는거 같다...

 

 

Movie Search

 

strong-rolypoly-f45a54.netlify.app

코드를 짜고 Readme.md에 정보와 리뷰를 간략하게라도 적는 습관을 들여야할거 같다..! ㅜㅜ


구현한 기능들

- 영화 검색

- 검색 시 글자수 제한 ( 현재 API에서는 3글자 이상 검색해야 정보가 나온다. )

- 무한스크롤 적용 ( Intersection Observer API )

 

- 상세정보 창 특정 영역 밖 클릭 시 닫힘

- scrollTop

- 로딩 애니메이션, Flip 애니메이션 (css로 구현)

- 이미지 리사이징

- 대체 이미지 적용

- 검색정보가 없거나 글자 수 제한 에러에 대한 대응


영화 검색

- 영화 api를 들고와서 movie 카테고리로 정렬했다.

- 영화 정보 호출 함수를 만들고 각 정보를 렌더링 하는 함수에서 정보들을 넘겨주었다.

- click, enter를 할때마다 정보 넘겨주기

 

검색 시 글자수 제한

- input 이벤트로 현재 글자 수 체크

- closest으로 순회

- 조건으로 글자수, 영문 유효성 검증

- nextSibling로 텍스트 추가

 

무한스크롤 적용

 

Intersection Observer API 사용방법

영화검색 사이트를 만들면서 무한스크롤을 구현하는데 Intersection Observer API를 사용했다. 일반적으로는 addEventListener를 사용해서 구현하지만 문제점이 꽤 많았다. - 스크롤을 할때마다 이벤트가

codeno-te.tistory.com

상세정보 창 특정 영역 밖 클릭 시 닫힘

- 이벤트 target을 이용해서 target이랑 다를 때 조건을 적용

 

scrollTop

- gsap으로 구현

 

로딩 애니메이션, Flip 애니메이션 (css로 구현)

- 로딩 애니메이션 : 영화정보 호출 시 정보가 있을 때, 없을 때 / 상세정보 및 스크롤시 display속성으로 구현

- Flip 애니메이션 : 앞, 뒤 요소를 두고 transform으로 구현

 

이미지 리사이징

- 기존 사이즈 해상도 수정

 

대체 이미지 적용

- poster URL주소를 못들고오면 대체 이미지 적용

 

검색정보가 없거나 글자 수 제한 에러에 대한 대응

- undifined, response 값에 따라 에러 대응


Review

 

- 예상치 못한 에러들이 발생하는게 생각보다 많았고, 에러들을 해결하는 방법에 대해서 고민해야할것 같다.

- 코드를 짤때 모듈로 나누고 함수를 나눠서 진행하는게 필요한거 같다.

- 라이브러리가 왜 필요한지 알거 같다..

 

 

이번 메가바이트스쿨 프론트엔드 과정에 들어온지 1달동안 생각보다 많은걸 배웠다.

git으로 프로젝트를 관리하거나, 자바스크립트 언어에 대한 습득도 더 빨리 되고 있다. 이해도가 낮았는데 이제는 어느정도 메서드, 함수에 대해서 이해도가 올라간거 같다.

이번주안에 자바스크립트를 어느정도 정리하고 타입스크립트, 리액트를 들어가야할거 같다!