해당 페이지는 연습용으로 질문만 있고 정답은 다음 글에서 공개합니다
<aside>
☝ 로직
</aside>
1. 할 일 목록을 저장할 빈 배열을 선언
let todos = [];
2. DOMContentLoaded 이벤트가 발생하면, 즉 문서 로딩이 완료되면 함수들을 실행
<aside>
☝ 로직
- 기존에 todos에서 로컬스토리지에 저장된 값이 있다면 꺼내오고 없다면 빈 배열을 할당
- 렌더링 함수를 호출 (밑에서 구현 예정)
</aside>
3. 할 일을 추가하는 함수
<aside>
☝ 로직
- addTodo 함수 구현
- input을 가져오고, 새로운 투두에 그 인풋의 값을 넣어줌
- 만약 새로운 투두가 있다면, 투두리스트에 추가해주고
- 로컬 스토리지에도 추가해줌
- 렌더링 함수를 호출하고, 인풋의 값은 비워줌
</aside>
4. 할 일 목록을 렌더링하는 함수
<aside>
☝ 로직
- list를 가져오고, list의 HTML을 빈 값으로 할당
- todos배열을 순회하면서, li 요소를 생성
- li 요소의 값은 todo로 채워줌
- delete 버튼을 생성하고 값은 Delete로 채워줌
- delete 버튼을 클릭했을 때 removeTodo 함수를 호출
- removeTodo 함수는 (밑에서 구현 예정)
- li 요소의 자식으로 버튼을 추가하고
- list의 자식으로 li를 추가
</aside>
5. 할 일을 삭제하는 함수
<aside>
☝ 로직
- index를 인자로 받아옴
- 배열의 메소드를 호출해서 인자로 넣어준 index를 삭제
- 로컬 스토리지에도 업데이트
- 렌더링 함수를 호출
</aside>