8월 5일 (월) 회고 - dev-FEFIVE/NadoCat GitHub Wiki
각자 자유로운 형식으로 작성해주세요.
문소영
박민혜
- 회원가입에서 비밀번호 암호화에 대해 crypto vs bcrypt에 대해 찾아보았다. bcrypt가 보안이 좀 더 강해서 비밀번호를 생성할 때 bcrypt가 더 안전하고, crypto는 인증키나 비밀번호 찾기 시에 이용된다고 하여 crypto로 구현했던 것을 bcrypt로 변경하기로 하였다.
- 우리가 처음에 email을 user_id로 사용하기로 했는데, 지금보니 id(AI), user_id, email 이렇게 id에 관련된 컬럼이 세개라 의아했다. 다음 회의 때 여쭤봐야겠다.
- prisma로 원본 디비 틀을 로컬 디비를 생성하여 가져오는 방법을 알게 되었다. 이제 마음 편히 값을 추가하여 테스트 해볼 수 있을 것 같다.
박소현
- 컨벤션 등등 팀원끼리 통일해야하는 내용들을 얼추 다 합의봤다고 생각했는데도, 다시 합의 봐야할 것이 계속 계속 나온다. 와 이런것까지 생각해야했나! 하고 살짝 아찔해하다가도, 그래도 갈 길 너무 많이 가버리는 것보다 수시로 대화를 하는 게 참 좋다고 느낀다. 오늘 작업하는 중에 prisma에서 delete() 메서드를 사용할 때 pk 조건을 기반으로만 동작을 하는데, deleteMany()는 다른 조건으로도 동작한다는걸 알게 되었다. 오늘 작업한 실종 고양이 즐겨찾기에서는 pk를 사용할 생각이 딱히 없었기 때문에, delete()와 deleteMany() 중 무얼 사용할지 고민하고 있다. 내일 꼭 잊지 말고 물어보아야겠다.
- 팀원 중 한 분이 다른 지인에게 프로젝트 피드백을 받았는데, 전혀 생각하지 않았던 내용이 많아 허를 찔린 기분이었다. 주변에 피드백 받는걸 늘 의식해야겠다는 생각을 했다.
이화정
- 커뮤니티 게시판 목록 조회와 댓글에 커서 방식 페이지네이션을 적용하였다. prisma 공식 문서를 보고 했는데 Postman에서는 의도대로 동작하긴 하는데 실제 프론트에서 어떻게 동작하는지는 확인해 봐야 할 것 같다. 그리고 최신순, 조회순 정렬은 구현했지만 좋아요 기준 정렬은 문제가 있어서 구현하지 못했다. 이것도 좀 테스트해봐야 한다.
- 게시글 수정 방식에 대해서도 고민을 좀 많이 했다. 게시글 수정은 제목, 내용, 태그, 이미지가 모두 변경 가능한 구조인데 제목과 내용은 문제가 되지 않지만 태그와 이미지가 문제였다. 생각해 본 방식은 두 가지인데 태그와 이미지를 삭제했다가 다시 등록하는 방법, 변경되는 부분만 적용하는 방법이 있었다. 이 중에 후자의 방법을 선택했는데 프론트에서 삭제되는 값, 기존의 값, 추가되는 값을 다 받아와서 처리하는 방식을 선택했다. 이유는 찾아본 결과 이쪽이 더 합리적이고 성능이나 안정성, 데이터 무결성 유지 등에 유리하기 때문이다.
- 게시글 수정에서 이미지 순서와 썸네일을 어떻게 처리할까에 대한 고민도 했었다. 회의를 통해 방법을 어느 정도 결정하긴 했는데 구현 방법을 좀 찾아봐야 될 것 같다.
- 처음에 DB를 설계할 때 모든 종류의 게시판의 이미지, 태그, 좋아요를 테이블을 하나씩만 만들어서 post_id, category_id를 이용해서 데이터를 가져오도록 하려고 했다. 이게 Prisma를 써서 그런 건지 아니면 원래 안되는 건지
Foreign key constraint failed on the field: post_id
오류가 계속 발생했다. 일단 생각난 해결 방법은 게시판 카테고리별로 테이블을 만들어서 데이터를 저장하는 것이다. 다른 방법이 더 있는지 찾아봐야 될 것 같다. - 게시글 삭제 부분에서도 문제가 있었다. 게시글에는 이미지와 태그가 있기 때문에 데이터를 삭제하는 순서가 매우 중요했다. 일단은 게시글 삭제 -> 태그, 이미지 삭제 순서로 구현해놨는데 Cascade 옵션을 사용하면 되는 게 아닐까라는 생각이 들었다. 장단점을 찾아보고 팀원들과 회의를 통해 결정해야겠다.
- Prisma 이거 다 좋은데 alias가 조금 화가 난다.
@map
라는 게 있던데 이걸로 해결이 가능한지 찾아봐야겠다. - 게시판 글 작성 부분을 구현하면서
prisma.$transaction
을 적용해 보았다. 아주 기본적인 것만 사용해서 자세한 방법을 공식 문서를 통해 알아봐야 될 것 같다.
장세림
- serverDB와 localDB를 분리했다. MySQL workbench를 사용중이기 때문에 제공하는 기능으로 DB dump를 할 생각이었는데, workbench mysqldump.exe와 MySQLserver 버전 차이 이슈로 문제가 있었다. 서버 버전을 건드리기에는 더 큰 문제가 발생할 수도 있을 것 같아 우선 prisma에서 제공하는 data migration 기능을 사용했다.
- API 구현 도중 DB 이슈로 시간을 많이 잡아먹혔다. 함께 작성하고 점검을 했는데도 막상 개발에 들어가서야 보이는 것들이 있다. 게시글 생성에 썸네일이 필요한데 썸네일을 포함한 이미지 생성에도 게시글 아이디가 필요한 상황으로, 동시에 서로를 필요하기 때문에 모순이 발생했다. 관련해 팀원들과 회의가 필요해 보인다.
- 개발 초기 단계인데도 DB 문제가 매일 같이 발생하고 있어 serverDB와 localDB 분리는 필수로 보인다. 팀원들에게 해당 사항을 제안해 볼 예정이다.
- Todo Tree Extention 사용을 제안했다. 자신의 코드를 점검할 때와 팀원들과의 원활한 소통을 도와주는 것 중 하나가 잘 작성한 주석이라고 생각한다. 적용해본 결과 가시성이 좋아져 마음에 들었다.