1분반-aPPLY

cdc wiki
Com238 (토론 | 기여)님의 2025년 6월 14일 (토) 10:36 판 (개발 과제의 배경 및 효과)
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 다이어리픽 - 사진기반 일기 자동 생성 앱

영문 : DiaryPic - Photo-based Automatic Diary Creation App

과제 팀명

aPPLY

지도교수

박관용 교수님

개발기간

2025년 3월 ~ 2025년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20229200** 박*빈

서울시립대학교 컴퓨터과학부 20229200** 박*찬

서울시립대학교 컴퓨터과학부 20229200** 양*슬

서울시립대학교 컴퓨터과학부 20229200** 이*목

서론

개발 과제의 개요

개발 과제 요약

본 프로젝트는 사용자가 일상 속에서 촬영한 사진을 기반으로 손쉽게 일기를 작성하고 관리할 수 있는 AI 사진 일기 앱을 개발하는 것이다. 사용자는 사진을 업로드하면 AI가 자동으로 일기 초안을 생성해주며, 이를 수정 또는 확정하여 저장할 수 있다. 캘린더 및 앨범 기능을 통해 기록을 시각적으로 관리할 수 있고, 감정 이모티콘, 위치 기반 분류, AI 베스트샷 추천 등 다양한 기능이 제공되어 감성적이고 효율적인 일기 쓰기 경험을 제공한다.

개발 과제의 배경 및 효과

현대 사회에서 사람들은 바쁜 일상 속에서도 자신의 감정을 기록하고 추억을 저장하는 것에 대한 필요성을 느낀다. 그러나 기존의 다이어리 애플리케이션은 대부분 수동 입력 방식으로 제공되며, 사용자가 꾸준히 기록하는 것이 쉽지 않다.

이에 따라 우리는 사진을 기반으로 자동으로 일기를 작성해주는 AI 일기 앱의 필요성을 인식하였다. 우리의 앱은 사용자가 업로드한 사진 정보를 기반으로 AI가 자연어 일기 초안을 생성해주며, 캘린더 기반의 시각적 관리와 감정 태깅, 메타데이터 기반 장소별 앨범 정리 등의 기능을 통해 감성과 편의성을 모두 고려한 사용자 경험을 제공한다.

이를 통해 사용자는 일기 작성의 부담을 줄이면서도 감정 기록과 추억 보관을 쉽게 할 수 있다. AI 기반 장소별 앨범 정리를 활용하여 보다 정돈된 형태로 기록을 관리할 수 있으며, 검색 및 조회 기능을 강화함으로써 과거의 기록을 쉽게 찾아볼 수 있다.

개발 과제의 목표 및 내용

내용

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

내용

  • 특허조사 및 특허 전략 분석

내용

  • 기술 로드맵

내용

시장상황에 대한 분석

  • 경쟁제품 조사 비교

내용

  • 마케팅 전략 제시

내용

개발과제의 기대효과

기술적 기대효과

내용

경제적, 사회적 기대 및 파급효과

내용

기술개발 일정 및 추진체계

개발 일정

내용

구성원 및 추진체계

내용

설계

설계사양

제품의 요구사항

내용

설계 사양

내용

개념설계안

내용

이론적 계산 및 시뮬레이션

내용

상세설계 내용

가. 기술 스택

1. Front-end

1.1 React Native Expo

  • React Native 기반의 개발 플랫폼으로, 크로스 플랫폼 모바일 애플리케이션을 효율적으로 개발할 수 있다.
  • Expo의 내장 API와 컴포넌트를 활용하여 이미지 선택, 위치 정보 등의 네이티브 기능을 간편하게 구현한다.
  • 개발 환경 설정의 복잡성을 줄이고, iOS와 Android 동시 개발을 통해 효율성을 극대화한다.
  • expo-image-picker를 통한 사진 업로드 기능과 expo-notifications를 활용한 푸시 알림 서비스를 구현한다.

1.2 소셜 로그인 통합

  • @react-native-seoul/kakao-login과 @react-native-seoul/naver-login을 활용한 간편 로그인 서비스를 구현한다.
  • expo-apple-authentication을 통한 Apple 로그인 지원으로 iOS 사용자 편의성을 향상시킨다.
  • expo-auth-session을 활용한 OAuth 2.0 인증 플로우를 구현한다.

2. Back-end

2.1 Spring Boot

  • 스프링 프레임워크를 기반으로 한 빠르고 간편한 백엔드 프레임워크이다.
  • Spring Security, Spring Data JPA, Spring Validation 등의 다양한 기능을 플러그인 방식으로 쉽게 확장시킬 수 있다.
  • 내장 톰캣 서버를 통한 독립 실행 가능한 애플리케이션 구성으로 배포와 운영을 간소화한다.
  • AI 서버와의 HTTP 통신을 위한 RestTemplate/WebClient를 활용하여 마이크로서비스 아키텍처를 구현한다.

