1분반-aPPLY
cdc wiki
프로젝트 개요
기술개발 과제
국문 : 다이어리픽 - 사진기반 일기 자동 생성 앱
영문 : DiaryPic - Photo-based Automatic Diary Creation App
과제 팀명
aPPLY
지도교수
박관용 교수님
개발기간
2025년 3월 ~ 2025년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 20229200** 박*빈
서울시립대학교 컴퓨터과학부 20229200** 박*찬
서울시립대학교 컴퓨터과학부 20229200** 양*슬
서울시립대학교 컴퓨터과학부 20229200** 이*목
서론
개발 과제의 개요
개발 과제 요약
내용ㅁ니아럼;ㅣㅇ나ㅓㄹ;ㅣ
개발 과제의 배경
배경입나ㅣ다
개발 과제의 목표 및 내용
내용
관련 기술의 현황
관련 기술의 현황 및 분석(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 인스턴스 배포 자동화를 처리한다.
나. 데이터 흐름도
- 소셜 로그인
- 사진 업로드
- 사진 선택 및 AI 추천
- 일기 생성
다. ERD
- 전체 ER 다이어그램
라. 클래스 다이어그램
- User 관련 클래스
- Photo 관련 클래스
- Diary 관련 클래스
- photo <-> diary 관계
- Album 관련 클래스
- 키워드 관련 다이어그램
- 약관 관련 다이어그램
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용