서론
안녕하세요? 총대마켓 총대 메이슨입니다.
우선 데모데이 준비에 있어서 요구사항과 서비스에 대한 제 이해도가 부족해, 업무시간 내에 기획에 대한 변경사항을 결정하지 못하고 이렇게 노션으로만 공유하게 된 것에 대해 죄송하단 말씀을 드리고 싶습니다. 소중한 휴식시간인 주말을 뺏게 되는 것 같아 마음이 너무 무겁네요.
로그인 기능이 우선순위에서 밀려나게 된 순간 더 이상 이걸 구현하는 것이 무의미하게 느껴졌고, 오히려 이번 데모데이에 악영향을 끼칠 것 같아 부득이하게 개발 순서 변경을 제시하게 되었습니다.
갑작스러운 변경이라 논의할 시간이 적을 것 같네요. 월요일부터 바로 개발을 시작해야 하기 때문에 주말동안 정해야겠습니다. 제가 간단하게 기획의 프로토타입을 작성해 보았으니, 보시고 편하게 피드백 주세요.
감사합니다.
ERD 제시 및 용어 수정
1.
게시글(Article) → 공모(Offering)
2.
채팅(Chatting) → 댓글(Comment)
a.
근데 Message가 그렇게 좋은 선택지일지는 모르겠음… 의견 있으신 분 편하게 알려주세요.
3.
공모 참여자(Offering Member)
기존 개발 방향
1.
로그인 기능 구현
2.
공모 기능 리팩토링 (해커톤 구현 부분)
변경 개발 방향 (순서는 따로 정해야 함)
1.
댓글방 기능 구현
a.
댓글방 상세 조회 기능(AN, BE)
i.
상태 변경 기능(ex. 모집중, 일정조정중 등)은 껍데기만 만들어놓고 나중에 세부 구현하는 방향으로..
ii.
상태 변경 기능은 공모(Offering) 테이블에 추후 수정이 필요할 것
iii.
약속장소 및 시간 확인은 구현하는 것으로…
iv.
내용 수정 기능도 일단은 제외
v.
작성된 댓글 조회 API는 분리할 것(BE), 새로고침 버튼 추가 부탁
b.
댓글방 목록 조회 기능(AN, BE)
c.
댓글방 댓글 작성 기능(AN, BE)
i.
하단 메세지 입력창을 통해 게시 가능
2.
공모 기능 리팩토링 (해커톤 구현 부분)
a.
공모 참여 기능
i.
단순 현재원 증가가 아닌 방에 참여하도록 수정(offering_member 테이블)(BE)
ii.
서버와 연동하기(AN)
1.
참여하기 버튼 터치 시 채팅방으로 바로 이동 가능한 지?
b.
공모 목록 조회 기능
i.
컨벤션에 맞게 수정, 용어명 수정(AN, BE)
시연 시나리오를 위해 사용자 데이터는 DB에 미리 심어둘 것임.
•
A, B 두 명이 사용하는 시나리오로 설계할 것.
임의의 사용자 한 명이 로그인을 했다고 가정하고, 공모 조회나 댓글방 조회, 댓글 작성 기능 시연할 것.
시간이 남는다면?
1.
댓글방의 확정 또는 수정 버튼 구현
2.
공모 목록 조회 시 페이지네이션 구현, 무한 스크롤 구현
추가로 논의할 것
공모의 상태에 대해 추가적인 논의 필요
기존에는 공모와 댓글방의 생명주기가 달라 따로 관리하는 방안을 생각해보았지만, 한 테이블로 관리하여 동일한 것으로 간주한다면 생각을 더 해봐야 할 것 같음
도메인을 달리하는 방법도 있을 것.
팀 블로그 작성 제안 - 팜 스프링스 블로그(팜 블로그)
API 명세에 대한 제안
1.
참여하기
•
POST - /participation
•
Content-Type: application/json
•
성공 - 200
•
예외 발생 - 400
1. DB Current Count ≥ DB total Count
2. 마감시간 지났거나, 확정된 상태일 때
// Request
{
"offeringId": 10,
"memberId": 1
}
// Response
{
"offeringMemberId": 1,
"status": "AVAILABLE",
"currentCount": 6
}
JSON
복사
2.
댓글방 목록 조회 기능 → 물건 목록
•
GET - /comments?member-id=1
•
성공 - 200
// Response
{
"offerings": [
{
"offeringId": 1,
"offeringTitle": "공구 글 제목입니다",
"latestComment": {
"content": "물품에 대해 설명 드릴게요~",
"createdAt": "2024-07-24 10:24"
},
"isProposer": true
// "hasNewComment": true => 이후 스프린트에서 구현 예정
},
...
]
}
JSON
복사
3.
댓글 목록 조회 기능 → 채팅방 내부 모습
•
GET - /comments/{offering-id}?member-id=1 (query param 임시)
•
성공 - 200
// Response
{
"comments": [
{
"createdAt": {
"date": "2024-02-11",
"time": "22:10"
},
"content": "안녕하세요!",
"nickname": "mason",
"thumbnailUrl": "참여자 이미지 혹은 총대 왕관",
"isProposer": false,
"isMine": true
},
...
]
}
JSON
복사
4.
댓글방 내 거래 정보 조회 기능 (공모 일정 조회 기능)
•
GET
◦
/offerings/{offering-id}/meetings
◦
/meetings?offering-id=1 ← 나을지도?
•
성공 - 200
// Response
{
"deadline": "2024-09-11 11:22",
"meetingAddress": "서울특별시 강남구 테헤란로 411 (성담빌딩)",
"meetingAddressDetail": "우아한테크코스 선릉캠퍼스"
}
JSON
복사
5.
댓글 작성 기능
•
POST - /comments
// Request
{
"memberId": 1,
"offeringId": 2,
"content": "저희 몇시에 볼까요?"
}
JSON
복사
예상 개발 계획
22일(월) ~ 23일(화)
1.
CI / CD 적용(Github Action, Docker는 적용할 지? 지금 필요한 기술일지? 논의 필요)
a.
메이슨, 에버
2.
공모 조회 기능 리팩토링
a.
도라, 포케
b.
코드명 정리(0순위)
c.
참여하기 기능 구현(2순위)
d.
도메인 - 엔티티 분리(3순위)
3.
swagger(UI) + RestDocs(내용) (1순위)
a.
도라, 포케
시간이 되면 다음 계획으로 이동
24일(수) ~ 25일(목)
1.
댓글방 ‘총대’ 기능 구현 (상태 제외)
2.
구현 기능 테스트
3.
데모데이 준비
a.
시연 시나리오 준비
b.
어떤걸 중요하게 발표할 지?
c.
이전 데모데이와 변동사항
d.
의견 제시 부탁