SNS-APP 프로젝트

채희태·2022년 10월 25일

1. 소개

프로젝트명: SNS-APP
제작: 개인 프로젝트
제작기간: 2달

사용 기술:

  • front: NextJs, Redux, StyledCompoenent, antd, media-query(반응형)
  • backend: NodeJs, Express, MongoDB

사용 라이브러리:

  • axios, cookie, dayjs, dropzone, multer, slick, env, nodemon, jwt, cors, mongoose 등

2. 목적

  1. 가장 기본적인 로직인 CRUD 개발 및 axios를 이용한 http 비동기 통신 구현을 통한 풀스택 개발 실력 향상.
  2. 실무에서 사용되는 디자인 방법인 반응형 디자인, styledComponent, antd의 사용을 통한 UI 디자인 개발 실력 향상.
  3. 회원가입, 로그인, 로그아웃, 로그인 유지 기능을 구현하며 jwt를 이용한 토큰 생성 및 cookie의 http 통신 방법 공부.
  4. 다양한 서드파티 라이브러리를 사용하며 숙련도 향상.

3. 기획

4. 기능소개

4-1. 포스트 업로드

  • 로그인한 사용자는 이미지를 업로드할 수 있으며 모달창으로 이미지를 확인할 수 있다.
  • 포스트 작성 중 이미지 삭제를 눌러 해당 이미지를 삭제할 수 있다.
  • 포스트는 infinityScroll 형식으로 구현하였으며 8개씩 로드된다.

4-2. 포스트 수정 및 삭제

  • 로그인한 사용자는 자신이 업로드한 포스트를 수정 및 삭제할 수 있다.
  • 포스트 수정 중 이미지를 업로드 및 삭제를 할 수 있다.

4-2. 좋아요

  • 로그인한 사용자는 해당 포스트에 좋아요 버튼을 클릭할 수 있다.
  • 좋아요 버튼을 한 번 클릭하면 좋아요가 추가되고, 한 번 더 클릭하면 좋아요가 제거된다.

4-3. 팔로우

  • 로그인한 사용자는 다른 유저를 팔로우할 수 있다.
  • 팔로우 버튼을 한 번 클릭하면 팔로우가 추가되고, 한 번 더 클릭하면 팔로우가 제거된다.
  • 팔로워 리스트에서 나를 팔로우 한 유저를 볼 수 있으며 나를 팔로우한 유저를 내가 팔로우/언팔로우 할 수 있다.
  • 팔로잉 리스트에서 내가 팔로우한 유저를 볼 수 있으며 내가 팔로우한 유저를 팔로잉 리스트에서 삭제할 수 있다.

4-4. 댓글

  • 로그인한 사용자는 해당 포스트에 댓글을 달 수 있다.
  • 삭제 버튼을 눌러 댓글을 삭제할 수 있다.

4-5. 스크랩

  • 로그인한 사용자는 해당 포스트를 스크랩할 수 있다.
  • 상단의 스크랩 탭을 눌러 스크랩한 포스트를 볼 수 있으며 삭제를 눌러 스크랩 리스트에서 삭제할 수 있다.

4-6. 프로필

  • 프로필 페이지에서 유저의 이미지, 닉네임, 자기소개를 수정할 수 있다.

4-7. 회원가입

  • bcrypt를 통해 비밀번호를 암호화 한다.
  • jwt를 통해 유저 데이터의 token 필드에 jwt를 부여한다.
  • 예외 처리를 통해 동일한 이메일을 사용해 가입할 수 없다.

4-8. 로그인

  • bcrypt를 통해 비밀번호를 암호화해 유저 데이터와 대조한다.
  • 로그인 시 해당 유저의 token을 cookie에 저장한다.
  • 페이지 이동 시 로그인 유지를 위해 cookie의 token을 서버로 보내고 서버에서 해당 유저의 token정보와 대조해 로그인을 유지시킨다.

4-9. 로그아웃

  • 로그아웃 시 브라우저의 cookie를 삭제하여 로그아웃 시킨다.

4-10. 반응형

  • xl, lg, md, sm 사이즈로 나누어 웹을 반응형으로 구현하였다.
  • media query 사용.

5. 마무리

front는 vercel, backend는 heroku로 배포했습니다.
앱 주소: https://project-sns-app-frontend-35sx1dc36-heetaechae.vercel.app/
현재 서버 에러로 인해 aws ec2를 공부하여 재배포할 예정입니다.

GIT 레포 주소: https://github.com/HeetaeChae/project-sns-app

profile
기록, 공부, 활용

0개의 댓글