영화 검색 기능과 모달창, 북마크 토글 구현하기

영화 검색 기능은 현대의 웹 애플리케이션에서 필수적인 요소 중 하나입니다. 사용자가 원하는 정보를 빠르게 찾을 수 있도록 도와주는 기능은 사용자 경험을 크게 향상시킵니다.

이 섹션에서는 영화 검색 기능을 구현하기 위한 여러 단계와 주의할 점을 자세히 살펴보겠습니다.

썸네일

영화 검색 API 활용

영화 검색 기능을 구현하기 위해서는 먼저 데이터를 제공하는 API를 사용하는 것이 일반적입니다. 예를 들어, OMDb API나 TMDb API와 같은 영화 관련 API를 활용할 수 있습니다.

이러한 API는 다양한 영화 정보를 제공하며, 사용자가 검색어를 입력하면 해당 영화의 정보를 반환합니다.

API 요청 처리

영화 검색 기능을 구현하기 위해서는 사용자가 입력한 검색어를 기반으로 API에 요청을 보내는 로직이 필요합니다. 아래는 API 요청을 처리하는 간단한 코드 예시입니다.

javascript
async function fetchMovies(searchTerm) {
const response = await fetch(`https://api.themoviedb.org/3/search/movie?api_key=YOUR_API_KEY&query=${searchTerm}`);
const data = await response.json();
return data.results;
}

위의 예제에서는 사용자가 입력한 검색어를 API에 요청하여 결과를 가져오는 과정을 보여줍니다. 이 과정을 통해 사용자는 실시간으로 영화 정보를 검색할 수 있습니다.

사용자 인터페이스 설계

API에서 데이터를 가져온 후, 이를 사용자에게 보여줄 UI를 설계해야 합니다. UI는 심플하면서도 직관적으로 설계되어야 하며, 사용자 친화적인 경험을 제공해야 합니다.

예를 들어, 검색 결과를 리스트 형식으로 보여주고, 각 영화의 포스터, 제목, 개요 등을 포함시키는 것이 좋습니다.

영화 정보 설명
제목 영화의 제목
포스터 영화 포스터 이미지
개요 영화의 간단한 설명

이와 같은 형식으로 사용자에게 정보를 제공하면, 사용자는 원하는 영화를 쉽게 찾을 수 있습니다. 또한, 영화에 대한 추가 정보를 제공하기 위해 각 영화 항목에 대한 클릭 이벤트를 추가하여 모달창으로 상세 정보를 보여줄 수 있습니다.

모달창 구현하기

모달창은 사용자가 특정 정보를 더 자세히 보기 위해 사용할 수 있는 UI 요소입니다. 영화 검색 기능과 함께 모달창을 구현하면, 사용자는 각 영화에 대한 상세 정보를 쉽게 확인할 수 있습니다.

모달창을 효과적으로 구현하기 위해서는 HTML, CSS, JavaScript를 함께 활용해야 합니다.

모달창 구조

모달창은 일반적으로 HTML의 <div> 요소를 사용하여 생성합니다. 아래는 간단한 모달창의 구조 예시입니다.

“`html

“`

위의 구조에서 모달창은 modal이라는 ID를 가진 <div>로 감싸져 있습니다. 모달 내용은 modal-content 클래스를 통해 스타일링할 수 있으며, 닫기 버튼과 영화 제목, 포스터, 개요 등 다양한 정보를 포함할 수 있습니다.

모달창 열기 및 닫기 기능

모달창을 열고 닫는 기능은 JavaScript를 통해 구현할 수 있습니다. 사용자가 영화 목록에서 특정 영화를 클릭하면 모달창이 열리고, 닫기 버튼을 클릭하면 모달창이 닫히도록 설정할 수 있습니다.

“`javascript
document.querySelector(‘.movie-item’).addEventListener(‘click’, function() {
const title = this.dataset.title;
const poster = this.dataset.poster;
const overview = this.dataset.overview;

document.getElementById('modal-title').innerText = title;
document.getElementById('modal-poster').src = poster;
document.getElementById('modal-overview').innerText = overview;

document.getElementById('modal').style.display = 'block';

});

document.querySelector(‘.close-button’).addEventListener(‘click’, function() {
document.getElementById(‘modal’).style.display = ‘none’;
});
“`

위의 코드는 영화 항목을 클릭했을 때 모달창을 열고, 닫기 버튼을 클릭하면 모달창이 닫히는 기능을 구현합니다. 이와 같은 방식으로 사용자에게 보다 나은 경험을 제공할 수 있습니다.

모달창 스타일링

