HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
📜
[팀13] 사각사각 ✏️
/
💌
2차 스프린트 기능 명세
💌

2차 스프린트 기능 명세

아티클, 시리즈 날짜 데이터는 디폴트로 내려준다.
이미지 API 정책
유저 프로필
  • 유저 가입(생성) : 프로필 사진 필요 없음.
  • 유저 정보 수정할 때 필요
    • 기존 정책
      • 모든 데이터를 1개의 API로 요청한다.
    • 변경 후 정책
      • 프로필 이미지 변경 API를 분리한다.
      • 프로필 이미지 변경 API는 변경되었을 경우에만 호출한다.
      • 유저 닉네임 등 이미지 외 데이터는 데이터 변경 API를 호출한다.
시리즈 썸네일
  • 시리즈 공고 발행 (썸네일 필수 데이터) - 1개의 API로 요청한다.
  • 시리즈 공고 수정
    • 기존 정책
      • 모든 데이터를 1개의 API로 요청한다.
    • 변경 후 정책
      • 이미지 변경 API를 분리한다.
      • 썸네일 변경 API는 변경되었을 경우에만 호출한다.
      • 타이틀, 소개문장 등 이미지 외 데이터는 데이터 변경 API를 호출한다.
포스트 썸네일
  • 포스트 공고 발행 (썸네일 필수 데이터) - 1개의 API로 요청한다.
  • 포스트 공고 수정
    • 기존 정책
      • 모든 데이터를 1개의 API로 요청한다.
    • 변경 후 정책
      • 이미지 변경 API를 분리한다.
      • 썸네일 변경 API는 변경되었을 경우에만 호출한다.
      • 타이틀, 소개문장 등 이미지 외 데이터는 데이터 변경 API를 호출한다.
 
모집공고 게시판 정렬 정책
  • 기본 16개를 내려준다.
  • 이후 무한 스크롤한다.(커서 기반)
  • 모집공고 발행 최신순으로 정렬한다.
채널에서 보여지는 팔로우 작가 리스트 정렬 정책
  • 기본 10개를 내려준다.
  • 더보기를 누르면 무한 스크롤한다.(커서 기반)
  • 가장 최근에 팔로우한 작가 프로필 기준으로 정렬한다.
본인 채널 본문에 보여지는 컨텐츠
본인이 일반 유저일 경우
  • 내가 구독한 시리즈가 보여진다. (한 슬라이드에 최대 8개, 슬라이드쇼 넘길 수 있음)
  • 내가 찜한(좋아요) 시리즈가 보여진다. (한 슬라이드에 최대 8개, 슬라이드쇼 넘길 수 있음)
본인이 작가일 경우
  • 내가 구독한 시리즈가 보여진다. (한 슬라이드에 최대 8개, 슬라이드쇼 넘길 수 있음)
  • 내가 찜한(좋아요) 시리즈가 보여진다. (한 슬라이드에 최대 8개, 슬라이드쇼 넘길 수 있음)
  • 내가 생성한 시리즈(한 슬라이드에 최대 8개, 슬라이드쇼 넘길 수 있음) - 내가 작가권한을 가지고 있을 경우에만 보여준다.
다른 채널 본문에 보여지는 컨텐츠
다른 채널이 작가일 경우
  • 작가가 팔로우한 작가가 보여진다.
  • 작가가 생성한 시리즈가 보여진다.
다른 채널이 일반 유저일 경우
  • 일반 유저가 팔로우한 작가만 보여진다.
 
