1. 친구 기능추가
user db에 추가
사용자 스토리
- 나는 회원가입 후 로그인을 할 수 있다.
- 나는 로그인을 할 수 있고, 스토리를 만들 수 있다.
- 나는 다른 작가의 동화를 볼 수 있고, 평점을 줄 수 있다.
- 나는 다른 작가의 페이지에 들어갈 수 있고, 친구 신청할 수 있다.
- 메인페이지에서 다른 작가의 프로필을 통해 친구 신청을 할 수 있다.
- 친구 신청을 취소할 수 있다.
- 나는 다른 작가의 친구 요청을 받을 수 있다.
- 나는 다른 작가의 친구 요청을 수락, 거절할 수 있다.
- 나는 나의 작가 친구 리스트를 볼 수 있다.
처음에 friend모듈만 추가하면 된다고 생각했다. 하지만 추후에 추가될 기능 중 동시 편집 기능이 있는데 이는 친구끼리 작성하게 할 예정이다. 이를 위해 친구신청을 했을 때 바로 받는 것보다는 친구신청의 단계를 나눠야 한다고 생각했다.
친구 신청가능, 요청, 대기, 수락 (각각 0, 1, 2, 3으로 만들 예정) 이를 위해서는 friendsReq 모듈을 만들어야 한다고 생각한다.
friendsReq 모듈은 친구 요청에 관련된 정보를 만들고, 불러오고, 수정하고, 삭제하는 역할을 할 것이다.
friends 모듈은 friendsReq가 끝난, 친구 상태인 경우에 CRUD를 하는 역할을 할 것이다.
friend.schema를 만들 때, 1:1로 할지 , 1:N으로 할지 고민이었다.
만약 친구와의 관계가 각각 다른 애플리케이션이라면 1:1이 맞지만 내가 만들고 있는 애플리케이션에서는 친구와의 관계가 다 똑같기에 1:N으로 관리하는 게 맞다고 생각한다. 이렇게 했을 때 데이터 접근성이 좋아지고 간결해진다고 생각한다.
friendReqs 모듈:
Post
- 친구 신청을 했을때
Get
- 친구 신청을 한 후 상태를 가져올때(친구수락 대기중)
Patch
- 친구 신청을 수락했을때, 거절했을때
Delete
- 친구 신청을 취소했을때
정리
1. 친구 기능 추가: - 사용자 간의 상호작용을 늘리기 위해 친구 기능을 추가하였습니다. 이를 위해 사용자 데이터베이스에 친구 관련 정보를 추가하였습니다.
2. 사용자 스토리 작성: - 친구 기능을 어떻게 사용할 것인지를 정의하기 위해 사용자 스토리를 작성하였습니다. 이를 통해 사용자가 시스템을 어떻게 사용하게 될지 예상하고, 이에 따라 기능을 더욱 세밀하게 구현할 수 있습니다.
3. 친구 요청 및 친구 관리 모듈 구상: - 친구 요청과 관리를 위해 'friendsReq'와 'friends' 두 개의 모듈을 생성할 계획을 세웠습니다. 'friendsReq'는 친구 요청 관련 정보를 처리하고, 'friends'는 친구 상태에 관한 정보를 처리합니다.
4. 친구 관계 스키마 설계: - 친구 관계를 어떻게 데이터베이스에 저장할지 결정하였습니다. 모든 친구 관계가 동일하므로, 1:N의 관계를 사용해 데이터 접근성을 향상시키고 코드를 간결하게 만들기로 결정하였습니다.
'Storify' 카테고리의 다른 글
STORIFY (0126) - 친구 요청 추가 (0) | 2024.01.27 |
---|---|
STORIFY (0125) - ObjectId (0) | 2024.01.26 |
STORIFY (0123) - 단일 책임 원칙 (0) | 2024.01.24 |
STORIFY (0122) - 종속성 순환 문제, 페이지네이션 (0) | 2024.01.23 |
STORIFY (0119) - API 구조 변경 (0) | 2024.01.19 |