[스위프3기] 웹 프로젝트 meView 회고록

suhwani·2024년 3월 11일
0

✅ 스위프란?


  • 기획자, 디자이너, 개발자가 모여서 프로젝트를 완성하는 6주 단기 웹 프로젝트이다.
  • 스위프에서는 기본적인 가이드라인과 매주 정기회의, 호스팅, 커뮤니티 서비스를 지원해준다.

😍 내가 만든 웹 서비스, meView

링크 : meView


✅ meView 란 무엇인가


  • 어떤 서비스인가요??
    • 지인의 리뷰로 나를 알아보는 강약점 발굴 서비스입니다 !!
  • 언제 사용하나요??
    • 프로젝트가 끝났을 때, 취업할 때, 자기소개서 작성할 때 등등…
    • 내가 어떤 강점이 있고, 약점이 있는지를 알 수 있고, 프로젝트에서 나의 모습, 친구들에게 나의 모습,
      회사에서의 나의 모습 등을 주변 지인이나 팀원들에게 피드백 받고,
      나를 알아갈 수 있는 기회를 제공합니다 !!
  • 어떻게 사용하나요??
    • 어떤 주제에 대해서 리뷰를 받고 싶은지, 어떤 대상에게 받고 싶은지 등등을 정하고, 답변을 작성할 수
      있도록 링크를 전달한다. 링크를 받은 사람은 링크를 통해 답변을 작성합니다.
    • 질문자는 받은 답변을 모아볼 수 있고, 나의 강약점을 능력과 연결지어서 볼 수 있습니다.
  • 팀은 어떻게 이루었나요??
    • 기획자 1 / 디자이너 1 / 프론트개발 2 / 백엔드개발 2
    • 내가 맡은 역할
      • Back-End API 개발 & 클라우드 서버, DB 구축 및 배포
      • 다른 팀원분들과 의사소통, 협업 담당

✅ 프로젝트는 어떤 구조인가


  • Front-End: React 를 활용해 웹 서비스를 만들었고, vercel 을 통해서 배포했습니다.
  • Back-End: Nestjs 를 활용해 웹 서버를 구축했고, AWS 를 활용해 배포했습니다.
    • 이번 프로젝트를 통해 배운 점
      1. Nestjs 프레임워크에 대한 전반적인 이해와 API 작성했습니다.
      2. decorator, filter, interceptor, guard… 등등에 대한 사용법을 익혔습니다.
      3. prisma-postgresql 을 사용하여 relation 관계와 다대다 관계를 해결했습니다.
      4. AWS EC2, RDS, S3 를 구축하며 인바운딩, 아웃바운딩 등 AWS 서비스를 직접 설정하며 사용법을 익혔다.

✅ 어떤 API 가 필요했나


  • 총 19개의 API 를 작성했고, Get, Post, Put 요청에 대한 API 를 작성하였습니다.
  • URL 과 Parameter, return type 등을 노션과 Postman 을 이용해 프론트엔드와 협업하였습니다.
  • 로그인과 답변 작성을 제외한 나머지 API 는 Guard 를 이용해 로그인 상태를 검사했습니다.

ERD 는 어떻게 작성했나


  • 여러 테이블과 각 relation 을 설정했고, 다대다 관계를 연결테이블인 Review 를 생성해 해결했습니다.
  • ORM 은 Prisma 를 사용해서 N+1 문제가 발생하지 않았습니다.

후기: 좋았던 점 & 아쉬운 점에 대해서


좋았던 점

  • typescript 를 사용해보았고, 협업할 때 javascript보다 강한 장점이 있다는 것을 알았다.
  • 인터페이스, 데코레이터, 필터, 가드 등등을 사용해 더욱 견고하고, 내가 원하는 시퀀스대로 API 를
    작성할 수 있었다.
  • 기존 Node 만 사용했을 때 자유도가 높은 탓에 오히려 내가 하는 방식이 맞는지를 고민했었는데,
    Nest 는 자유도 대신 규칙이 존재하였고, life cycle 이 가이드라인을 어느정도 잡아주는 느낌이라
    사용하기 편리했다.
  • prisma 를 사용하여 db 에 변경사항을 반영하거나, db 의 내용을 prisma 모델로 변경하기도 편헀고,
    relation 을 설정하고, 어떤 속성이 있는지, 어떤 타입인지를 알 수 있어서 좋았다.

아쉬웠던 점

  • authority 에 따라서 Admin 과 일반 User 를 구분하여 서버에서 사용할 수 있는 API 를 구분하고 싶었지만,
    시간이 부족한 탓에 Admin 페이지를 따로 만들지 못해서, Role 을 따로 나누지 않았다.
    다음 프로젝트에서는 admin 과 user 를 구분하여 적용하고 싶다.
  • 프로젝트를 시작할 때 CI/CD 와 cloud DB, server 를 일단 세팅해놓고 시작했다면, 프론트엔드와 연동하는 과정에서 더욱 수월했을 것 같다. 또한 API 를 작성할 때도 Parameter 와 Response 에 더미 데이터를 넣고 시작했다면 더욱 좋았을 것 같다.
    → Postman 과 Notion 을 통해 Parameter, Response Format 을 정하고 했음

스위프, 추천할만한가 ?


🤩🤩🤩🤩🤩🤩🤩

네네네네네네네
무조건 하세요!!!
물론 조금 힘들고, 지칠 수도 있지만 나에게 할 여유가 있다?
무조건 하세요!!!

profile
Backend-Developer

0개의 댓글