요구사항 명세
도메인
페이지
기능명
요구사항 상세
우선순위
권한
다이어그램 URL
비고
열
회원가입
req - email (NOTNULL) - name (NOTNULL) - password (NOTNULL) - nickName (NOTNULL) res - userId 프로필 이미지는 S3에 디폴트 이미지 업로드하고 URL을 프론트에 알려준다. 회원가입할때에는 프로필 이미지 안받음.
상
비회원
아티클
아티클 발행
req - title - contents - thumbnail res - articleId
상
작가
아티클 수정(타이틀, 컨텐츠)
req - title - contents res - articleId
상
작가
아티클 썸네일 수정
req - thumbnail res - articleId
상
작가
아티클 조회
req - articleId res - title - contents - thumbnail - round - article 작성 날짜
상
작가
사용자
채널
개인 채널 조회
req - token res 디폴트로 들어가야하는 데이터 - userId - profileImage - nickname - introduceText - subscribeList : { thumbnail, writerNickname, 카테고리, 구독 가능 상태 (후순위) } - 팔로우한 작가 리스트 : [{ - writerId - thumbnail - nickname - 현재 구독 모집중인지 아닌지 }, → 디폴트로 10개 먼저 내려주고 더보기 눌렀을 때 전체 데이터 내려준다. - writerId - thumbnail - nickname - 현재 구독 모집중 }] - 좋아요한 시리즈 : [ "series": { "id": 1, //long "thumbnail": "~~~.png", //string "title": "모집공고 제목", //string "introduceSentence": "소개문장", //string "startDate": "2022-01-01", //string "endDate": "2022-01-10", //string "articleCount": 15, //int "likes": 100, //int }, "subscribe": { "startDate": "2021-12-01", //string "endDate": "2021-12-03", //string "status": "", //string }, "category": "poem", //string "writer": { "id": 1, //long "nickname": "" //string } ] → 전부 다 내려준다. - 구독(결제)중인 시리즈 → 결제기능 들어가는 시점에 추가 그때 필요데이터 논의 작가일때 들어가야하는 데이터 - seriesList(작가가 발행한 시리즈) : [ "series": { "id": 1, //long "thumbnail": "~~~.png", //string "title": "모집공고 제목", //string "introduceSentence": "소개문장", //string "startDate": "2022-01-01", //string "endDate": "2022-01-10", //string "articleCount": 15, //int "likes": 100, //int }, "subscribe": { "startDate": "2021-12-01", //string "endDate": "2021-12-03", //string "status": "", //string }, "category": "poem", //string "writer": { "id": 1, //long "nickname": "" //string } ] → 전부 다 내려준다 - 나를 팔로우한 일반 유저(몇명인지만 내려준다) → 단순 텍스트 ( 버튼 아님) - 내가 팔로우한 작가(몇명인지만 내려준다) → 단순 텍스트( 버튼 아님 )
상
작가
사용자
다른 유저 채널 조회
req res 디폴트로 들어가야하는 데이터(일반유저일 경우) - profileImage - nickname - introduceText - 팔로잉(숫자만) - 팔로우한 작가 리스트 : [{ - writerId - thumbnail - nickname - 현재 구독 모집중인지 아닌지 }] → 처음에 10개 작가일때 추가되는 데이터 - seriesList(작가가 발행한 시리즈) : [ "series": { "id": 1, //long "thumbnail": "~~~.png", //string "title": "모집공고 제목", //string "introduceSentence": "소개문장", //string "startDate": "2022-01-01", //string "endDate": "2022-01-10", //string "articleCount": 15, //int "likes": 100, //int }, "subscribe": { "startDate": "2021-12-01", //string "endDate": "2021-12-03", //string "status": "", //string }, "category": "poem", //string "writer": { "id": 1, //long "nickname": "" //string } ] → 전부 다 내려준다
상
작가
사용자
마이페이지
내정보 불러오기
req - token res -userId - email - userName - profileImage - profileIntroduce - nickName - group (작가인지 유저인지)
상
작가
사용자
내정보 수정 요청
req - profileIntroduce - nickName res - userId
상
작가
사용자
프로필 이미지 수정 요청
req - thumbnail (멀티파트 폼 데이터) null일 경우에는 DB 프로필 null로 갱신 , null 아니면 img 넣음 res - profileImage url
결제내역 버튼 눌렀을 때
결제 기능 넣을 때 한다.