Wecode - Project 1 (부트캠프)/Project 1 과정

Project 1 - 0일 차: [백엔드] 업무 이해

JBS 12 2023. 9. 10. 19:42

큰 틀과 구조를 알아야,

우리가 가는 방향과 목표를 파악하고

세부 업무를 알고, timeline을 계획하고,

우선순위에 따라 진행할 수 있다. 


프로젝트 목표

  • Threads의 회원가입 기능, 로그인 기능, 게시글 기능- 파악, 개발
  • 프론트엔드: 위 기능들을 구현하기 위해, 회원가입 페이지, 로그인 페이지, 게시글 페이지를 개발 (백엔드는 항상 프론트를 궁금해해야 한다!
  • 백엔드: 위 기능들을 구현하기 위해 회원가입 API/ 로그인 API/, 게시글 CRUD API 개발
  • 프론트엔드 페이지백엔드 API통신하여 프로젝트를 완성합니다.
  • 프로젝트 회고 미팅을 진행하여 프로젝트 기간 동안 잘했던 점과 더 발전시켜야 할 점을 기록합니

즉, 정리하면 

  • 회원가입
  • 로그인 
  • 게시글 생성
  • 게시글 조회 
  • 게시글 업데이트 
  • 게시글 삭제 
  • 프론트와 통신 

[백엔드 프로세스]

1) Wereads MVP 선정

2) 기능/요구 정의서


>> 필수 기능과 선택 기능으로 우선 나누었다. 필수 기능부터 구현하기로 했기 때문에. 


>> 필수 기능

1. 회원가입 / user

Data

  • (필수)email, password, nickname
  • (선택) phoneNumber, birthday(YYYY-MM-DD), profileImage

예외처리

2. 로그인 +  토큰  / user

요구사항

email과 password를 이용하여 서비스 가입자 여부를 확인하고 서비스를 이용할 수 있는 토큰을 발급

 

Data

  • 필수)  email, password

 

3. 게시글 목록 확인: 다른 사람들이 남긴 쓰레드들을 최신순으로 확인 /쓰레드 posts 조회 

  • Data - 필수) nickname, content, createdAt, updatedAt
  • 예외: 아무런 데이터가 없을 경우, 빈 배열을 반환

 

4. 게시글 포스팅 / 쓰레드 posts 

Data 

  • 필수) nickname, content, createdAt
  • 선택) updatedAt

예외처리

  • 로그인 하지 않은 사용자는 쓰레드 글을 남길 수 없습니다. (게시글 포스팅 api에서 로그인 토큰 ) 
  • content는 한 글자 이상/ 그렇지 않을 경우, CONTENT_TOO_SHORT 에러

>>선택 기능 

1. 게시글 수정 : 

  • 요구사항 : 로그인 사용자 본인이 남긴 쓰레드를 수정 (게시글 수정 api에서 로그인 토큰/ 본인 포스팅 확인) 
  • Data - 필수) content
  • 예외: 본인이 남긴 쓰레드가 아닌 쓰레드를 수정 시도 할 경우, 권한 에러
  • 예외: 존재하지 않는 쓰레드를 수정 시도 할 경우, CONTENT_NOT_FOUND 에러



2. 게시글 삭제

  • 요구사항: 로그인한 사용자가 본인이 남긴 쓰레드를 삭제할 수 있게 해주세요.
  • 예외: 본인이 남긴 쓰레드가 아닌 쓰레드를 삭제 시도 할 경우, 권한 에러
  • 예외: 존재하지 않는 쓰레드를 삭제 시도 할 경우, CONTENT_NOT_FOUND 에러

 

3. 좋아요 ‘추가/삭제'

  • 요구사항: 로그인한 사용자가 쓰레드 목록에서 하트 버튼을 눌러 해당 쓰레드를 좋아요 /만약 ’이미 좋아요’ 한 쓰레드일 경우→ 다시 하트 버튼을 클릭 했을 때 ‘좋아요 취소’
  • Data- 필수) threadId
  • 예외1. 로그인 하지 않은 사용자는 좋아요를 누를 수 없습니다. 로그인 없이 시도할 경우 에러를 발생 시킵니다.
  • 예외 2. 존재하지 않는 쓰레드에 좋아요를 누를 경우, CONTENT_NOT_FOUND 에러를 발생 시킵니다.

 

