- 시퀄라이즈의 destroy 매서드와 라우터 활용
- 시퀄라이즈의 update 매서드와 라우터 활용
- 사용자-게시글 모델 간 N:M 관계 정립 후 라우터 활용
- 등록자와 현재 로그인한 사용자가 같을 때, 시퀄라이즈의 destroy 매서드와 라우터 활용
- 객체 선언 후 객체에 사용자 정보 저장, 객체 안에 캐싱된 값이 있으면 조회
- 진행 안함
- 캐시 데이터와 디비데이터의 불일치를 해결할 방법이 따로 처리됨이 없음
기능 명세
- 회원가입 ,회원 탈퇴
- 로그인 ,로그 아웃
- 팔로잉하기/언팔로잉하기
- 해시태그 추가/수정-삭제(글수정으로 대체)/검색
- 글 추가/보기/삭제 , 수정
- 이미지 업로드 , 수정, 삭제
기술 명세 패스포트 인증 처리 - passport 화면 데이터 전송 - axio 데이터 베이스 처리 - sequelize 이미지 처리 라이브러리 사용 - multer
웹 개발 패턴 M: Model V: View C: Controller(router)
기능 설계서 -게시글 좋아요/좋아요 취소 기능 설계
- 좋아요 버튼을 만든다
- 처음에는 아무색이 없고 눌렀을 때 버튼 색이 바뀐다
- 좋아요가 되어 있으면 다시 눌렀을 때 색이 사라진다
- 내가 좋아요 눌렀던 것만 색이 칠해져서 나온다
- 구현 방향 프론트 설계
- if 조건으로 색을 넣을지 말지를 css로 조절이 된다
- user의 likePost 정보를 가져오게 해서 화면에서 좋아요를 보여줄지 말지 정해준다
- user 정보를 서버로 보내준다
- post 정보도 서버로 보내준다
- axio 로 서버로 보내준다
- 좋아요/좋아요 해제 를 분기해서 처리
백엔드 설계
- db 설계
- 좋아요 테이블을 만든다
- sequelize 관계 설정을 하면 자동으로 만들어진다
-
좋아요 컬럼에는 id, postId, userId, createdAt 3, 좋아요는 연관관계가 post, user에 모두 있어야 한다
-
router 에서 프론트에서 준 데이터를 받는다
- url에 따라 like 와 like-cancel 이 분기가 되었다
- data를 받았으니 해당 게시글을 디비에서 일치되는 좋아요 테이블의 userId, postId 가 일치되는 로우가 있는지 확인한다
- 좋아요 없으면 새로운 좋아요 row를 추가한다
- 좋아요 있으면 기존 좋아요를 row에서 삭제한다
- addLike, removeLike 를 호출해서 제어
- 완료 응답을 프론트에 알려준다
- 프론트에서는 새로고침을 통해 라이크상태를 갱신한다