풀사이클 이미지 관리 솔루션
사용자가 기기 내 이미지를 선택하고 서버로 업로드한 뒤,
갤러리 형태로 불러와 확인 및 삭제할 수 있는 Unity 기반 RESTful 프로젝트입니다.
| 구분 | 내용 |
|---|---|
| 개발기간 | 2024.12 ~ 2025.01 |
| 개발환경 | Unity 2022.3 LTS / Python 3.11 (FastAPI) |
| 서버 실행환경 | Uvicorn / File I/O / UUID 기반 파일관리 |
| 주요 기능 | 이미지 업로드 · 목록 조회 · 이미지 보기 · 삭제 기능 |
| 플랫폼 지원 | Windows / Mac / Android / iOS |
RestGallery는 Unity에서 FastAPI 서버와 직접 RESTful 통신을 수행하여
이미지 파일을 업로드하고, 서버에서 제공하는 JSON 데이터를 기반으로
UI 버튼을 자동 생성해 갤러리 형태로 이미지를 표시하는 프로젝트입니다.
| 기능 | 설명 |
|---|---|
| 1. 이미지 선택 (FilePicker) | PC: StandaloneFileBrowser, 모바일: NativeGallery로 파일 선택 |
| 2. 이미지 업로드 (ImageUploader) | UnityWebRequest.Post로 서버 /api/images 업로드, 성공 시 자동 새로고침 |
| 3. 이미지 목록 조회 (GalleryLoader) | 서버 /api/images 응답(JSON)을 받아 ScrollView 내 버튼 동적 생성 |
| 4. 이미지 표시 및 삭제 | 버튼 클릭 → 이미지 표시, 삭제 버튼 → 서버 및 UI에서 동시 제거 |
| 5. FastAPI 서버 | 이미지 업로드, 다운로드, 삭제 API 제공 (/api/images, /api/files/{filename}) |
[사용자 기기]
↓
이미지 선택 (FilePicker)
↓
UnityWebRequest POST
↓
[FastAPI 서버] - 이미지 저장(storage/)
↓
UnityWebRequest GET
↓
ScrollView UI 목록 생성 및 표시
RestGallery/
├── Unity/
│ ├── FilePicker.cs # 플랫폼별 이미지 파일 선택
│ ├── ImageUploader.cs # 업로드 및 갤러리 새로고침
│ └── GalleryLoader.cs # 목록, 삭제, UI 표시 관리
└── Server/
└── main.py # FastAPI 서버 (업로드/조회/삭제)

1️⃣ 서버 구동 (FastAPI)
2️⃣ 파일 선택 및 업로드
3️⃣ 업로드 후 JSON 저장 확인

4️⃣ 등록된 이미지 목록 로드
5️⃣ 리스트 선택 시 이미지 표시
6️⃣ 이미지 삭제 기능
uvicorn main:app --reloadFilePicker,ImageUploader,GalleryLoader스크립트를 Scene 내에 추가- ScrollView의 Content 영역과 RawImage 연결
- “+” 버튼 클릭 시 이미지 선택 → 업로드 → 목록 표시
- 버튼 클릭 시 이미지 표시 / 삭제 버튼 클릭 시 삭제
| 영역 | 기술 | 설명 |
|---|---|---|
| 클라이언트 | Unity, C#, UnityWebRequest | REST API 통신, UI 동적 생성 |
| 서버 | FastAPI, Python, UUID, File I/O | 이미지 파일 관리 및 JSON 응답 |
| 데이터 포맷 | JSON | 업로드, 조회, 삭제 시 일관된 데이터 포맷 |
| 라이브러리 | Newtonsoft.Json, NativeGallery | JSON 직렬화 및 모바일 갤러리 접근 |
- AWS S3 또는 Firebase Storage로 이미지 저장소 확장
- SQLite 또는 MongoDB를 통한 DB 기반 메타데이터 관리
- 업로드 시 썸네일 생성 기능 추가
- 사용자 계정별 이미지 관리 시스템으로 확장 가능
✅ Unity와 FastAPI 간 RESTful 통신 구조 완전 구현 ✅ 업로드 → 조회 → 삭제까지의 전체 비동기 사이클 완성 ✅ 멀티 플랫폼 대응 및 동적 UI 자동화 성공