2.2 Spring Data JPA

  • 데이터베이스와의 상호작용을 간단하게 만들어주는 ORM 기술이다.
  • JPA를 통한 객체와 관계형 데이터베이스 간의 매핑을 자동화한다.
  • Repository 패턴을 통한 데이터 액세스 계층의 추상화로 개발 생산성을 향상시킨다.
  • 사용자 정보, 일기 데이터, 사진 메타데이터 등의 관계형 데이터를 효율적으로 관리한다.

2.3 Spring Security

  • 스프링 프레임워크 기반의 포괄적인 보안 프레임워크이다.
  • JWT 기반 무상태 인증 시스템을 구현하여 확장성과 성능을 최적화한다.
  • OAuth 2.0 소셜 로그인 통합으로 사용자 편의성과 보안성을 동시에 확보한다.
  • 개인 사진과 일기 데이터 보호를 위한 강화된 보안 정책을 적용한다.

2.4 MySQL

  • 관계형 데이터베이스 관리 시스템(RDBMS)으로 ACID 특성을 보장하는 안정적인 데이터 저장소이다.
  • 트랜잭션 지원을 통한 데이터 무결성 보장과 동시성 제어를 수행한다.

3. AI

3.1 FastAPI

  • Python 기반의 웹 프레임워크로 AI 모델 서빙에 최적화되어 있다.
  • Spring Boot 백엔드 서버로부터 이미지 분석 요청을 받아 AI 처리 결과를 반환하는 마이크로서비스로 동작한다.

3.2 OpenAI GPT API

  • OpenAI에서 제공하는 대규모 언어 모델 API로 고품질의 자연어 생성 서비스를 제공한다.
  • GPT-4.1을 활용한 일기 자동 생성과 GPT-4.1-nano를 통한 감정 이모티콘 추천 기능을 구현한다.
  • GPT-4o-mini를 활용하여 업로드된 여러 사진 중 베스트샷을 자동 선별하는 이미지 분석 기능을 제공한다.
  • 프롬프트 엔지니어링을 통한 개인화된 일기 작성 스타일 적용으로 사용자별 맞춤형 콘텐츠를 생성한다.

3.3 Google Gemini API

  • Google에서 제공하는 멀티모달 AI 모델로 일기 수정 및 개선 서비스를 제공한다.
  • Gemini-2.5-flash를 활용하여 사용자가 작성한 일기의 문체와 내용을 자연스럽게 수정한다.

3.4 Pydantic

  • FastAPI와 긴밀하게 통합된 데이터 검증 라이브러리로 API 요청/응답 데이터의 타입 안전성을 보장한다.
  • 자동 데이터 검증과 직렬화/역직렬화를 통한 안정적인 데이터 처리를 수행한다.

4. Infra

4.1 AWS EC2 (Elastic Compute Cloud)

  • Spring Boot 백엔드 서버와 FastAPI AI 서버를 각각 독립된 인스턴스에서 호스팅한다.
  • 가상 서버 인스턴스를 제공하여 마이크로서비스 아키텍처를 안정적으로 운영한다.

4.2 AWS S3 (Simple Storage Service)

  • 사용자가 업로드하는 이미지 파일을 안전하고 확장 가능한 객체 스토리지에 저장한다.

4.3 AWS RDS (Relational Database Service)

  • MySQL 데이터베이스를 클라우드에서 안정적으로 운영하기 위한 서비스이다.
  • 클라우드 환경에서의 확장성과 안정성을 확보하여 사용자 및 일기 데이터를 관리한다.

4.4 AWS Route 53

  • 고성능 DNS 웹 서비스로 도메인 관리와 트래픽 라우팅을 처리한다.

5. CI/CD

5.1 GitHub Actions

  • GitHub 저장소와 통합된 CI/CD 플랫폼으로 코드 변경 시 자동화된 빌드와 배포를 수행한다.
  • YAML 기반의 워크플로우 정의를 통해 테스트, 빌드, 배포 파이프라인을 코드로 관리한다.
  • 브랜치 전략과 연동하여 개발, 스테이징, 프로덕션 환경별 자동 배포를 구현한다.
  • AWS CLI와 연동하여 EC2 인스턴스 배포 자동화를 처리한다.


나. 데이터 흐름도

  • 소셜 로그인

데이터2.jpg

  • 사진 업로드

데이터3.jpg

  • 사진 선택 및 AI 추천

데이터4.jpg

  • 일기 생성

데이터5.jpg


다. ERD

  • 전체 ER 다이어그램

Erd.jpg


라. 클래스 다이어그램

  • User 관련 클래스

클래스1.jpg

  • Photo 관련 클래스

클래스2.jpg

  • Diary 관련 클래스

클래스3.jpg

  • photo <-> diary 관계

클래스4.jpg

  • Album 관련 클래스

클래스5.jpg

  • 키워드 관련 다이어그램

클래스6.jpg

  • 약관 관련 다이어그램

클래스7.jpg

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용