모달창의 디자인은 사용자 경험에 큰 영향을 줍니다. CSS를 사용하여 모달창을 더욱 매력적으로 꾸밀 수 있습니다.

아래는 모달창을 스타일링하는 기본적인 CSS 예시입니다.

“`css
.modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.8);
}

.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
}
“`

이와 같은 CSS를 사용하면 모달창이 화면 중앙에 위치하고, 배경은 반투명하게 설정하여 사용자에게 집중할 수 있는 환경을 제공합니다.

다른 내용도 보러가기 #1

북마크 버튼 토글 구현하기

북마크 기능은 사용자가 좋아하는 영화를 저장하고 쉽게 찾아볼 수 있도록 도와주는 중요한 기능입니다. 이 기능을 구현하기 위해서는 사용자의 클릭 이벤트를 감지하고, 해당 영화 정보를 저장하는 로직이 필요합니다.

북마크 버튼 디자인

북마크 버튼은 사용자가 쉽게 인식할 수 있도록 디자인해야 합니다. 일반적으로 별 모양의 아이콘을 사용하여 북마크 상태를 표시하는 것이 일반적입니다.

아래는 북마크 버튼의 HTML 구조 예시입니다.

html
<button class="bookmark-button" data-movie-id="movie_id">
<i class="fas fa-star"></i>
</button>

위의 예시에서 data-movie-id 속성을 사용하여 각 영화의 ID를 저장합니다. 이를 통해 특정 영화를 북마크 할 수 있습니다.

북마크 상태 관리

북마크 버튼의 상태는 사용자가 클릭할 때마다 변경되어야 합니다. 이를 위해 JavaScript를 사용하여 북마크 상태를 관리할 수 있습니다.

사용자가 버튼을 클릭할 때마다 해당 영화 정보를 로컬 스토리지에 저장하거나 삭제하는 로직이 필요합니다.

“`javascript
let bookmarkedMovies = JSON.parse(localStorage.getItem(‘bookmarkedMovies’)) || [];

function toggleBookmark(movieId) {
if (bookmarkedMovies.includes(movieId)) {
bookmarkedMovies = bookmarkedMovies.filter(id => id !== movieId);
} else {
bookmarkedMovies.push(movieId);
}
localStorage.setItem(‘bookmarkedMovies’, JSON.stringify(bookmarkedMovies));
}

// 버튼 클릭 이벤트
document.querySelector(‘.bookmark-button’).addEventListener(‘click’, function() {
const movieId = this.dataset.movieId;
toggleBookmark(movieId);
});
“`

위의 코드는 사용자가 북마크 버튼을 클릭할 때마다 해당 영화 ID를 로컬 스토리지에 추가하거나 제거하는 로직을 보여줍니다. 이를 통해 사용자는 나중에 북마크한 영화를 쉽게 찾을 수 있습니다.

북마크 상태 표시

북마크 버튼의 상태를 시각적으로 표시하는 것도 중요합니다. 사용자가 북마크한 영화를 다시 방문했을 때 현재 상태를 확인할 수 있도록, 버튼의 아이콘을 변경해야 합니다.

예를 들어, 북마크된 영화는 황금색 별 아이콘으로, 북마크되지 않은 영화는 회색 별 아이콘으로 표시하는 것이 일반적입니다.

javascript
function updateBookmarkButton(movieId) {
const button = document.querySelector(`.bookmark-button[data-movie-id="${movieId}"]`);
if (bookmarkedMovies.includes(movieId)) {
button.innerHTML = '<i class="fas fa-star" style="color: gold;"></i>'; // 북마크 상태
} else {
button.innerHTML = '<i class="far fa-star"></i>'; // 일반 상태
}
}

이와 같은 코드를 통해 사용자가 북마크 버튼을 클릭할 때마다 아이콘이 변경되어 현재 상태를 쉽게 파악할 수 있습니다.

결론

영화 검색 기능, 모달창, 북마크 버튼 토글은 사용자 경험을 향상시키는 중요한 요소입니다. 각 기능을 구현하기 위해서는 API 활용, UI 설계, 이벤트 처리, 데이터 저장 등의 여러 단계를 거쳐야 합니다.

이러한 과정에서 사용자 친화적인 디자인과 직관적인 인터페이스를 고려하는 것이 필요합니다. 각 기능을 성공적으로 구현하면, 사용자는 더욱 편리하게 영화를 검색하고, 좋아하는 영화를 저장하여 나중에 쉽게 찾아볼 수 있는 경험을 제공받게 됩니다.

이러한 기능들은 후속 프로젝트나 실제 서비스에서도 유용하게 활용될 수 있습니다.

관련 영상

같이 보면 좋은 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다