1분반-aPPLY
프로젝트 개요
기술개발 과제
국문 : 다이어리픽 - 사진기반 일기 자동 생성 앱
영문 : DiaryPic - Photo-based Automatic Diary Creation App
과제 팀명
aPPLY
지도교수
박관용 교수님
개발기간
2025년 3월 ~ 2025년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 20229200** 박*빈
서울시립대학교 컴퓨터과학부 20229200** 박*찬
서울시립대학교 컴퓨터과학부 20229200** 양*슬
서울시립대학교 컴퓨터과학부 20229200** 이*목
서론
개발 과제의 개요
개발 과제 요약
본 프로젝트는 사용자가 일상 속에서 촬영한 사진을 기반으로 손쉽게 일기를 작성하고 관리할 수 있는 AI 사진 일기 앱을 개발하는 것이다. 사용자는 사진을 업로드하면 AI가 자동으로 일기 초안을 생성해주며, 이를 수정 또는 확정하여 저장할 수 있다. 캘린더 및 앨범 기능을 통해 기록을 시각적으로 관리할 수 있고, 감정 이모티콘, 위치 기반 분류, AI 베스트샷 추천 등 다양한 기능이 제공되어 감성적이고 효율적인 일기 쓰기 경험을 제공한다.
개발 과제의 배경 및 효과
현대 사회에서 사람들은 바쁜 일상 속에서도 자신의 감정을 기록하고 추억을 저장하는 것에 대한 필요성을 느낀다. 그러나 기존의 다이어리 애플리케이션은 대부분 수동 입력 방식으로 제공되며, 사용자가 꾸준히 기록하는 것이 쉽지 않다.
이에 따라 우리는 사진을 기반으로 자동으로 일기를 작성해주는 AI 일기 앱의 필요성을 인식하였다. 우리의 앱은 사용자가 업로드한 사진 정보를 기반으로 AI가 자연어 일기 초안을 생성해주며, 캘린더 기반의 시각적 관리와 감정 태깅, 메타데이터 기반 장소별 앨범 정리 등의 기능을 통해 감성과 편의성을 모두 고려한 사용자 경험을 제공한다.
이를 통해 사용자는 일기 작성의 부담을 줄이면서도 감정 기록과 추억 보관을 쉽게 할 수 있다. AI 기반 장소별 앨범 정리를 활용하여 보다 정돈된 형태로 기록을 관리할 수 있으며, 검색 및 조회 기능을 강화함으로써 과거의 기록을 쉽게 찾아볼 수 있다.
개발 과제의 목표 및 내용
이 앱의 주요 개발 목표는 사진을 활용한 자동 일기 생성 시스템을 중심으로, 사용자의 기록 습관을 쉽게 만들어주는 통합형 일기 플랫폼을 구축하는 것이다. 아래는 구체적인 기능 구성이다.
1. 사용자 인증 및 시작화면
- SNS 연동을 통한 회원가입 및 로그인 기능을 제공한다.
2. 메인 페이지: 사진 기반 기록 시작
- 사용자가 하루 중 기록하고 싶은 사진을 한 장 또는 여러 장 업로드할 수 있다.
- 사진 메타데이터(촬영일, 장소 등)를 기반으로 자동 분류 및 활용한다.
3. 캘린더 기반 기록 관리
- 캘린더에서 날짜 선택 후 해당 날짜의 일기를 조회할 수 있다.
- 일기 유무에 따라 썸네일에 해당 일기의 대표 사진을 표시한다.
- 사진이 없는 경우에는 기본 배경화면이 썸네일로 자동 지정된다.
- 새 기록 추가 시, 사진 업로드 또는 텍스트 입력 창을 제공한다.
4. 일기 작성 및 AI 지원 기능
- 여러 장의 사진 중 최대 9장의 대표 사진을 AI가 베스트샷으로 추천한다.
- 사용자는 AI 사진 추천 전 필수 포함 사진을 수동으로 선택할 수 있다.
- Swipe를 통해 사진을 조회할 수 있다.
- 각 사진마다 사용자가 포커스 키워드(인물, 풍경, 음식, 사물, 동물, 커스텀 추가)를 선택한다.
- AI는 사진, 메타데이터, 키워드, 말투 설정을 바탕으로 일기 초안을 생성한다.
- 사용자는 초안을 수동으로 수정하고 텍스트를 입력하여 AI가 생성한 내용을 수정할 수 있다.
- 일기 작성 시 감정 이모티콘 설정 및 좋아요 태그 기능을 제공한다.
5. 말투 커스터마이징 기능
- 사용자는 사전 설정된 말투 유형(예: 기록형, 감성형, 경쾌형, 내면 대화형, 관찰형, 계획형 등) 중 선택할 수 있다.
- 필요 시 직접 수정하거나 새 말투 스타일을 추가할 수 있다.
- AI는 설정된 말투에 맞춰 일기를 생성하여 개인화된 기록 경험을 제공한다.
6. 마이 페이지: 개인 설정 및 통계
- 사용자 정보 수정 기능을 제공한다.
- 사진 기록 알림 On/Off, 시간 설정 등 알림 기능을 제공한다.
- 삭제된 일기를 임시 저장하는 휴지통 기능으로 실수를 방지한다.
- 6.1 앨범 페이지: 자동 정리와 검색
- - 작성된 일기들을 썸네일로 한눈에 볼 수 있는 앨범 뷰를 제공한다.
- - 월/년별 일기 작성 통계(작성 수)를 제공한다.
- - 좋아요를 누른 일기만 모아볼 수 있는 좋아요 앨범을 제공한다.
- - 장소 기반 자동 앨범 분류 기능(예: "서울특별시", "미국")을 제공한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- State of art
기술 분야 | 적용 기술 | 비교 |
---|---|---|
Multimodal LLM | GPT, Gemini, Gemma, QWEN | Image-Text-to-Text Multimodal 모델 |
LLM | GPT, Gemini, LLAMA, QwQ, EXAONE | Text Generation, 고급 자연어 처리 |
Computer Vision | CLIP, NIMA, InsightFace, EAR | 입력 이미지 분석 및 Clustering/Ranking |
- 특허조사 및 특허 전략 분석
- ◇ 유사 특허 명
● 공개
이미지 인식과 일정 데이터를 통한 자동 일기 작성 서비스
출원번호: 1020230123422 (2023-09-15)
공유 이미지의 감성분류 기반 자동 문장 완성과 그림일기 서비스 제공장치
출원번호: 1020220062520 (2022-05-23)
인공지능 서비스를 이용한 일기작성장치 및 그 장치의 구동방법
출원번호: 1020230104800 (2023-08-10)
● 등록
시각적 입력의 처리
출원번호: 1020180035734 (2018-03-28)
일기 및 일정 관리 서비스서버, 일기 및 일정 관리 서비스를 제공하는 단말기 그리고 그 제어방법
출원번호: 1020130126094(2013-10-22)
⚫ 소멸 (등록료 미납)
전자장치에서 일기 서비스를 제공하는 방법 및 장치
출원번호: 1020140017769 (2014-01-17)
⚫ 거절
일기 분석을 기반으로 사용자의 감정을 관리하는 시스템 및 방법
출원번호: 1020220019676 (2022-02-15)
- ◇ 특허 전략
- 유사 특허와의 차별점 분석
1. 자동 일기 작성의 기반 기술 차별화
기존 특허들은 주로 이미지 인식과 일정 관리 또는 감정 분석을 통해 일기를 작성하는 시스템을 다루고 있습니다. 예를 들어, 이미지 인식과 일정 데이터를 통한 자동 일기 작성 서비스(1020230123422) 특허는 이미지와 일정 데이터를 결합하여 자동으로 일기를 생성합니다. 반면, 우리의 프로젝트는 사진 기반으로 자동 일기 초안을 생성하며, 감성 이모티콘과 위치 기반 분류 기능을 추가하여 사용자가 일기를 더 감성적이고 시각적으로 관리할 수 있도록 돕습니다.
2. 기능적 차별화
기존 특허에서 일기 및 일정 관리 시스템(1020130126094)에서는 일정 정보와 일기를 통합하여 자동으로 일기를 생성하는 방식입니다. 그러나 우리의 프로젝트는 자동 베스트샷 추천, 사용자 맞춤형 감정 태그, 그리고 자유로운 텍스트 수정 기능을 포함해 사용자가 더 개인화된 일기를 작성할 수 있게 도와줍니다.
3. AI 기반 감정 분석 및 개인화
기존 특허들은 감정 분석을 통해 사용자의 감정을 추적하거나 일기를 생성하는 데 주력하지만, 우리의 프로젝트는 사용자가 선택한 말투에 따라 자동으로 일기 초안을 개인화하며, AI 기반 감성 분석을 통해 자동으로 감정을 분석하여 사용자 맞춤형 결과를 제공합니다.
- 향후 특허 전략
구분 | 내용 |
---|---|
기본 특허 | AI 모델 및 감성 분석 기술 보호 - 감성 분석 및 자동 수정 기능 |
AI 기반 개인화 기술 - 맞춤형 일기 초안 제공 시스템 | |
응용 특허 | 데이터 처리 및 관리 기술 보호 - 사진 메타데이터 처리와 위치 기반 일기 분류 |
방어 특허 | AI 기반 감성 분석 및 자동 수정, UI/UX 차별화 기술 |
시장상황에 대한 분석
- 경쟁제품 조사 비교
◇ 마이모리
- 서비스: 채팅형 일기, 일기 생성 및 사진 설명 작성, 답장 제공
- 강점: ui/ux가 직관적임, 습관적 일기를 쓸 수 있게 도와줌, 감성적 문체 제공
- 약점: 일기를 쓰기 위해서는 캐슈넛이라는 재화가 필요함 (광고를 보거나 구독필요)
◇ 답다
- 서비스: 감정 및 누구와 어디서, 무엇을 했는지 선택을 하면 자동 일기 생성, 12시간 이후 답장 제공
- 강점: 감정에 대한 구체적인 감정을 분류해줌, 쓰기 찬스를 통해 조금 더 편리하게 일기를 작성할 수 있음, 일기 작성 후 감정 태그를 붙여줌
- 약점: 감정 태그 분석 시간이 필요함, 다양한 기능이 없음
◇ 마인디
- 서비스: 채팅형 일기 및 AI 요약, 줄글형 일기 및 AI 분석
- 강점: 디자인이 다양해 토핑경제가 가능함, 다양한 형식으로 일기 작성 가능
- 약점: 답장 제공 시간이 필요함, 비슷한 기능(채팅형 일기, 줄글형 일기)이 많아서 복잡해보임
- 마케팅 전략 제시
개발과제의 기대효과
기술적 기대효과
- 이 프로젝트에서는 이미지에서 추출한 시각 정보를 텍스트 생성에 활용하는 Multimodal AI 기술을 사용한다. 최신 Multimodal AI 기술을 실용적 활용 사례 제공으로 기술적 발전에 기여한다. 또한 사진 인식 및 분석 기술, 자연어처리 등의 실질적 응용기술 개발을 촉진할 수 있다.
- 사용자에 의해 개인화된 문체를 프롬프트에 사용하여 AI가 사용자 특유의 말투를 반영하여 일기의 초안을 생성한다. 이러한 사용자 맞춤형 기능은 기존 텍스트 생성 모델과 차별화된 성능과 자연스러움을 보여줄 수 있다.
- 사용자가 직접 좋은 이미지를 고르지 않아도 이미지 분석을 통해 좋은 이미지를 선택하게 된다. 또한 이미지만 업로드 후 일기를 작성하지 않아도 스스로 AI가 초안의 일기를 작성해주고 쉽게 수정할 수 있도록 도와준다. 이는 사용자의 노력을 크게 줄여주어 사용자 경험(UX)을 개선한다.
경제적, 사회적 기대 및 파급효과
- 기존 일기 작성 방식과는 다르게 사진 메타데이터 + AI 기술을 접목한 새로운 시장 영역을 개척한다.
- 바쁜 현대인들에게 AI를 통한 손쉬운 일기 작성 기능으로 자기 표현의 기회를 확대한다.
- 개인의 추억과 경험을 디지털 형식으로 보존하여 사회 전반의 기록 보존 및 문화 발전에 긍정적인 영향을 미친다.
기술개발 일정 및 추진체계
개발 일정
단계별 세부개발 내용 | 담당자 | 개발기간 (월단위) | 비고 | |||
---|---|---|---|---|---|---|
3 | 4 | 5 | 6 | |||
아이디어 구상 및 요구사항 분석 | 전원 | ● | ||||
개발 환경 및 컨벤션 설정 | 전원 | ● | ||||
서버 인프라 및 CI/CD 구축 | 이*목, 양*슬 | ● | ● | 서버 인프라: aws ec2, aws s3, aws route 53 CI/CD: git action | ||
UI/UX 설계 | 박*빈 | ● | ● | |||
데이터베이스 설계 | 이*목 | ● | ● | |||
API 설계 | 이*목, 박*찬 | ● | ● | |||
프론트엔드 개발 | 박*찬, 박*빈 | ● | ● | |||
백엔드 개발 | 이*목 | ● | ● | |||
AI서버 개발 | 양*슬 | ● | ● | |||
이미지 선별 AI 모델 생성 | 박*찬, 양*슬 | ● | ● | |||
일기 생성 AI 모델 생성 | 박*찬, 양*슬 | ● | ● | |||
통합테스트 | 전원 | ● | ● | |||
배포 | 전원 | ● | ||||
유지보수 | 전원 | ● |
구성원 및 추진체계
◇ 박*빈 : 팀장, UI/UX 디자인, 클라이언트 개발
◇ 박*찬 : 클라이언트 개발, AI 모델 엔지니어링
◇ 양*슬 : AI 모델 엔지니어링, AI 서버 개발
◇ 이*목 : 백엔드 개발, DB설계
설계
설계사양
제품의 요구사항
ID | 구분 | 요구 사항 | D or W | 우선 순위 | 비고 |
---|---|---|---|---|---|
NAV | 네비게이션바 | NAV-01 네비게이션 - 하단 네이게이션 바를 통해 메인, 캘린더, 마이 페이지로 이동할 수 있다. |
D | 상 | |
USR | 회원가입/로그인 | USR-01 SNS 회원가입/로그인 - 소셜 계정으로 로그인 및 회원가입을 할 수 있다. |
D | 상 | |
USR-02 초기 설정 - 닉네임 설정 가능 - 일기 말투 설정 가능 - 이용 약관 동의 가능 - 앱 사용 설명 페이지로 유저의 사용을 도울 수 있다. |
D | 상 | 닉네임 글자 수 10자 제한 | ||
MAI | 메인 페이지 | MAI-01 사진 업로드 - 사용자가 일기로 사용하고 싶은 사진을 한 장 또는 여러 장 업로드할 수 있다. - 사용자는 메인 화면이나 캘린더 화면에서 사진을 업로드할 수 있다. |
D | 상 | 한 번에 업로드 40장 제한 |
MAI-02 감성 문구 디스플레이 기능 - 사용자는 요일 별 감성 문구를 볼 수 있다. |
D | 중 | |||
CAL | 캘린더 페이지 | CAL-01 기록 조회 - 사용자가 특정(일기 생성이 완료된) 날짜를 선택 시 해당 날짜에 등록된 사진 및 일기 페이지로 이동할 수 있다. |
D | 상 | |
CAL-02 기록 추가 - 사용자는 날짜를 선택한 후 새로운 기록을 추가할 수 있다. - '+' 버튼을 누르면 사진 업로드 버튼 및 텍스트 입력 칸이 나타난다. - 사용자는 갤러리에서 사진을 업로드할 수 있다. |
D | 중 | |||
CAL-03 캘린더 날짜별 배경사진 설정 - 캘린더 날짜별 배경사진은 해당 날짜에 작성된 일기의 대표 사진(사용자가 직접 설정 가능)으로 제공되며, 감정 이모티콘으로 전환할 수 있다. - 사용자가 사진없이 텍스트만 입력할 경우 기본 배경사진을 사용한다. - 일기가 존재하지 않는 경우, 배경사진은 지정되지 않는다. |
D | 중 | |||
CAL-04 일기 초안 생성 표시 - 사용자는 일기 작성 요일 배경사진에 생긴 링을 통해 AI가 일기 초안이 작성되었다는 것을 인식할 수 있다. - 사용자가 초안을 수정하거나 확정하면 링이 사라진다. |
D | 중 | |||
CAL-05 검색 기능 - 사용자는 장소, 일기 내용을 이용해 일기를 검색할 수 있다. |
D | 중 | |||
DIA | 일기 페이지 | DIA-01 필수 사진 선택 - 사용자는 업로드한 사진 중 꼭 선택되야하는 사진을 9장 이하로 선택한다. |
D | 상 | |
DIA-02 사진 선택 AI - 사용자가 갤러리에서 사진을 여러장 선택하면 AI가 자동으로 베스트샷 사진을 선택하여 저장한다. |
D | 상 | 필수 사진 포함 최대 9장 | ||
DIA-03 사진 조회 - 사용자는 쓸어넘기기를 통해 사진을 볼 수 있다. - 사용자는 가로 스크롤바로 사진을 넘겨볼 수 있다. - 사용자는 버튼을 통해 업로드된 사진을 한 화면에서 볼 수 있다. |
D | 상 | |||
DIA-04 포커스 키워드 선정 - 사용자는 선택된 사진에 대해 키워드(인물, 풍경, 음식, 사물, 동물, 기타)를 선택할 수 있다. - 사용자는 본인이 원하는 키워드를 추가할 수 있다. |
D | 상 | 키워드 개수 제한 없음 | ||
DIA-05 내가 쓰기 설정 - 사용자는 사진 별 키워드를 설정한 후 AI 초안 작성 버튼을 누르거나 직접 쓰기 버튼을 선택할 수 있다. |
D | 중 | |||
DIA-06 일기 초안 작성 - ai는 사진을 메타데이터, 포커스 키워드를 기반으로 분석하여 일기 초안을 작성해준다. - 사용자는 초안을 수정하거나 확정할 수 있다. - ai는 일기를 분석해 초기 감정 이모티콘을 설정해준다. |
D | 상 | |||
DIA-07 일기 초안 수정 - 사용자는 일기 수정 시 text 명령을 통해 초안을 수정할 수 있다. |
D | 상 | |||
DIA-08 일기 좋아요 기능 - 사용자는 일기에 좋아요 태그를 할 수 있다. |
D | 상 | |||
DIA-09 사진 순서 수정 - 사용자는 드래그 앤 드롭으로 사진 순서를 수정할 수 있다. |
D | 중 | |||
DIA-10 감정 이모티콘 설정 - 사용자는 일기 초안을 수정하거나 확정할 때 감정 이모티콘을 설정할 수 있다. |
D | 중 | |||
MY | 마이 페이지 | MY-01 닉네임 수정 - 닉네임 디스플레이 및 수정 기능 |
D | 중 | 글자 수 10자 제한 |
MY-02 일기 통계 - 월/년 단위 일기 통계 - 총 일기 개수 디스플레이 |
D | 중 | |||
MY-03 앨범 조회 - 사용자는 “좋아요”표시 앨범과 장소 기반 분류 앨범, 스마트 앨범을 볼 수 있다. |
D | 상 | |||
MY-04 좋아요 앨범 - 사용자는 “좋아요”를 표시한 일기들을 볼 수 있다. |
D | 상 | |||
MY-05 장소 기반 분류 앨범 - 메타데이터를 활용해 장소별로 사진을 자동 분류 예: “일본 여행 앨범”, “서울 여행 앨범” 등의 카테고리 생성 |
D | 중 | |||
SET | 설정 페이지 | SET-01 고객문의 - Q&A, 이용약관(서비스 이용약관, 개인정보 수집 이용 동의) |
D | 중 | |
SET-02 말투 커스터마이징 - 회원가입 시 초기설정 후 마이페이지에서 수정 가능하다. - 사용자는 원하는 말투를 선택할 수 있다. - 키워드 별 템플릿이 주어지고, 사용자가 템플릿을 원하는 대로 수정할 수 있다 |
D | 상 | |||
SET-03 디스플레이 키워드 설정 - 사용자는 디스플레이될 키워드를 설정할 수 있다. |
D | 중 | |||
SET-04 휴지통 - 삭제된 일기 임시저장 - 삭제한 일기 30일 후 영구삭제 - 영구 삭제 버튼을 누르면 일기 영구삭제 - 사용자는 휴지통에 있는 모든 일기를 한번에 삭제할 수 있다. |
D | 중 | |||
SET-05 알림 On/Off - 사진 찍기 알림 기능 온오프 - 시간 지정 가능 |
D | 상 | |||
SET-6 로그아웃/회원탈퇴 - 사용자는 계정을 로그아웃/회원탈퇴할 수 있다. |
D | 상 |
설계 사양
1. 거시적 기능 분할 및 각 기능의 구체 설계사양
기능 | 주요 사양 |
---|---|
사용자 인증 | SNS 계정 연동(카카오, 네이버, 애플) |
사진 기반 기록 | 사진 업로드, 메타데이터 활용 |
캘린더 기반 관리 | 날짜 선택, 일기 유무 표시, 기록 추가 기능 |
일기 작성(AI) | AI 베스트샷 추천, 포커스 키워드 입력, 감정 이모티콘, 텍스트 명령 수정 |
말투 커스터마이징 | 말투 템플릿 제공, 수정 가능, 개인화된 AI 일기 생성 |
마이페이지 및 통계 | 닉네임 수정, 월/연도별 통계 |
앨범 분류 | 좋아요 앨범, 장소 기반 분류 |
2. 설계사양 변수 중요도 계수
변수 | 중요도 계수 (1~5) |
---|---|
사용자 편의성 | 5 |
AI 정확도 | 5 |
반응 속도 | 4 |
UI/UX 디자인 | 4 |
개인화 설정의 자유도 | 4 |
데이터 보안 | 4 |
저장 기능 | 3 |
개념설계안
가. 핵심 아이디어
아이디어 1: “사진이 시작점인 AI 일기장”
설명: 사용자가 하루 중 의미 있는 사진을 먼저 업로드하면, AI가 그날의 분위기와 키워드 분석을 통해 감성적인 일기 초안을 자동 작성. 사용자는 이를 수정하거나 감정 이모티콘, 말투를 설정하여 완성.
특징:
말투 커스터마이징으로 AI 일기 문체 조절 가능
사진 기반 메모리 앨범 자동 생성
STT(음성 인식)으로 빠른 수정 지원
도식 예시:
사진 → 키워드 선택 → AI 일기 초안 → 수정 및 확정 → 캘린더 등록
아이디어 2: “AI 스코어 기반 베스트샷 자동 추출기”
설명: 사용자가 업로드한 사진에 대해, 단순 미적 점수(aesthetic score)에 이미지의 선명도, 중복 여부, 다양성을 고려하여 일기 작성에 어울리는 베스트샷을 추출합니다. CLIP 모델 기반 결과와 MLLM 기반 결과를 앙상블하여 최종 결과를 산출합니다.
특징:
감성 전달력을 수치화하여 정량적 기준 도입
다양한 수치 기반 베스트샷 선별로 사용자 만족도 상승
사진 분석을 통한 자동화된 일기 흐름 제공
도식 예시:
사진 업로드 → CLIP 모델 기반 이미지 선택 + MLLM 기반 이미지 선택 -> 결과 앙상블
아이디어 3: “말투 맞춤형 일기 생성기”
설명: 유저가 자신의 성향(예: 담백, 감성, 친구에게 말하듯)을 설정하면 AI가 해당 스타일로 일기를 생성. 직접 프롬프트를 수정하여 말투를 세밀하게 다듬을 수 있음.
특징:
고정된 말투가 아닌, 사용자 정의 말투 제공
감성적 개인화의 극대화
다. 핵심 기능 시퀀스 다이어그램
사진 업로드에서 자동 일기 생성까지의 상세 흐름을 나타낸 시퀀스 다이어그램
이론적 계산 및 시뮬레이션
◇ MLLM(Multimodal Large Language Model)의 일기 생성 Prompt Engineering
사용자가 제공한 이미지와 해당 이미지에 대한 정보(날짜, 위치, 포커스 키워드)를 바탕으로, 사용자의 말투에 맞춘 자연스러운 일기 형식의 텍스트를 생성하도록 Prompt Engineering을 진행하였다. 이를 위해 아래와 같이 여러 버전의 프롬프트 템플릿이 작성되었으며 각 버전은 기존 프롬프트의 한계점을 보완하거나 개선하기 위한 실험적 시도를 포함한다.
1. Single Image Prompt
(1) ver1.0
(2) ver2.2
2. Multi Image Prompt
(1) ver2.0
(2) ver3.3
◇ MLLM(Multimodal Large Language Model)의 이미지 선택 Prompt Engineering
MLLM 기반 이미지 평가 시스템에서 최종적으로 선택할 최상의 이미지 9장을 결정하기 위해 Prompt Engineering을 진행하였다. 프롬프트 내에 이미지 평가 기준을 명확히 제시하며 해당 기준에 따라 이미지에 부여된 번호를 반환하도록 지시했다. 여러 버전의 프롬프트 템플릿이 작성되었으며 각 버전은 기존 프롬프트의 한계점을 보완하거나 개선하기 위한 실험적 시도를 포함한다.
1. ver1.0
◇ CLIP(Contrastive Language-Image Pre-training) 모델과 Pre-trained MLP(Multi-layer Perceptron)을 이용한 이미지 선택
CLIP 모델을 사용해 각 이미지를 768차원의 임베딩 벡터로 변환한다. 이 벡터는 이미지의 전역적 특징을 표현한다. 추출된 임베딩 벡터에 대해 L2 정규화를 수행한다. 이 정규화 과정을 통해 벡터 크기가 1이 되며 각 벡터 간 cosine similarity를 비교하기 용이해진다.
정규화된 임베딩 벡터를 받아 MLP(Multi-layer Perceptron)을 통해 미적 점수를 산출한다. MLP는 다음과 같은 계층 구조를 가진다. Input Layer: 768차원, Hidden Layer: Linear(768 → 1024) → Dropout → Linear(1024 → 128) → Dropout → Linear(128 → 64) → Dropout → Linear(64 → 16), Output Layer: Linear(16 → 1)
두 개의 정규화된 임베딩 벡터에 대해 코사인 유사도는 다음과 같이 계산된다.
계산된 유사도는 모든 이미지 쌍에 대해 행렬 형태로 저장된다.
각 이미지 i에 대해, 자기 자신을 제외한 다른 이미지들과의 cosine similarity의 평균을 계산한다.
여기서 N은 이미지의 총 개수이고, S는 Similarity이다. 평균 유사도의 역수를 사용하여 이미지가 다른 이미지와 얼마나 다른지를 평가한다. 평균 유사도가 낮을수록 다양성 점수가 높아지게 된다.
정규화된 미적 점수 A_i와 정규화된 다양성 점수 D_i를 가중치에 따라 결합하여 최종 점수를 산출한다.
최종 순위를 산출한 후, 미리 정해진 threshold 값을 기준으로 매우 유사한 이미지를 중복 처리한다. 선택한 이미지 목록에 대해, 새 이미지가 기존 선택된 이미지와의 모든 유사도가 0.9 미만이면 선택한다.또한 각 이미지에 대해, 이미 선택된 이미지들과의 유사도 합에 일정 가중치를 곱한 값을 원래 미적 점수에서 차감한다.
이 과정을 통해 유사한 이미지가 많을수록 최종 점수가 낮아지도록 보정한다.
이미지 간의 cosine similarity가 미리 설정된 threshold 값 이상인 경우, 같은 cluster로 묶는다. Clustering 알고리즘은 아직 할당되지 않은 이미지를 기준으로 같은 그룹에 속하는 이미지를 선정한다. 각 cluster 내에서 미적 점수가 가장 높은 이미지를 대표 이미지로 선택한다.
◇ MLLM과 CLIP 모델을 앙상블하여 이미지 선택
MLLM(Multimodal Large Language Model)은 텍스트와 이미지 정보를 통합적으로 처리하고, 고차원적으로 의미를 해석 및 미적 점수 산출에 강점을 가진다. 특히 사람의 선호도나 추상적 기준(아름다움, 조화로움, 감정적 분위기 등)을 반영하는데 있어 자연어 텍스트만으로 평가가 가능하기 때문에 기존의 단일 벡터 기반 모델과 차별점이 있다.
반면, CLIP 기반 모델은 이미지 간 중복(유사도가 높은 이미지들) 제거 및 정량적 유사도 계산에 좋은 성능을 보인다. CLIP 임베딩 기반의 cosine similarity는 이미지 간의 유사도를 정밀하게 측정할 수 있으며, 이로부터 중복 제거, 이미지 다양성, 클러스터링 등 다양한 후처리 전략을 안정적으로 적용할 수 있다.
따라서 MLLM과 CLIP 두 모델의 강점을 상호보완적으로 결합하기 위해 다음과 같은 앙상블 방식을 채택하였다.
1. CLIP 기반 클러스터링 전처리
- CLIP 모델로부터 얻은 이미지 임베딩을 기반으로 cosine similarity를 계산하고, threshold 이상으로 유사한 이미지들을 하나의 cluster로 묶는다. 각 cluster는 시각적으로 매우 유사한 이미지들의 집합으로 간주된다.
2. Cluster 대표 이미지 선별
- 각 cluster 내에서 미적 점수가 가장 높은 이미지를 대표 이미지로 선정한다. 이로써 중복성이 제거된, 다양성을 갖춘 이미지 집합이 구성된다.
3. MLLM 기반 최종 평가 및 선택
- CLIP을 통해 사전 필터링된 대표 이미지들을 MLLM의 입력으로 넣어, 프롬프트에 정의된 평가 기준(미적 품질, 다양성, 스타일 등)에 따라 최종적으로 9장의 이미지를 선택하도록 한다. 이 단계에서는 사람의 추상적 선호를 잘 반영할 수 있는 MLLM의 장점을 적극 활용한다.
이러한 앙상블 구조는 CLIP이 제공하는 정량적 유사도 분석을 통해 중복을 제거하고, MLLM의 의미 기반 평가 능력을 통해 고차원적인 미적 기준을 반영할 수 있어, 보다 신뢰도 높은 이미지 선택 결과를 도출한다.
◇ 최종 모델 선택
실제 구현 및 배포 단계에서, 서비스 제공 시 유저가 체감하는 응답 속도를 고려하면 CLIP 모델은 GPU 자원을 기반으로 운영되어야 했다. 그러나 클라우드 GPU 서버의 비용이 매우 높아, 실제 앱 배포 이후 장기적인 유지가 현실적으로 어려울 것으로 판단되었다. 이에 따라 GPU 서버를 필요로 하지 않는 MLLM 단독 기반의 이미지 평가 방식을 최종적으로 채택하였다. 이는 실용성과 비용 효율성을 종합적으로 고려한 결정이다.
상세설계 내용
가. 기술 스택
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 관련 클래스
- 키워드 관련 다이어그램
- 약관 관련 다이어그램
결과 및 평가
완료 작품의 소개
작동 장면
가. 작동 장면(iOS)
나. 작동 장면(Android)
다. 앱스토어 배포
포스터
내용
관련사업비 내역서
구분 | 항 목 (품명, 규격) | 수량 | 단가 | 금 액 | 비고 | |
---|---|---|---|---|---|---|
계 | 현금 | |||||
직접 개발비 | Openai Api 크레딧 | 1 | 32 | 32 | 32 | GPT-4.1 모델, 토큰 사용량 기준 |
Amazon_AWS 서버 사용비 | 1 | 145 | 145 | 145 | 월 6.8만원 × 2개월 | |
Apple Developer Program 구독비 | 1 | 129 | 129 | 129 | 연간 구독료 | |
CURSOR AI 구독 | 3 | 28 | 84 | 84 | 개발 도구 구독료 | |
claude ai 구독 | 1 | 31 | 31 | 31 | ai 구독료 | |
회의비 | 1 | 120 | 120 | 120 | ||
합 계 | 541 | 541 |
완료작품의 평가
평가 항목 | 평가 방법 | 적용기준 | 개발 목표치 | 비중 (%) | 평과 결과 |
---|---|---|---|---|---|
1. 기능 구현 완전성 | - 요구사항 문서 (사진 업로드, 일기 생성, 캘린더 표시, 앨범, 마이페이지 기능)에 따른 각 기능 테스트 - 시나리오별로 Pass/Fail 여부 확인 |
- 필수 기능(상) 및 중요 기능(중) 기준 100% 구현 - 선택(하) 기능 일부 구현 유무 평가 |
- 필수·중요 기능 100% 구현 - 선택 기능 50% 이상 구현 |
30% | 10/10 |
2. 안정성 | - 앱 사용 시 오류 로그, 예외 발생 모니터링 - 비정상 종료 횟수 측정 |
- 사용자 시나리오 중 오류 발생 0건 | - 정상 시나리오에서 오류 0건 - 예외 상황 최소화 |
20% | 9/10 |
3. 응답 속도 | - 사용자 입력(사진 업로드, 일기 업로드, 일기 조회)에 대한 서버 응답 시간 측정 - 클라이언트-서버 간 지연테스트 |
- 90% 이상의 요청 처리 시간 2초 이내 - 최대 요청 처리 시간 5초 이내 |
- 평균 응답속도 2초 이내 - 응답속도 5초 초과 0건 |
10% | 8/10 |
4. AI 정확도 | - AI 자동 분류 (베스트샷 선정, 일기 초안) 품질 평가 - 테스트용 데이터셋 준비 후 결과 정확도 측정 |
- 샘플 데이터셋을 통한 AI 분류 정확도 80% 이상 - 일기 초안 적합도 80% 이상 |
- AI 사진 분류 정확도 80% 이상 - 자동 생성된 일기 초안 정확도 80% 이상 |
25% | 9/10 |
5. UI/UX | - 사용자 테스트(설문) 및 피드백 수집 - 직관성, 접근성, 사용 편의성 평가 |
- 5점 척도 평가 시 평균 4점 이상 - 10명 이상의 베타테스터 중 70% 이상이 긍정 의견 |
- 평균 5점 이상 - 긍정 응답률 70% 이상 |
10% | 10/10 |
6. 보안 | - 회원가입·로그인, 개인정보 보호 점검 - DB 암호화, 인증/인가 로직 |
- 중요 취약점 (개인정보 보호, SQL 인젝션 등) 0건 | - 주요 취약점 0건 - 비밀번호·세션 토큰 안전성 확보 |
5% | 9/10 |
향후계획
- 어려웠던 내용들
- Git 협업 충돌 문제 - 브랜치 병합 시 코드 충돌 빈발로 개발 일정 지연
- AI 모델 성능 한계 - GPT API 응답 품질 불안정으로 일기 품질 편차 발생
- AWS 인프라 관리 이슈 - 클라우드 비용 관리 및 보안 설정의 복잡성
- 비동기 처리 복잡성 - WebSocket 연결 불안정 및 예외 처리 구현 어려움
- 성능 최적화 부족 - 대용량 이미지 처리 시 응답 속도 저하 문제
- 앱스토어 심사 과정 - 애플 앱 스토어 정책 이해 및 심사 통과의 복잡성
- Git 협업 충돌 문제 - 브랜치 병합 시 코드 충돌 빈발로 개발 일정 지연
- 차후 구현할 내용
- AI 기능 고도화 - 사용자별 글쓰기 패턴 학습으로 개인화 정확도 향상
- 소셜 기능 추가 - 가족/친구와 일기 공유 및 댓글 기능 구현
- 다국어 지원으로 해외 사용자 확대
- 테마 커스터마이징 및 다크모드 지원
- AI 기능 고도화 - 사용자별 글쓰기 패턴 학습으로 개인화 정확도 향상
- 수익 모델
플랜명 | 가격 | 주요 기능 | AI/서버 비용 고려 |
---|---|---|---|
Basic | 무료 | - AI 일기 초안 생성 (월별 3회 제한) - AI 베스트샷 추천 (월별 1회 제한) - 일기 수정 (수동 입력만 가능) - 말투 커스터마이징 (선택만 가능) - 광고 포함 |
|
Premium | (연간 월 3,900) 월 4,900 |
- AI 일기 초안 생성 (1일 1회 제한) - AI 베스트샷 추천 (1일 1회 제한) - 일기 수정 (AI 수정 가능 1일 1회 제한) - 말투 커스터마이징 (직접 가능) - 광고 제거 |
- AI 일기 초안 생성: 0.01달러 - AI 베스트샷 추천: 0.03달러 - AI 일기 수정 : 0.01 달러 - 0.01 + 0.03 + 0.01 = 0.05달러 - 월에 한화로 대략 2100원 |
Pro | (연간 월 8,800) 월 9,900 |
- Premium Plan 모든 기능 포함 - AI 기능 (생성, 추천, 수정) 무제한 - 향후 출시될 AI 기능 베타 참여 기회 |