Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUrator

여러 플랫폼의 콘텐츠를 한곳에 저장하고 정리하는 iOS 콘텐츠 보관함 앱

2171452 황요성


1. 프로젝트 수행 목적

1.1 프로젝트 정의

  • CUrator는 YouTube, Instagram, Blog, Web 등 여러 플랫폼에 흩어진 “나중에 다시 보고 싶은 콘텐츠”를 한곳에 저장하고, 카테고리별로 정리할 수 있는 iOS 애플리케이션이다.
  • 사용자는 콘텐츠 링크를 저장하고, 앱은 플랫폼 판별 및 카테고리 분류를 통해 저장한 콘텐츠를 다시 찾기 쉽게 관리할 수 있도록 도와준다.

1.2 프로젝트 배경

  • 20대 사용자는 유튜브 쇼츠, 인스타그램 릴스, 블로그 글, 웹사이트 등 다양한 플랫폼에서 콘텐츠를 소비하고 저장한다.
  • 하지만 각 플랫폼의 저장 기능은 서로 분리되어 있어, 나중에 다시 보고 싶은 콘텐츠를 한곳에서 관리하기 어렵다.
  • 또한 저장한 콘텐츠가 어떤 목적으로 저장되었는지 시간이 지나면 기억하기 어렵고, 직접 제목이나 메모를 입력하는 방식은 번거롭다.
  • 이러한 문제를 해결하기 위해 여러 플랫폼의 콘텐츠 링크를 한곳에 저장하고, 카테고리별로 정리하며, 필요할 때 빠르게 다시 열어볼 수 있는 콘텐츠 보관함 앱을 구현하고자 한다.

1.3 프로젝트 목표

  • 링크 저장

    • 사용자가 앱 내에서 URL을 직접 입력하거나 공유 기능을 통해 콘텐츠 링크를 저장할 수 있도록 한다.
  • 플랫폼 판별

    • 입력된 URL을 분석하여 YouTube, Instagram, Blog, Web 등 플랫폼을 구분한다.
  • 콘텐츠 정보 추출

    • YouTube 링크는 oEmbed를 통해 제목과 썸네일 정보를 가져온다.
    • Blog/Web 링크는 Open Graph 메타데이터를 기반으로 콘텐츠 정보를 추출한다.
  • 카테고리 분류

    • 수집된 콘텐츠 정보를 바탕으로 AI를 활용하여 적절한 카테고리, 태그, 짧은 설명을 생성한다.
    • Instagram 콘텐츠는 외부 정보 접근이 제한적이기 때문에 사용자가 직접 카테고리를 선택하여 저장할 수 있도록 한다.
  • 보관함 관리

    • 저장한 콘텐츠를 카드 형태로 보여주고, 카테고리 및 플랫폼별 필터링을 제공한다.
    • 잘못 분류된 콘텐츠는 다른 카테고리로 이동할 수 있으며, 제목/메모 수정 및 삭제가 가능하도록 한다.

2. 프로젝트 개요

2.1 프로젝트 설명

  • CUrator는 여러 플랫폼에 흩어진 콘텐츠 링크를 한곳에 모아 관리하는 iOS 앱이다.
  • 사용자는 나중에 다시 보고 싶은 콘텐츠의 URL을 저장할 수 있으며, 저장된 콘텐츠는 플랫폼과 카테고리에 따라 정리된다.
  • 앱은 입력된 URL을 분석하여 YouTube, Instagram, Blog, Web 등 플랫폼을 판별한다.
  • YouTube 콘텐츠는 oEmbed를 통해 제목과 썸네일을 가져오고, Blog/Web 콘텐츠는 Open Graph 메타데이터를 기반으로 정보를 추출한다.
  • 추출된 정보는 FastAPI 백엔드를 통해 처리되며, AI API를 활용해 카테고리, 태그, 짧은 설명을 생성한다.
  • iOS 앱은 SwiftUI 기반으로 화면을 구성하고, SwiftData를 이용해 저장한 콘텐츠를 로컬에 보관한다.
  • 사용자는 보관함에서 저장된 콘텐츠를 검색하거나 필터링할 수 있으며, 필요에 따라 카테고리 변경, 제목/메모 수정, 삭제를 할 수 있다.

2.2 프로젝트 구조

image
iOS App
  |
  | URL 저장 요청
  v
FastAPI Server
  |
  | 플랫폼 판별
  | 메타데이터 수집
  | AI 카테고리 분류
  v
iOS App
  |
  | 콘텐츠 저장
  v
Local DB
  • Front-end

    • SwiftUI 기반 iOS 앱
    • 링크 저장, 보관함, 설정 화면 구성
    • SwiftData를 이용한 로컬 데이터 저장
  • API Server

    • FastAPI 기반 백엔드 서버
    • 입력된 URL의 플랫폼 판별
    • YouTube oEmbed 및 Open Graph 메타데이터 수집
    • AI API를 활용한 카테고리, 태그, 짧은 설명 생성
  • Local DB

    • 저장된 콘텐츠 정보를 로컬에 보관
    • URL, 제목, 플랫폼, 카테고리, 태그, 메모 등의 데이터 관리