4. 쓰레드 펼쳐보기 

  • 요구사항: 작성된 게시글을 눌렀을때 상세내용을 펼쳐 볼 수 있다
  • 예외: 존재하지 않는 쓰레드를 확인 시도할 경우, CONTENT_NOT_FOUND 에러를 발생 시킵니다.

 

5. 댓글 기능

  • 요구사항: 로그인 한 사용자가 쓰레드 상세 페이지에서 댓글을 추가 (로그인 확인, 쓰레드 상세페이지 간다, 댓글 추가) 
  • 예외: 1. 로그인 하지 않은 사용자는 댓글을 작성할 수 없습니다. 로그인 없이 시도할 경우 에러를 발생 시킵니다. 
  • 예외2. 존재하지 않는 쓰레드에 댓글을 생성하고자 시도할 경우 CONTENT_NOT_FOUND에러를 발생 시킵니다.

 


팀 플래닝 및 역할 분담 (티켓 분배 작업)

  • 목 적 : 프로젝트가 종료 되었을 때 이뤄져 있어야 하는 목표
  • Timeline 작업 시간을 추정하고, 
  • assign, 누가 어떤한 작업을 할 것이지 정하는 것은 매우 중요한 작업

각 미팅 별 세부안내

1. Planning meeting

프로젝트를 시작하기 전, 모두 모여 

  • (접근)어떻게 시작할 것인지,
  • (assign) 어떤 일을 누가 할 것인지,
  • (plan) 그 일을 어떻게 진행할 것인지를 결정
  1. 가장 먼저 우리가 달성하고자 하는 큰 목표를 정하기 
  2. 프로젝트가 종료 되었을 때 해당 목표가 이루워져 있어야 합니다.
  3. (수단) 다음으로 정해진 목표를 달성하기 위해 필요한 '작업'을 결정하게 됩니다. 이는 'Backlog'라는 이름의 목록으로 정리합니다.
  4. 그런 다음, 각 작업에 대해 '추정'을 합니다. 이는 각 작업을 완료하는 데 얼마나 많은 시간이 필요한지를 예측하는 것입니다.
  5. (assign, high priority) 마지막으로, Backlog에 정리한 작업들을 어떻게 나눌지, 그리고 이들을 어떤 순서로 진행할지를 결정합니다.

2. Stand-up meeting
서서 진행할 수 있을 만큼 간단하게 진행

일반적으로 스탠드업 미팅은 15분 내외로 짧게 유지되며, 

각 팀원은 진행 상황, 계획, 문제점간단하게 공유합니다. → 공유하는 목적은 risk issue가 있다면 도와줄 수 있는게 있을지에 대한 것.

  • 스탠드업 미팅은 팀원 간의 일일 커뮤니케이션을 촉진합니다. 이를 통해 프로젝트의 진행 상황을 모두가 이해하고, 팀원 간에 정보를 신속하게 공유할 수 있습니다.
  • 스탠드업 미팅에서는 각 팀원이 진행 중인 작업, 계획된 작업, 그리고 진행을 방해하는 문제를 공유합니다. 이를 통해 팀은 문제를 신속하게 인식하고 해결 방안을 찾을 수 있습니다.
  • 일일 스탠드업 미팅은 팀의 프로젝트 진행 상황에 대한 일관된 이해를 제공합니다. 이는 프로젝트의 투명성을 높이고, 예상치 못한 문제나 지연을 줄이는데 도움이 됩니다.
  • 스탠드업 미팅은 팀원들에게 자신의 작업에 대해 책임감을 가지고 이야기할 기회를 제공합니다. 이는 팀의 자기 주도적인 문화를 강화하고, 각 팀원이 프로젝트에 더욱 투자하게 만듭니다.

3. Retrospective meeting

프로젝트 회고를 작성하는 것은 무엇보다 중요

 

깃헙에서 이루어지는 소통과 과정이 중요하듯이, 

결과를 만들어낸 과정에 대한 이야기를 기록하고 보여주는 것이 

개발자들에게 더욱 설득력 있고 어떠한 태도와 역할로 프로젝트에 참여했는지 어필할 수 있는 좋은 방법입니다.


  • 프로젝트 후기에 일반적으로 들어가는 내용은 아래와 같습니다.

개발자에게 중요한 것은?

개발 한 달 후기. 

앞으로 어떤 개발자가 되고 싶은지에 대한 생각.

  • 정해진 형식에 맞는 내용 보다는 각자의 개성이 드러나는, 다른 사람들과 구분될 수 있는 글