본문 바로가기
PROJECT/Spring Pet-Partner 프로젝트

프로젝트 설계 - Pet Partner🐾

by HR_J 2024. 5. 27.

프로젝트 이름

Pet Partner

  • 프로젝트 개발 기간 : 2024.05.27~2024.06.03
  • 개발 언어 : Kotlin, Spring

개요

반려동물을 키우는 사람들을 위한 정보 공유의 장

내가 키우는 반려동물과의 일상을 공유하고 정보를 주고 받으며,

도움이 필요한 동물을 위한 입양정보도 받아볼 수 있다.

 

[상세한 설명은 추후에 추가할게요~]

 

API 명세서 작성(1차)

필수적으로 구현되어야하는 CRUD와 게시글 전체 조회, 그리고 댓글 기능과 관련된 API를 우선적으로 작성하였다. 큰 틀은 여기서 변하지 않을 것 같고, 조회수나 좋아요 기능 등은 어떤식으로 구현해야할지 고민이 된다.

Command Method API Path Response
피드 등록 POST /feeds 201
피드 전체조회 GET /feeds 200
피드 수정 PUT /feeds/{feedId} 200
피드 좋아요 PATCH /feeds/{feedId} 200
피드 삭제 DELETE /feeds/{feedId} 204
피드 상세 조회 GET /feeds/{feedId} 200
댓글 생성 POST /comments 201
댓글 수정 PUT /comments/{commentId} 200
댓글 삭제 DELETE /comments/{commentId} 204

 

 

ERD

생각한 아이디어들을 바탕으로 만들어본 ERD다. 각각의 Table들은 name으로 연결될 것 같다.

 

와이어프레임

피그마를 사용해, 대충 어떠한 형태로 구현할지에 대해 의논했다. 당장 "뉴스피드"라는 키워드를 들었을 때, SNS라는 생각이 들어 자연스럽게 모바일 기준의 디자인이 나왔던 것 같다. 하지만, 프론트나 모바일이나, 백엔드가 전해줘야하는 데이터는 "동일"하거나 큰 차이가 없기 때문에, 이해를 위해 일단 모바일로 와이어 프레잌을 만들고, 천천히 조금더 명확한 팀원들의 이해를 위해 웹 버전으로 러프하게 구현해둘 예정이다. 

https://www.figma.com/design/MPbXbeYWNC3FBohbG8az9w/Pet-Partner?node-id=0-1&t=m6MXNy8Z6XgwyQFq-0

 

패키지 구조

우선적으로 위에서 작성한 것들을 토대로 패키지 구조를 디자인했다.

domain	
	⎿ security
		⎿ hash
		⎿ jwt
		
	⎿ feed
		⎿ controller
		⎿ dto
		⎿ entity
		⎿ repository
		⎿ service
		⎿ comment{}
		
	⎿ user{}
    
infra
	⎿ SwaggerConfig
    
common
	⎿ exception
        ⎿ ReponseDto
        ⎿ GlobalExceptionHander