2.3 결과물

홈 화면 / 보관함 화면

홈 화면 보관함 화면

콘텐츠 추가 화면 / 설정 화면

콘텐츠 추가 화면 설정 화면

2.4 기대효과

  • 여러 플랫폼에 흩어진 콘텐츠를 하나의 앱에서 통합 관리할 수 있다.
  • 저장한 콘텐츠를 카테고리별로 정리하여 나중에 다시 찾기 쉬워진다.
  • 직접 제목이나 메모를 일일이 입력해야 하는 부담을 줄일 수 있다.
  • 플랫폼별 저장 기능의 분리로 인해 발생하는 불편함을 줄이고, 목적별 콘텐츠 관리가 가능해진다.
  • 카드형 보관함과 검색/필터링 기능을 통해 사용자는 필요한 콘텐츠를 빠르게 다시 열람할 수 있다.

2.5 관련 기술

구분 설명
SwiftUI Apple 플랫폼에서 선언형 방식으로 사용자 인터페이스를 구성할 수 있는 UI 프레임워크이다.
SwiftData iOS 앱 내부에서 데이터를 로컬에 저장하고 관리하기 위한 Apple의 데이터 관리 프레임워크이다.
FastAPI Python 기반의 웹 API 서버 프레임워크로, 빠르고 간결하게 백엔드 API를 구성할 수 있다.
YouTube oEmbed YouTube 링크로부터 영상 제목, 썸네일 등의 기본 정보를 가져오기 위한 API 방식이다.
Open Graph Metadata 웹페이지의 제목, 설명, 썸네일 등 콘텐츠 정보를 추출하기 위한 메타데이터 형식이다.
AI API 수집된 콘텐츠 정보를 바탕으로 카테고리, 태그, 짧은 설명을 생성하기 위해 사용된다.

2.6 개발 도구

구분 설명
Xcode iOS 앱 개발을 위한 Apple의 통합 개발 환경이다. SwiftUI 기반 화면 구현과 앱 실행, 디버깅에 사용된다.
Swift iOS 앱 기능 구현에 사용되는 Apple의 프로그래밍 언어이다.
Python FastAPI 백엔드 서버 구현에 사용되는 프로그래밍 언어이다.
GitHub 프로젝트 소스 코드 형상 관리 및 저장소 관리를 위해 사용된다.
Figma 앱 화면 설계와 UI/UX 시안 제작을 위해 사용된다.

3. UI/UX 설계

3.1 홈 화면

  • 오늘 다시 볼 콘텐츠와 최근 저장한 콘텐츠를 보여준다.
  • 사용자가 저장한 콘텐츠를 빠르게 확인하고 다시 열람할 수 있도록 카드 형태로 구성한다.

3.2 보관함 화면

  • 앱의 핵심 화면으로, 저장된 콘텐츠 목록을 카드 형태로 보여준다.
  • 링크 추가, 검색, 필터링 기능을 제공한다.
  • 카테고리와 플랫폼 기준으로 콘텐츠를 분류하여 확인할 수 있다.
  • 잘못 분류된 콘텐츠는 다른 카테고리로 이동하거나 삭제할 수 있다.

3.3 설정 화면

  • 관심사 수정, 카테고리 관리, 알림 설정, 앱 정보 확인 기능을 제공한다.
  • 사용자는 필요한 카테고리를 직접 추가, 삭제, 이름 변경할 수 있다.

4. 주요 기능

4.1 링크 저장 기능

  • 사용자는 URL을 직접 입력하여 콘텐츠를 저장할 수 있다.
  • 저장된 링크는 플랫폼 판별 과정을 거쳐 보관함에 추가된다.

4.2 플랫폼 자동 판별 기능

  • 입력된 URL을 분석하여 YouTube, Instagram, Blog, Web 등으로 구분한다.
  • 플랫폼에 따라 다른 방식으로 콘텐츠 정보를 수집한다.

4.3 자동 카테고리 분류 기능

  • YouTube, Blog, Web 콘텐츠는 수집된 제목, 설명, 썸네일 정보를 기반으로 AI가 카테고리를 분류한다.
  • Instagram 콘텐츠는 외부 정보 접근이 제한적이기 때문에 사용자가 직접 카테고리를 선택한다.

4.4 보관함 기능

  • 저장된 콘텐츠를 카드 리스트 형태로 보여준다.
  • 플랫폼별, 카테고리별 필터링을 제공한다.
  • 검색 기능을 통해 원하는 콘텐츠를 빠르게 찾을 수 있다.

4.5 콘텐츠 관리 기능

  • 저장된 콘텐츠의 제목과 메모를 수정할 수 있다.
  • 잘못 분류된 콘텐츠를 다른 카테고리로 이동할 수 있다.
  • 필요 없는 콘텐츠는 삭제할 수 있다.

4.6 카테고리 관리 기능

  • 설정 화면에서 카테고리를 추가할 수 있다.
  • 기존 카테고리의 이름을 변경할 수 있다.
  • 사용하지 않는 카테고리를 삭제할 수 있다.

5. 발표영상

Youtube 동영상

링크 https://youtu.be/42XMQ_vU9fQ

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages