인터넷에서 데이터를 검색하고 표시하는 웹 애플리케이션을 개발할 때, JSON (JavaScript Object Notation) 데이터를 사용하는 것은 흔한 일입니다. JSON은 데이터를 구조화하고 전송하기 위해 사용되는 일반적인 형식으로, 많은 웹 서비스가 JSON을 사용하여 데이터를 전송합니다.
이 글에서는 자바스크립트를 사용하여 JSON 데이터를 가져와 온라인에서 동적으로 검색하는 방법에 대해 알아보겠습니다.
1. JSON 데이터 가져오기
먼저, JSON 데이터를 가져와야 합니다. 이를 위해서는 자바스크립트의 fetch
API를 사용할 수 있습니다. 다음은 간단한 예시입니다:
fetch('http://example.com/data.json')
.then(response => response.json())
.then(data => {
// 데이터 처리 로직 작성
})
.catch(error => {
console.error('데이터를 가져오는 중 오류 발생:', error);
});
위 예시에서는 fetch
함수를 사용하여 http://example.com/data.json
URL에서 데이터를 가져옵니다. response.json()
메서드는 응답을 JSON 형식으로 파싱합니다. 가져온 데이터는 두번째 then
블록에서 사용할 수 있습니다.
2. 데이터 검색 및 표시하기
JSON 데이터를 가져온 후, 원하는 데이터를 검색하여 화면에 표시할 수 있습니다. 예를 들어, 사용자가 검색어를 입력하면 해당 검색어와 매칭되는 데이터를 찾아서 표시하는 기능을 만들 수 있습니다.
const searchData = (data, query) => {
return data.filter(item => {
// 필요한 검색 로직 작성
return item.name.toLowerCase().includes(query.toLowerCase());
});
};
const displaySearchResults = (results) => {
// 검색 결과를 화면에 표시하는 로직 작성
};
// JSON 데이터 가져오기
fetch('http://example.com/data.json')
.then(response => response.json())
.then(data => {
const searchInput = document.getElementById('search-input');
searchInput.addEventListener('input', () => {
const query = searchInput.value;
const searchResults = searchData(data, query);
displaySearchResults(searchResults);
});
})
.catch(error => {
console.error('데이터를 가져오는 중 오류 발생:', error);
});
위 예시에서는 searchData
함수를 사용하여 검색어와 매칭되는 데이터를 찾습니다. 검색어와 데이터의 문자열을 비교할 때 대소문자를 구분하지 않도록 소문자로 변환합니다.
displaySearchResults
함수는 검색 결과를 화면에 표시하는 로직을 담고 있습니다. 이 함수를 사용하면 검색 결과를 동적으로 업데이트할 수 있습니다.
마지막으로, searchInput
요소에 입력값이 변경될 때마다 검색을 수행하고 결과를 표시하는 이벤트 리스너를 추가합니다.
3. 추가적인 개선
검색 기능 외에도 페이징, 정렬, 필터링 등의 기능을 구현할 수 있습니다. 이를 위해 자바스크립트의 기능을 활용하여 JSON 데이터를 동적으로 처리할 수 있습니다. 또한, UI를 개선하여 사용자 경험을 향상시킬 수도 있습니다.
const searchData = (data, query, page, pageSize) => {
// 필요한 검색 로직 작성
};
const displaySearchResults = (results, page, pageSize) => {
// 검색 결과를 화면에 표시하는 로직 작성
};
// JSON 데이터 가져오기
fetch('http://example.com/data.json')
.then(response => response.json())
.then(data => {
const searchInput = document.getElementById('search-input');
const currentPage = 1;
const pageSize = 10;
const performSearch = () => {
const query = searchInput.value;
const searchResults = searchData(data, query, currentPage, pageSize);
displaySearchResults(searchResults, currentPage, pageSize);
};
searchInput.addEventListener('input', performSearch);
performSearch();
})
.catch(error => {
console.error('데이터를 가져오는 중 오류 발생:', error);
});
위 예시에서는 검색어 외에도 현재 페이지와 페이지 크기를 추가로 전달하여 검색 결과를 제어합니다. performSearch
함수는 검색어와 페이지 정보를 통해 검색을 수행하고 결과를 표시합니다. 초기 로딩 시에도 검색을 수행할 수 있도록 performSearch
함수를 호출합니다.
결론
이제 자바스크립트에서 JSON 데이터를 사용하여 온라인에서 동적으로 검색하는 방법을 알아봤습니다. JSON 데이터를 가져오고, 데이터를 검색하고, 결과를 화면에 표시하는 기능을 구현하기 위해 자바스크립트의 다양한 기능을 활용할 수 있습니다. 이를 통해 사용자에게 더 나은 검색 경험을 제공할 수 있습니다.