과제정보

기본 정보

시작하기

이 문서는 “소셜 미디어 통합 Feed 서비스(가칭)” 구현을 위한 요구사항을 기록한 문서 입니다.

<aside> ❗ 아래 요구사항을 만족한다면, 범위를 넘어 자체적으로 추가적인 기능구현 가능합니다.

서비스 명칭은 예시이며, 본 문서에 나오는 용어들은 자체 해석하여 변경하실 수 있습니다.

팀내 논의로도 불명확한 요구사항이 있으면, 멘토에게 문의 바랍니다. (실무에선 불명확하거나 두 가지 이상으로 해석되는 요구사항의 경우 개발자가 자체해석 하지 않습니다. 기획자에게 명확히 확인요청 하셔야 합니다.)

</aside>

개요

본 서비스는 유저 계정의 해시태그(”#dani”) 를 기반으로 인스타그램, 스레드, 페이스북, 트위터 등 복수의 SNS에 게시된 게시물 중 유저의 해시태그가 포함된 게시물들을 하나의 서비스에서 확인할 수 있는 통합 Feed 어플리케이션 입니다.

이를 통해 본 서비스의 고객은 하나의 채널로 유저(”#dani”), 또는 브랜드(”#danishop”) 의 SNS 노출 게시물 및 통계를 확인할 수 있습니다.

유저스토리

Keywords

<aside> 💡 A. 사용자 인증 시스템

B. RESTful API

C. 시계열 통계 생성

</aside>

요구사항

A. 사용자

사용자 회원가입(API)

사용자 가입승인(API)

사용자 로그인(API)

B. 게시물

<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

게시물 목록(API)

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 조회하려는 페이지를 지정합니다.

게시물 상세(API)

유저가 게시물을 클릭 시 사용되는 API

게시물 좋아요(API)

게시물 목록 또는 상세 에서 게시물 좋아요 클릭 시 사용되는 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>

게시물 공유(API)

게시물 목록 또는 상세 에서 공유하기 클릭 시 사용되는 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>

본 서비스를 보면 외부에서 게시물을 가져옵니다.

그렇기에 조회수, 좋아요수, 공유하기수 등은 본 서비스에서 증가시키는게 아닌 외부 데이터와 동기 시키는게 정상적인 동작이나, 본 과제에서는 내부 에서 증가 시키도록 처리합니다.

C. 통계

통계(API)

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 가 사용 가능합니다.