본문 바로가기
Storify

STORIFY (0127) - 좋아요~ 추가

by Peter.JH 2024. 1. 27.
728x90

swagger 순서 조정

1.updateBook추가, deleteBook 수정

작성자만 update, delete가능하게 수정

 

2. Friend 모듈 수정

사용자 스토리

- 나는 로그인해서 친구 신청을 '수락'(friendReqs에서 하는 작업) 할 수 있다. ●

- 나는 내 친구목록을 볼 수 있다. ●

- 나는 내 친구 목록에서 친구를 삭제할 수 있다. ●

 

!! 작업중 오류:

현재 controller, service에서 ObjectId를 다루는 작업들을 하고있다.  controller, service에서 ObjectId를 string으로 받고, db에 저장하는 repository에서만 ObjectId를 다루는게 맞지 않을까? 라는 생각이 들었다.

찾아보니 MongoDB의 ObjectId는 데이터베이스에서만 필요한 타입이므로, controller, service 에서는 문자열로 처리하는 것이 일반적이라고 한다. 이렇게 하면 service와 controller는 데이터베이스에 대한 세부 구현에 의존하지 않아 코드의 유연성이 증가한다. 따라서, 보통은 controller에서 문자열로 ID를 받아 service로 전달하고, service는 이 ID를 그대로 repository 로 전달하게 된다. repository에서는 이 ID를 ObjectId로 변환하여 MongoDB와 통신하는 방식으로 작업한다.

또한, service와 controller에서 ObjectId를 직접 다루면, MongoDB가 아닌 다른 데이터베이스를 사용하려 할 때 코드를 크게 수정해야 할 수 있다. 반면에, repository에서만 ObjectId를 다루면, 다른 데이터베이스를 사용하려 할 때 repository만 수정하면 되므로 유연성이 증가한다.

따라서, 가능한 한 controller와 service에서는 문자열로 ID를 다루는 것이 좋다고 생각한다. 

또한 추후에 DB를 mongoDB가 아닌 다른 DB로 교체할때 repository 코드만 수정할수있게된다.

 

테스트 해야할것.

deleteFriend가 제대로 수행되는지

- user j2 -> j4 친구신청 ●

- user j2 -> j5 친구신청 ●

- user j4 에게온  j2 친구신청 수락 -> 친구상태

- user j5 에게온  j2 친구신청 수락 -> 친구상태

- user j2 의 친구목록중 j5친구 삭제 -> j5의 친구목록 중 j2 삭제, j2의 친구목록 중 j5 삭제

 

3. 좋아요, 싫어요 기능 추가

사용자 스토리

- 나는 로그인해서 책을 좋아요 누를수있다.

- 나는 좋아요를 취소할수있다.

- 내가 좋아했던 책 목록을 볼수있다.

- 나는 책을 싫어요 할수있다.

- 나는 책을 싫어요 한것을 취소할수있다.

 

 

작업정리

 

1. Swagger 순서 조정:

- Swagger 문서의 순서를 조정하여 API 정보를 보다 쉽게 이해하고 찾을 수 있도록 하였습니다.

 

2. 책 정보 업데이트 및 삭제 권한 수정:

- 책 정보를 업데이트하거나 삭제할 수 있는 권한을 작성자만 가지도록 변경하였습니다. 이는 책 정보의 무분별한 수정 또는 삭제를 방지하고, 데이터의 정확성을 유지하기 위함입니다.

 

3. 친구 관리 기능 수정:

- 사용자가 로그인하여 친구 신청을 수락하고, 친구 목록을 확인하며, 친구를 삭제할 수 있도록 기능을 수정하였습니다. 이는 사용자 간의 상호작용을 더욱 쉽게 만들기 위함입니다.

 

4. ObjectId 처리 방식 수정:

- controller와 service에서는 ObjectId 대신 문자열을 사용하도록 수정하였습니다. 이는 코드의 유연성을 높이고, 데이터베이스 종류에 따른 의존성을 줄이기 위함입니다.

 

5. 친구 삭제 기능 테스트:

- 친구 삭제 기능이 제대로 동작하는지 확인하기 위해 테스트를 수행하였습니다.

 

6. 좋아요/싫어요 기능 추가:

- 사용자가 책에 대해 좋아요 또는 싫어요를 표시할 수 있도록 기능을 추가하였습니다. 사용자는 이 기능을 통해 자신이 어떤 책을 좋아하거나 싫어하는지 표현하고, 이를 기반으로 한 추천 등의 서비스를 받을 수 있습니다. 

728x90