프로젝트 최종 점검
한줄 평 : 둘러보면 오류들이 상당히 많이 있지만, 디자인도 예쁘고, 기본적인 기능에 충실한 사이트를 만들어 내었습니다.
- 짧은 기간동안에 만든 사이트임에도 불구하고,
- 마이크로애니메이션들, 애니메이션들이 과도하지 않게 들어가서 괜찮아보입니다.
- 크롬 익스텐션 기능까지 추가한 것이 재밌는 부분입니다.
버그 및 수정하면 좋은 부분
버그를 다 적기엔 여백이 부족하여 눈에 띄는 부분들을 알려드립니다.
- 폴더를 Private으로 설정하였음에도 다른 사람이 접근 가능함
- 원하는 태그가 없어 커스텀으로 입력할 경우엔 null 값이 들어가며, 등록되지 않음
- 같은 이메일로 여러번 회원가입 가능
- 이메일 인증 후 다음단계에서 뒤로가기 버튼을 굳이 넣을 필요가 없음
- 비밀번호 오류로 작성시 다시 올바른 비밀번호를 넣더라도 ‘비밀번호가 일치하지 않습니다’경고문구가 사라지지 않음
- 프론트에서 직접 S3에 올리는 구조인데, 이미지 업로드 제한이 없어 30mb 이미지파일이 그대로 올라감
- 이미지 올리는 것을 악용해서 프로그래머스에 많은 비용이 청구될 가능성이 있음
코드
- release 코드 관리
- 어디가 배포된 코드인지 확인불가능 (롤백 고려)
- dev, production 환경변수에 따른 배포 환경 설정
- ServerSideRendering이 필요한
- 폴더 관리 미흡
- Modal은 atomic 관점에서 작은 단위라고 생각할텐데, 그 안에 너무 많은 기능과 페이지들이 있어 통일성이 전혀 맞지 않음.

- 페이지 네이밍
- 중간에도 말했듯이 유저 친화적인 네이밍이 아님
- 쓰지 않는 react-query 제거 필요
- API 강제 형변환 방식
return res as unknown as AllFolderList; // 이건 뭐죠
위와 같이 듣도보도 못한 이상한 방식으로 하는 것보다 return type을 정확하게 명시해주는 것이 좋음
export const getLikeFolder = async ( { page, size, sort }: GetFolderList, id: number, ) :Promise<AllFolderList> => { const res = await axios.get(`${LIKES}/${id}`, { params: { page, size, sort, }, }); return res.data };