-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[강원대 FE_허윤수] 미션 제출합니다. #62
Open
sugoring
wants to merge
86
commits into
next-step:main
Choose a base branch
from
sugoring:sugoring
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 문서 언어를 한국어로 설정 (lang="ko") - 페이지 제목 설정 ([강원대 FE_허윤수]) - JavaScript 모듈 (/src/App.js) 로드
- React.createElement를 사용하여 App.js에서 Main 컴포넌트 렌더링 - ReactDOM.createRoot로 루트 div에 Main 컴포넌트 렌더링
- 할 일 입력 폼 추가 - 할 일 목록 표시를 위한 기본 UI 구성 - 각 할 일 항목에 완료 및 삭제 버튼 추가
- TodoForm 컴포넌트 생성 - Main 컴포넌트에서 TodoForm 컴포넌트 사용
- TodoForm, TodoItem, TodoList 컴포넌트 생성 및 분리
- 유틸리티 함수들을 각각의 파일로 분리하여 todoUtils 폴더에 저장
- handleInputChange, handleSubmit, validateTodo, addTodo, toggleComplete, deleteTodo 함수를 각각의 파일로 분리
- TodoForm 컴포넌트에서 handleInputChange 및 handleSubmit 함수 사용
- TodoContainer 컴포넌트로 분리
- useTodos 훅으로 분리
- 할 일 목록을 필터링할 수 있는 '전체', '진행 중', '완료' 버튼 추가
- 필터링 상태를 관리하는 로직을 useTodos 훅에 추가
- 필터 상수를 filters.js 파일로 분리 - 핸들러 함수를 todoHandlers.js 파일로 분리
- 상태 관리 로직을 useTodosState 훅으로 분리 - 필터링 로직을 useFilteredTodos 훅으로 분리
- if 문을 switch 문으로 변경하여 가독성 향상
- 함수 네이밍을 간결하고 일관되게 변경 (addTodo, toggleComplete, deleteTodo, setFilter)
- 함수에 주석을 추가하여 목적과 매개변수, 반환값 설명
- 함수에 주석을 추가하여 목적과 매개변수, 반환값 설명
- 함수에 주석을 추가하여 목적과 매개변수 설명 - 매개변수 이름을 명확하게 변경 (event, todoText, resetInput)
- 함수에 주석을 추가하여 목적과 매개변수 설명 - 매개변수 이름을 명확하게 변경 (event)
- 함수에 주석을 추가하여 목적과 매개변수, 반환값 설명
- 함수에 주석을 추가하여 목적과 매개변수, 반환값 설명
- 필터링된 할 일 목록 상태 관리를 위한 useFilteredTodosState 훅 추가 (hooks/useFilteredTodosState.js) - 최종 훅 useTodoStateManager에서 필터링된 할 일 목록 상태 훅을 결합하여 반환하도록 변경 (hooks/useTodoStateManager.js)
- 필터링 로직을 관리하는 filterTodos 함수 추가 (todoUtils/filterTodos.js)
- 전체 필터 버튼을 AllFilterButton 컴포넌트로 분리 (components/TodoFilter/AllFilterButton.jsx) - 진행 중 필터 버튼을 ActiveFilterButton 컴포넌트로 분리 (components/TodoFilter/ActiveFilterButton.jsx) - 완료 필터 버튼을 CompletedFilterButton 컴포넌트로 분리 (components/TodoFilter/CompletedFilterButton.jsx)
- 입력 필드 상태를 관리하는 TodoInput 컴포넌트 추가
- 할 일 텍스트와 완료 상태를 렌더링하는 TodoText 컴포넌트 추가 - 완료 상태를 토글하는 ToggleCompleteButton 컴포넌트 추가 - 할 일을 삭제하는 DeleteButton 컴포넌트 추가
- 총 할 일 개수를 계산하고 렌더링하는 TotalTodos 컴포넌트 추가 - 완료된 할 일의 개수를 계산하고 렌더링하는 CompletedTodos 컴포넌트 추가 - 진행 중인 할 일의 개수를 계산하고 렌더링하는 ActiveTodos 컴포넌트 추가
- 카멜케이스로 파일명 통일을 위한 준비 작업 - 기존 src 모든 파일 삭제
- 프로젝트 설명, 진행 소감, 저장소 구조, 기본 및 선택 기능
- 애플리케이션 초기화 시 로컬 스토리지에 저장된 할 일 목록을 불러옵니다.
- 할 일 목록이 변경될 때마다 로컬 스토리지에 현재 할 일 목록을 저장합니다.
- 애플리케이션 초기화 시 로컬 스토리지에 저장된 필터 상태를 불러옵니다. - 필터 상태가 변경될 때마다 로컬 스토리지에 현재 필터 상태를 저장합니다.
- 모든 컴포넌트에 공통된 스타일링 적용
Merge branch 'sugoring' of https://github.com/sugoring/react-todo-list-precourse into develop # Conflicts: # src/components/TodoForm.jsx
develop 브랜치에서 sugoring 브랜치로 병합
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[강원대 FE_허윤수]
이 애플리케이션은 사용자가 할 일을 추가, 삭제, 완료 상태로 전환할 수 있는 간단한 할 일 목록(Todo List) 관리 웹 애플리케이션입니다. 동작은 TodoMVC의 기능 동작을 참고하였습니다.
과제 진행 소감
"함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라"라는 요구사항에 맞추기 위해 최대한 노력했습니다. TodoApp(src\components\TodoApp\TodoApp.jsx) 컴포넌트를 더 작은 단위로 분리하여 상태 관리를 보다 효율적으로 하려고 시도했습니다. 이를 위해 상태를 저장하는 부분을 여러 컨테이너로 분리했으나, 이 과정에서 각 컨테이너 간에 상태가 공유되지 않는 문제점이 발생했습니다. 😓
이 문제를 해결하기 위해 CONTEXT API를 사용할 수 있다는 것을 알게 되었습니다. 하지만 아직 CONTEXT API에 대한 공부가 충분히 이루어지지 않아, 이를 적용하는 데 어려움을 겪었습니다. 앞으로 고급 개념을 학습하여 더 나은 코드를 작성할 수 있도록 노력할 것입니다. 📚
저장소
저장소 URL: https://github.com/sugoring/react-todo-list-precourse.git
브랜치
sugoring
fix/addTodo-function-error
develop
1. 초기 개발
초기에 메인 브랜치인
sugoring
에서 개발을 시작했습니다.2. 오류 수정
개발 도중
addTodo
함수와 관련된 오류가 발생하여, 오류를 해결하기 위해fix/addTodo-function-error
브랜치에서 수정 작업을 진행하였습니다.3. 개발 브랜치 전환
오류 수정 후, 메인 브랜치(
sugoring
)로 돌아와서 오류가 해결된 상태를 반영한 뒤, 이후 개발 작업은develop
브랜치에서 계속 진행하였습니다.4. 과제 제출
개발 작업을 완료한 후,
develop
브랜치에서 작업 내용을sugoring
브랜치로 PR(Pull Request)하여 병합하였고, 과제를 제출하였습니다.기본 기능
[할 일 추가 기능 구현]
[할 일 삭제 기능 구현]
[할 일 목록 보기 기능 구현]
[할 일 완료 상태 전환 기능 구현]
선택 요구 사항
[할 일 필터링]
[해야 할 일의 총 개수 확인]
[데이터 지속성]