Skip to content

3주차 기업과제 (API 서버와 통신해서 작동하는 댓글 프로젝트를 Redux를 통해 구현)

Notifications You must be signed in to change notification settings

wanted-pre-onboarding-frontend-6/pre-onboarding-assignment-week-3-2-team-5

 
 

Repository files navigation

댓글 프로젝트

📌 프로젝트 소개.

목표

API 서버와 통신해서 작동하는 댓글 프로젝트를 Redux를 통해 구현

개발 기간

2022/09/16 ~ 2022/09/19


📌 배포.

https://comments-fe-5.netlify.app/


📌 프로젝트 설치 및 시작.

프로젝트 클론

$ git clone https://github.com/wanted-pre-onboarding-frontend-6/pre-onboarding-assignment-week-3-2-team-5.git

패키지 설치

$ npm install

서버 실행

$ npm run api
$ npm run start

📌 팀원 소개


김성용(팀장) 성민규 임상빈 이재하 박세리
FE Developer FE Developer FE Developer FE Developer FE Developer

📌프로젝트 과정 소개


📌 프로젝트 구조

open
├─apis
├─components
│  ├─Button
│  ├─Input
│  └─Select
├─context
├─hooks
├─pages
│  └─components
├─reducer
├─saga
├─store
├─types
│  ├─api
│  └─style
└─utils

📌기술 스택

TypeScript


📌 요구 사항

  • 댓글 불러오기, 작성, 수정, 삭제가 동작하도록 기능 구현
  • 페이지네이션
  • 댓글 작성, 수정, 삭제 후 동작
    • 댓글 작성하고 난 뒤: 다른 페이지에 위치하고 있었더라도 1페이지로 이동, 입력 폼 초기화
    • 댓글 수정하고 난 뒤: 현재 보고있는 페이지 유지, 입력 폼 초기화
    • 삭제하고 난 뒤: 1페이지로 이동
  • Redux logger, Redux-Devtools 설정 필수
  • Redux를 이용한 비동기 처리 필수

📌 Best Practice

💡redux-toolkit을 사용했습니다.

redux를 사용할 때면 프로젝트가 크지 않음에도 복잡한 코드를 작성해야 합니다. store를 설정해주는 과정이 복잡하고, redux를 좀 더 편하게 사용하기 위해서는 패키지를 많이 설치해야하며, boilerplate 코드가 비효율적으로 깁니다. 그렇기 때문에 이번 프로젝트에서 redux를 효율적으로 관리하기 위해서 redux-toolkit을 사용했습니다.

redux-toolkit의 createSlice는 자동적으로 immer를 내부적으로 사용하기 때문에 불변성을 편리하게 관리할 수 있고 reducer를 더 쉽고 간단하게 작성할 수 있습니다.

💡redux-thunk 대신 redux-saga를 사용했습니다.

redux-thunk를 사용할 때 고차함수 작성 등 코드 복잡도가 더 높다고 느껴지기 때문에 redux-saga를 선택하게 되었습니다. 그리고 api 작업 실패 시 재요청, 발생한 액션에 따라서 원하는 액션 디스패치 등 saga로는 thunk보다 비동기처리를 다양하게 처리할 수도 있습니다.

About

3주차 기업과제 (API 서버와 통신해서 작동하는 댓글 프로젝트를 Redux를 통해 구현)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.6%
  • JavaScript 2.6%
  • HTML 2.2%
  • Shell 0.6%