Search
📄

기능 명세서

태그
기능명세
URL
목차

SNS 서버

SNS 서버를 생성합니다.

회원가입 / 로그인 / 로그아웃

유저는 회원가입을 수행합니다.
회원가입시 유저네임, 이메일, 비밀번호를 입력받습니다.
비밀번호검증절차는 생략합니다.
로그인 시 AT 와 RT 을 생성합니다.
AT 는 헤더에 넣고, RT 는 쿠키에 넣어 전송합니다.
로그아웃 시 저장된 토큰을 전부 삭제합니다.

게시글

게시글 CRUD

게시글을 생성할 수 있습니다.
게시글을 수정할 수 있습니다.
게시글을 삭제할 수 있습니다.

게시글 상세와 리스트

로그인 유저의 게시글 리스트를 페이징 처리하여 반환합니다.
특정 게시글 상제보기를 할 수 있습니다.

각종 카운트

게시글 상세를 했을 때, 뷰 카운트가 증가합니다.
좋아요 카운트를 증가하는 요청을 했을 때 , 카운트가 증가 합니다.
공유 하기 요청을 했을 때, 카운트가 증가 합니다.

해시태그

특정 게시글에 해시태그를 추가 해야 합니다.
특정 게시글의 특정 해시태그를 삭제 해야 합니다.

외부 요청

외부 요청 인증

피드서비스에서 특정 게시글에 관한 통계를 요청하면 토큰 인증을 거쳐야 합니다.
요청이 들어오면 바로 토큰 인증 단계를 거칩니다.
요청 헤더에 Instagram 헤더가 없으면 ‘유효하지 않은 요청입니다.’ 메세지를 반환합니다.
요청 헤더에 Instagram 헤더가 있으나 토큰이 만료 되었다면 재요청을 받을 수 있도록 redirect url 을 반환합니다.
생성된 토큰을 통해 재요청을 합니다.

외부 요청 처리

피드서비스에서 특정 게시글에 관한 통계를 요청하면 알맞게 처리해야 합니다.
queryDsl 을 이용하여 알맞은 게시글을 반환합니다.
쿼리 파라미터를 이용하여 요청 게시글을 반환합니다.
query
속성
default(미입력 시 값)
설명
hashtag
string
본인계정
type
string (열거형)
필수 값
date, hour
start
date
오늘로 부터 7일전
2023-10-01 과 같이 데이트 형식이며 조회 기준 시작일을 의미합니다.
end
date
오늘
2023-10-25 과 같이 데이트 형식이며 조회 기준 시작일을 의미합니다.
value
string
count
count , view_count, like_count, share_count 가 사용 가능합니다.
?value=count&type=date 
 start ~ end 기간내 (시작일, 종료일 포함) 해당 hashtag 가 포함된 게시물 수를 일자별로 제공합니다.
최대 한달(30일) 조회 가능합니다.
?value=count&type=hour 
 start ~ end 기간내 (시작일, 종료일 포함) 해당 hashtag 가 포함된 게시물 수를 시간별로 제공합니다.
start 일자의 00시 부터 1시간 간격
최대 일주일(7일) 조회 가능합니다.

FEED 서비스

네 개의 SNS 중 충족하는 게시글을 전부 확인 할 수 있는 서비스 입니다.

회원가입

유저는 회원가입을 수행합니다.
회원가입시 유저네임, 이메일, 비밀번호를 입력받습니다.
비밀번호검증 (유저의 편의를 위해 아래 세가지만 검증하도록 하였습니다.)
비밀번호는 최소 10자 이상이어야 합니다.
숫자로만 이루어진 비밀번호는 사용할 수 없습니다.
숫자, 대문자, 특수문자 중 2가지 이상을 포함해야 합니다.
회원가입 시 이메일 인증 버튼을 누릅니다.
메일로 온 코드의 일치여부를 확인합니다.
일치하면 나머지 요소들을 합쳐 회원가입을 완료 합니다.

일반 로그인 / 로그아웃

로그인 시 AT 와 RT 을 생성합니다.
AT 는 헤더에 넣고, RT 는 쿠키에 넣어 전송합니다.
로그아웃 시 저장된 토큰을 전부 삭제합니다.

회원 승인 메일 서비스

6 자리의 인증 코드를 생성하여 유저 이메일로 전송합니다.
유저의 id 에 prefix 로 auth 를 붙여 id:authCode 를 레디스에 저장합니다.
레디스에 값이 제대로 저장 되는지 검증을 거칩니다.
제대로 저장되지 않은 경우 예외를 던지고 다시 재요청을 하도록 유도합니다.
승인 요청시 이를 꺼내어 확인 후 승인요청 과정을 거칩니다.
레디스에 값이 없다면 예외를 던집니다.
만료되었을 경우 예외를 던지고 다시 재요청을 하도록 유도합니다.