지금까지 배운 html, css, javascript, DOM 등을 활용하여 나만의 아고라스테이츠(질문 게시판)을 만들어야 한다.
- 디스커션 나열
- 디스커션 추가 기능
- css로 스타일 및 레이아웃 추가
- 현지 시간 적용
- 페이지네이션 기능
- 디스커션 유지 기능(local storage)

new Data()로 현지 시작 적용
- 한 화면에 표시할 데이터 배열의 index 범위를 정하고
- 페이지 버튼을 누르면 데이터 배열의 index 범위를 변경하여
- 화면에 render한다

display: sticky를 적용하여 스크롤해도 화면에 고정되게 설정
- 더미데이터 배열의 길이를 한 화면에 표시할 데이터 수로 나눠서 전체 페이지 수를 구하고
- 반복문을 사용하여 1부터 전체 페이지 수까지 버튼을 추가한다

let data; // 변수 data 선언
const dataFromLocalStorage =
localStorage.getItem('agoraStatesDiscussions')
// local storage에서 더미 데이터를 추출
if (dataFromLocalStorage) {
data = JSON.parse(dataFromLocalStorage);
// 가져온 데이터가 있다면, JSON 형식으로 파싱하여 data 변수에 할당
} else {
data = agoraStatesDiscussions.slice();
}
// 가져온 데이터가 없다면, 더미 데이터 배열을 복사하여 data 변수에 할당localStorage.setItem('agoraStatesDiscussions', JSON.stringify(data)); 으로 local storage에 저장const resetButton = document.querySelector('section.localStorage_reset');
resetButton.addEventListener('click', () => {
localStorage.removeItem('agoraStatesDiscussions');
data = agoraStatesDiscussions.slice();
limit = 10;
page = 1;
render(ul, 0, limit);
})
페이지네이션 기능
계속 코드를 하나하나 뜯어서 해석해보니 알고리즘이 이해가 되었고, 이전다음 기능은 reference를 참고했지만 1,2,3,.. 은 거의 직접 코드를 짤 수 있었다.
local storage
local storage라는 개념을 처음 보아서 chatGPT 등을 통해 개념을 배우고, reference를 통해 코드의 진행 원리를 알게 되어 적용하였다.