이 문서는 “소셜 미디어 통합 Feed 서비스(가칭)” 구현을 위한 요구사항을 기록한 문서 입니다.
<aside> ❗ 아래 요구사항을 만족한다면, 범위를 넘어 자체적으로 추가적인 기능구현 가능합니다.
서비스 명칭은 예시이며, 본 문서에 나오는 용어들은 자체 해석하여 변경하실 수 있습니다.
팀내 논의로도 불명확한 요구사항이 있으면, 멘토에게 문의 바랍니다. (실무에선 불명확하거나 두 가지 이상으로 해석되는 요구사항의 경우 개발자가 자체해석 하지 않습니다. 기획자에게 명확히 확인요청 하셔야 합니다.)
</aside>
본 서비스는 유저 계정의 해시태그(”#dani”) 를 기반으로 인스타그램
, 스레드
, 페이스북
, 트위터
등 복수의 SNS에 게시된 게시물 중 유저의 해시태그가 포함된 게시물들을 하나의 서비스에서 확인할 수 있는 통합 Feed 어플리케이션 입니다.
이를 통해 본 서비스의 고객은 하나의 채널로 유저(”#dani”), 또는 브랜드(”#danishop”) 의 SNS 노출 게시물 및 통계를 확인할 수 있습니다.
유저스토리
인스타그램
, 스레드
, 페이스북
, 트위터
에서 유저의 계정이 태그된 글들을 확인합니다.<aside> 💡 A. 사용자 인증 시스템
B. RESTful API
C. 시계열 통계 생성
</aside>
id
가 존재합니다.계정
은 unique 합니다.이메일
은 올바른 이메일 구조인지 검증 되어야 합니다.비밀번호
는 아래 중 2 가지 이상의 제약 조건을 가지며, 암호화 되어 저장됩니다.
계정
, 비밀번호
, 인증코드
가 올바르게 입력되었을 시 가입승인 이 되어 서비스 이용이 가능합니다.계정
, 비밀번호
로 로그시 JWT
가 발급됩니다.JWT
가 항시 포함되며, JWT
유효성을 검증합니다.<aside> ☝ 실제 게시물들은 SNS 에서 생성되겠지만, 본 과제에선 기능 검증을 위해 자체 생산합니다.
</aside>
필드 | 속성 | 설명 | 예시 값 |
---|---|---|---|
content_id |
string |
게시물이 해당하는 SNS 에서 관리되는 고유 인식 값입니다. | |
type |
string (열거형) |
파일 객체의 유형. 가능한 유형 값은 "facebook" , "twitter" , "instagram" , "threads" |
"twitter" |
title |
string |
게시글 제목 | |
content |
string |
게시글 내용 이며 텍스트만 가능합니다.(이미지, 영상 등 제외) | |
hashtags |
any |
복수의 hashtag 이며, 이후 검색되는것을 고려하여 자유롭게 설계하세요. | |
view_count |
number |
조회 수 | 100 |
like_count |
number |
좋아요 수 | 10 |
share_count |
number |
공유 수 | 0 |
updated_at |
datetime |
게시물 수정 시 자동 기록 | |
created_at |
datetime |
게시물 생성시 자동 기록 | |
기타 필드 자유롭게 구성 |
any |
Feed에 나타나는 게시물 목록 API
쿼리 파라미터
**를 사용 가능합니다.query | 속성 | default(미입력 시 값) | 설명 |
---|---|---|---|
hashtag |
string |
본인계정 |
맛집 , 성수동 등 1건의 해시태그 이며, 정확히 일치하는 값(Exact)만 검색합니다. |
type |
string |
게시물의 type 필드 값 별로 조회가 됩니다. 미입력 시 모든 type 이 조회됩니다. | |
order_by |
string |
created_at |
정렬순서이며, created_at ,updated_at ,like_count ,share_count ,view_count 가 사용 가능합니다. |
오름차순 , 내림차순 모두 가능하게 구현 |
|||
search_by |
string |
title,content |
검색 기준이며, title , content , title,content 이 사용 가능합니다. 각각 제목, 내용, 제목 + 내용 에 해당합니다. |
search |
string |
search_by 에서 검색할 키워드 이며 유저가 입력합니다. 해당 문자가 포함된 게시물을 검색합니다. |
|
page_count |
number |
10 |
페이지당 게시물 갯수를 지정합니다. |
page |
number |
0 |
조회하려는 페이지를 지정합니다. |
content
는 최대 20자 까지만 포함됩니다.
유저가 게시물을 클릭 시 사용되는 API
view_count
가 1 증가합니다.게시물 목록 또는 상세 에서 게시물 좋아요
클릭 시 사용되는 API
<aside> ☝ 위 게시물에 포함된 sns 별 고유 인식 값인 content_id 를 포함해 위 endpoint 를 SNS 별로 각각 호출합니다 ex) 인스타그램에서 넘어온 게시물에 좋아요 표시시 https://www.instagram.com/likes/<content_id> 이 호출됨.
(기능 개발을 위한 요소로, 실제 동작하지 않습니다.)
</aside>
type | method | endpoint |
---|---|---|
facebook |
POST | https://www.facebook.com/likes/<content_id> |
twitter |
POST | https://www.twitter.com/likes/<content_id> |
instagram |
POST | https://www.instagram.com/likes/<content_id> |
threads |
POST | https://www.threads.net/likes/<content_id> |
response status 200
해당 게시물의 like_count
가 1 증가합니다.게시물 목록 또는 상세 에서 공유하기
클릭 시 사용되는 API
type | method | endpoint |
---|---|---|
facebook |
POST | https://www.facebook.com/share/<content_id> |
twitter |
POST | https://www.twitter.com/share/<content_id> |
instagram |
POST | https://www.instagram.com/share/<content_id> |
threads |
POST | https://www.threads.net/share/<content_id> |
response status 200
해당 게시물의 share_count
가 1 증가합니다.본 서비스를 보면 외부에서 게시물을 가져옵니다.
그렇기에 조회수, 좋아요수, 공유하기수 등은 본 서비스에서 증가시키는게 아닌 외부 데이터와 동기 시키는게 정상적인 동작이나, 본 과제에서는 내부 에서 증가 시키도록 처리합니다.
쿼리 파라미터
**를 사용 가능합니다.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
일 시, 게시물 개수view_count
조회된 게시물 들의 view_count
의 sum
(like_count
,share_count
도 동일)?value=count&type=date
일시, start
~ end
기간내 (시작일, 종료일 포함) 해당 hashtag
가 포함된 게시물 수를 일자별로 제공합니다.
?value=count&type=hour
일시, start
~ end
기간내 (시작일, 종료일 포함) 해당 hashtag
가 포함된 게시물 수를 시간별로 제공합니다.
start
일자의 00시 부터 1시간 간격으로.과제 범위가 아니며, 선택에 따라 추가 개발 하실 수 있는 아이디어를 제공드립니다.
Hot hashtags
: 최근 3시간 동안 가장 많이 사용된 Tag 를 추천하는 기능.On Fire
: 내 게시물이 단기간 조회수 급상승시 알림.