HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🎫
[팀5] 코코단 (Coding & Coworking) - Triplan
/
🛎️
요구사항 정의 및 API 명세서
🛎️

요구사항 정의 및 API 명세서

요구사항 정의 및 API 설계
도메인
기능
기능 상세
우선순위
메서드
URI
담당자
비고
회원
회원가입
* 필수 입력 정보 : 이름, 이메일, password, 닉네임, 성별, 생년월일 * 이메일, 닉네임은 중복 불가 * (옵션) : 회원가입 시 이메일 인증
상
POST
/register
프론트 단에서 비밀번호 검증 후 패스워드 전송
회원
로그인
이메일, password를 이용하여 로그인을 한다 * 같은 아이디로 5회 실패시 30분 간 로그인 불가
상
POST
/login
회원
로그아웃
로그아웃을 한다
상
POST
/logout
회원
회원정보 조회
회원의 상세 정보를 보여준다. * 상세 정보 : email, 닉네임, 이름, 성별, 생년월일, 친구 목록, 사진
상
GET
/users/{userId}
회원
회원의 프로필을 보여준다. * 프로필 : 닉네임, 성별, 생년월일, 보유한 뱃지 목록, 사진
상
GET
/profiles
프론트 단에서 생년월일 ⇒ 연령대를 반환하는 util함수
회원
회원 조회
닉네임을 조건으로 일치하는 회원 목록을 조회한다. * 검색 2자 이상 * 회원 정보 : 회원 id, 사진, 닉네임, 친구 여부
상
GET
/users
회원
회원 정보 수정
회원의 닉네임, 프로필 사진을 변경한다.
상
PUT
/users/{userId}
회원
회원탈퇴
password를 재인증하여 회원 탈퇴를 한다. * 재인증 5회 실패 시 30분 간 불가 * 첫 인증 실패 후 30분이 지나면 횟수 초기화
중
DELETE
/users/{userId}
회원
비밀번호 변경
password를 재인증하여 비밀번호를 변경한다. * 재인증 5회 실패 시 30분 간 불가 * 첫 인증 실패 후 30분이 지나면 횟수 초기화
중
PUT
/users/{userId}/password
회원
비밀번호 찾기
email로 임시 비밀번호를 전송해준다.
하
POST
/users/{userId}/password
인증방식-jwt
친구
친구 신청
회원 검색한 정보를 토대로 특정 회원에게 친구 신청을 한다. * from친구 id, to친구 id
상
POST
/friends/ask
from id는 무조건 현재 로그인 한 유저의 id가 되겠네요!
친구
친구 신청 응답
상
POST
/friends/reply
팔로우 개념으로 단방향으로 처리할까 하는데 그런 경우에는 수락 여부 API 제외 여부 논의해보죠!
친구
친구 조회
검색 조건으로 회원과 친구인 리스트를 조회할 수 있다. 검색 조건 : 없음
상
GET
/friends
현재 로그인 한 유저의 id를 안담아 보내도 될까요?
친구
친구 삭제
특정 친구를 삭제한다. * 삭제할 친구 id
상
POST
/friends/disconnect
이 경우에도 from id가 현재 로그인한 유저 아이디가 되야 하나요?
post
동행
동행 게시글 생성
제목, 본문, 장소, 조건을 입력하여 글을 작성한다 * 장소 : 도시 단위 (서울, 부산, 광주) * 장소 : 특정 여행 spot * 조건 : 날짜(ex 12/25) * 조건 : 성별(남, 여, 성별 무관) * 조건 : 연령(10대, 20대, 30대, 40대, ... ,연령 무관) 다중 선택 가능
하
POST
/posts/connections
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하 10대 제외하기
post
동행
동행 게시글 조회
검색 조건에 맞는 동행 게시글 목록을 보여준다. * 조건 : 도시, 성별, 연령, 시작일, 종료일, 검색 텍스트 * 게시글 목록 : 제목, 장소명, 날짜, 성별, 연령, 작성자 닉네임 프로필 * 페이징. 페이지당 10개
하
GET
/posts/connections
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하 uri를 어떤 식으로 작성해야 할까요? /posts/connections/{connectionId} /posts/connections/{Id} /posts/connections/{connectionPostId} /posts/{postId}/connections /posts/{postId}/schedules
post
동행
특정 동행 게시글 조회
요청한 게시글 id에 맞는 동행 게시글의 상세정보와 작성자 닉네임을 보여준다. * 상세정보 : 제목, 본문, 장소(도시, 여행 spot), 조건(날짜, 성별, 연령)
하
GET
/posts/{postId}/connections
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
post
동행
동행 게시글 삭제
게시글을 삭제한다
하
DELETE
/posts/{postId}/connections
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
post
동행
동행 게시글 수정
제목, 본문, 장소, 조건을 수정한다. * 장소와 조건은 생성 조건과 동일하다 * PUT 방식으로 모든 정보를 담아서 보내야 한다
하
PUT
/posts/{postId}/connections
* 프론트 일정 이슈로 인한 우선순위 조정 : 중 → 하
동행
동행 요청
동행 게시글을 토대로 작성자에게 동행 신청을 한다 * 요청 : 동행 게시글 id, 작성자 id, 신청자 id
하
POST
/connections/ask
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
동행
동행 요청한 내역 조회
동행 게시글을 보고 동행 요청한 내역을 조회한다 * 요청한 게시글 정보(id), 요청한 게시글의 작성자(id), 요청 상태를 보여준다
하
GET
/connections/ask
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
동행
동행 여부 결정
동행 여부를 최종 결정 한다. * 요청 : 채팅방 id, 수락/거절 여부
하
POST
/connections/reply
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
동행
동행 요청 받은 내역 조회
동행 게시글에 요청이 온 내역을 조회한다 * 요청 받은 게시글 정보(id), 요청한 사용자(id), 요청에 대한 처리 상태를 보여준다.
하
GET
/connections/reply
* 프론트 일정 이슈로 인한 우선순위 조정 : 상 → 하
post
일정
공유된 여행 게시글 리스트 조회
공유 게시글 목록을 조회한다. * 10개 단위의 page로 조회한다. * 기본 조회 정렬 기준은 최신순이다. * 검색 조건을 넣을 수 있다. - 제목/본문 : 문자열 검색 - 도시 단위의 검색 (서울, 부산, 인천) - 지정된 테마로 검색 * 필터링 조건을 걸 수 있다. - 조회수, 좋아요 수, 댓글 수, 최신 (오름차순, 내림차순)
상
GET
/posts/schdules
post
일정
여행 공유 게시글 작성
제목, 본문을 작성, 공유할 일정을 선택하여 글을 작성한다. * 자신의 일정 선택 - 자신의 일정에서 완료된 일정 중에서 하나를 선택한다. * summary : 날짜별 장소명, 테마(전체 일정의 테마)
상
POST
/posts/schedules
post
일정
자신이 쓴 여행 공유 게시글 모아보기
중
GET
/posts/schedules/me
post
일정
특정 유저가 쓴 여행 공유 게시글 모아보기
중
GET
/posts/schedules/writer/{writerId}
post
일정
공유된 여행 게시글 상세조회
요청한 post id에 맞는 일정공유 post의 내용을 보여준다. * 응답 데이터 : 제목, 본문, 시작일, 종료일, 여행 summary, 댓글 리스트, 조회수, 좋아요 수, 댓글 수, 작성자 id * summary : 날짜별 장소명, 테마
상
GET
/posts/schedules/{schedulePostId}
post
일정
공유한 여행 게시글 삭제
작성한 여행 공유 게시글을 삭제한다.
상
DELETE
/posts/schedules/{schedulePostId}
post
일정
공유한 여행 게시글 수정
작성한 게시글을 수정한다. * 자신의 게시글 선택 후 수정 - 자신의 게시글 중 하나를 선택한다. - 전체 내용은 모두 변경 가능하고, 그 중 원하는 내용만 변경한다.
중
PUT
/posts/schedules/{schedulePostId}
post
일정
좋아요
게시글 좋아요
게시글에 좋아요 & 좋아요 취소 * 게시글 id, 좋아요 flag
중
POST
/posts/schedules/{schedulePostId}/liked
post
일정
좋아요
좋아요를 해 둔 게시글 목록 조회
회원이 좋아요를 누른 게시글 목록을 조회한다. * 게시글 정보 : 게시글 id, 제목, 도시, 장소, 테마, 작성자 닉네임
중
GET
/posts/schedules/liked
post
댓글
게시글 댓글 작성
* 게시글 생성자/읽는 사람 상관 없이 댓글을 자유롭게 추가(작성) * 요청 데이터 : 댓글의 내용, 작성자 id
상
POST
/posts/schedules/{schedulePostId}/comments
post
댓글
게시글 댓글 수정
게시글에 작성되어 있는 댓글 수정 * 자신이 작성한 댓글만 수정 가능
상
PUT
/posts/schedules/{schedulePostId}/comments/{commentId}
post
댓글
게시글 댓글 삭제
* 요청 데이터 : 댓글의 id, 게시글(일정 공유 post)의 id * 자신이 작성한 댓글만 삭제
상
DELETE
/posts/schedules/{schedulePostId}/comments/{commentId}
post
댓글
게시글에 작성된 댓글에 대댓글 작성하기
중
POST
/posts/schedules/{schedulePostId}/comments/{commentId}/nestedComments
post
댓글
게시글에 작성된 댓글의 대댓글 조회하기
중
GET
/posts/schedules/{schedulePostId}/comments/{commentId}/nestedComments
post
댓글
대댓글 수정하기
중
PUT
/posts/schedules/{schedulePostId}/comments/{commentId}/nestedComments/{nestedCommentId}
post
댓글
대댓글 삭제하기
중
DELETE
/posts/schedules/{schedulePostId}/comments/{commentId}/nestedComments/{nestedCommentId}
일정
일정 생성
여행 제목, 시작일, 종료 일, 테마를 입력하여 여행 일정을 생성한다. 여행 일정은 데일리 일정의 모음이다. * 데이터 여행 일정: title, startDate, endDate, temaList, 여행지 정보 리스트 여행지 정보 : spotId, 날짜, 순서 (ex) 1, 2021-11-30, 1 응답 : 생성된 여행 id
상
POST
/schedules
일정
일정 수정
여행 제목, 테마, 일정을 수정한다. * 데이터는 생성과 동일하다.
중상
PUT
/schedules/{scheduleId}
일정
일정 목록 조회
회원이 참여한 모든 여행 일정 목록을 조회한다. * 여행 일정 : 여행 제목, 시작일, 종료일, 테마
상
GET
/schedules
일정
일정 상세 조회
특정 여행 일정의 상세 정보를 조회한다. * 상세 정보 : 여행 제목, 시작일, 종료일, 날짜별 여행지 리스트 (id, 제목, 위도, 경도), 멤버리스트, 테마 리스트
상
GET
/schedules/{scheduleId}
일정
일정 날짜 최초 조회
일정
일정 날짜별 조회
일정
데일리 일정 상세 조회
특정 여행 날짜의 상세 정보를 조회한다. * 장소 리스트 : 장소 id, 제목, 주소, 설명 등 * 체크리스트 : 체크리스트 list
상
일정
일정 삭제
자신이 생성한 여행 일정을 삭제한다.
중하
DELETE
/schedules/{scheduleId}
일정
여행에서 나가기
자신이 참여한 여행에서 나간다. * 회원 id, 여행 id
중하
DELETE
/schedules/{scheduleId}/exit
일정
여행 멤버 추가
본인의 친구 리스트 중에서 여행 멤버를 추가한다. * 친구 id
중
POST
/schedules/{scheduleId}/members/{memberId}
일정
여행 멤버 삭제
여행의 참여 목록에서 특정 여행 멤버를 삭제한다. * 여행의 생성자는 삭제할 수 없다. * 멤버 id
중하
DELETE
/schedules/{scheduleId}/members/{memberId}
일정
여행 멤버 조회
현재 여행 일정에 참여하고 있는 모든 멤버를 조회한다.
중하
GET
/schedules/{scheduleId}/members
일정
메모 추가
여행 일정에 메모를 추가한다. * 내용
중상
POST
/schedules/{scheduleId}/memos
일정
메모 목록 조회
여행 일정의 모든 메모를 조회한다. * 제목, 본문
상
GET
/schedules/{scheduleId}/memos
일정
메모 수정
특정 메모를 수정한다. * 수정된 내용
중하
PUT
/schedules/{scheduleId}/memos/{memoId}
일정
메모 삭제
특정 메모를 삭제한다.
중하
DELETE
/schedules/{scheduleId}/memos/{memoId}
일정
체크리스트 추가
여행 일정에 전체 체크리스트 또는 데일리 체크리스트를 추가한다. * 여행 id, 날짜 , 체크리스트 제목 * 전체 체크스트의 날짜는 어떻게 하지
중
POST
/schedules/{scheduleId}/checklists
일정
체크리스트 체크/해제
특정 체크리스트를 체크/해제 한다. * 체크리스트 id, 체크여부 flag
중
PATCH
/schedules/{scheduleId}/checklists/{checklistId}
일정
체크리스트 수정
특정 체크리스트의 제목을 수정한다. 수정을 하면 미 체크 상태로 수정된다. * 수정한 제목
중하
PUT
/schedules/{scheduleId}/checklists/{checklistId}
일정
체크리스트 삭제
특정 체크리스트를 삭제한다.
중하
DELETE
/schedules/{scheduleId}/checklists/{checklistId}
일정
투표 생성
여행 일정에 투표를 추가한다. * 여행 id, 투표 제목, 투표 내용 목록, 투표 수, 다중 선택 여부 flag
중
POST
/schedules/{schheduleId}/votings
일정
투표 목록 조회
여행 일정의 모든 투표 목록을 조회한다. * 투표 제목, 참여한 인원 수
상
GET
/schedules/{scheduleId}/votings
일정
투표 상세 조회
특정 투표의 상세 정보를 조회한다. * 투표 제목, 투표 항목 리스트, 항목 별 투표한 사람의 id리스트
상
GET
/schedules/{scheduleId}/votings/{votingId}
일정
투표 수정하기
특정 투표의 제목 및 항목을 수정한다. 투표 수는 유지된다 * 제목, 항목, 항목별 투표 수
중하
PUT
/schedules/{scheduleId}/votings/{votingId}
일정
투표 삭제
특정 투표를 삭제한다.
중하
DELETE
/schedules/{scheduleId}/votings/{votingId}
일정
투표하기/취소하기
특정 투표 항목에 투표 행사를 한다. * (투표 내용 id, 선택 여부 flag) 목록
중
PATCH
/schedules/{scheduleId}/votings/{votingId}/contents/{contentId}
일정
투표 항목 삭제하기
특정 투표 항목을 삭제 한다.
중하
DELETE
/schedules/{scheduleId}/votings/{votingId}/contents/{contentId}
장소
장소 조회
검색 키워드에 일치하는 장소 리스트를 조회한다. * 입력 : 검색 키워드, 지도 레벨, 좌측 상단 위도,경도, 우측 하단 위도,경도 * 장소 리스트: [장소 id, 장소명, 위도, 경도 (데이터 미정)] 의 리스트
상
GET
/spots
장소
장소 상세 조회
선택한 장소의 상세 정보를 조회한다. * 선택한 장소 : 장소 id * 상세 정보 : 장소명, 주소, 전화번호, 이미지, 설명, 위도, 경도 (데이터 미정)
상
GET
/spots/{spotId}
뱃지
뱃지 획득
각 뱃지별 조건을 만족할 경우 해당 뱃지를 획득한다. * 뱃지 정보 : id, 이름, 설명, 이미지
하
GET
/badges/??
뱃지
뱃지 목록 조회
모든 뱃지 정보와 본인이 획득한 뱃지 정보를 조회한다. * 뱃지id, 뱃지명, 이미지, 획득여부 flag
하
GET
/badges
뱃지
뱃지 상세 조회
특정 뱃지의 상세 정보를 조회한다. * 상세 정보 : 뱃지id, 뱃지명, 뱃지 설명, 획득 조건, 이미지, 획득 여부 flag
하
GET
/badges/{badgeId}
 
스케쥴 생성자/참여자 권한
이름
권한
생성자
- 방 생성 - 방 삭제 - 투표 and 메모 and 체크리스트 생성, 수정 및 삭제 - 멤버 추가 및 삭제 - 일정 수정
참여자
(컨텐츠에 대한 내용 관여 가능) - 투표 and 메모 and 체크리스트 생성, 수정 및 삭제 - 멤버 추가 및 삭제 (생성자 제외) - 일정 수정 - 방 나가기