| Category | Technology | Description |
|---|---|---|
| Framework | Flutter 3.x | Cross-platform UI Toolkit |
| Language | Dart 3.x | Main Programming Language |
| State Management | Riverpod | ์ํ ๊ด๋ฆฌ (MVVM ํจํด ์ ์ฉ) |
| Network | Dio + Retrofit | REST API ํต์ ๋ฐ ๋ฐ์ดํฐ ๋งคํ |
| Local Storage | FlutterSecureStorage | ์ก์ธ์ค ํ ํฐ ๋ฐ ๋ฏผ๊ฐ ๋ฐ์ดํฐ ์ ์ฅ |
์ด ํ๋ก์ ํธ๋ฅผ Android ํ๊ฒฝ์์ ์คํํ๊ธฐ ์ํ ์์ธ ๊ฐ์ด๋์ ๋๋ค. Flutter ํ๊ฒฝ ์ค์ ์ด ์ฒ์์ด๋ผ๋ฉด 1. ์ฌ์ ์ค๋น ์ฌํญ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์งํํด ์ฃผ์ธ์.
์ฑ์ ์คํํ๊ธฐ ์ํด ๋ค์ ๋๊ตฌ๋ค์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
- Flutter SDK ์ค์น: ๊ณต์ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์น ๋ฐ ํ๊ฒฝ ๋ณ์(PATH)๋ฅผ ์ค์ ํฉ๋๋ค.
- Android Studio ์ค์น: ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ ๊ตฌ๋์ ์ํด ํ์ํฉ๋๋ค.
- ์ค์น ์
Android SDK,Android SDK Platform-Tools,Android Virtual Deviceํญ๋ชฉ์ ์ฒดํฌํด์ฃผ์ธ์.
- ์ค์น ์
- Flutter Plugin ์ค์น: Android Studio > Settings > Plugins ์์
Flutter์Dartํ๋ฌ๊ทธ์ธ์ ์ค์นํ๊ณ IDE๋ฅผ ์ฌ์์ํฉ๋๋ค.
์ค์น๊ฐ ์๋ฃ๋๋ฉด ํฐ๋ฏธ๋(CMD/PowerShell)์์ ๋ค์ ๋ช ๋ น์ด๋ก ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
flutter doctor
# ๋ชจ๋ ํญ๋ชฉ์ ์ฒดํฌ(v)๊ฐ ๋์ด ์์ด์ผ ์ ์์
๋๋ค.
# [!] ํ์๊ฐ ์๋ค๋ฉด ํด๋น ์๋ฌ ๋ฉ์์ง์ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ ํด๊ฒฐํด์ฃผ์ธ์.git clone [https://github.com/2026-TU-Capstone-Project/Frontend.git](https://github.com/2026-TU-Capstone-Project/Frontend.git)
cd Frontendํ๋ก์ ํธ์ ํ์ํ ํจํค์ง๋ค์ ๋ค์ด๋ก๋ํฉ๋๋ค.
flutter pub get์ด ํ๋ก์ ํธ๋ Retrofit๊ณผ JsonSerializable์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ธ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ๊ณ .g.dart ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ๋ฐ๋์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
flutter pub run build_runner build --delete-conflicting-outputsOption A. ์๋ฎฌ๋ ์ดํฐ(Emulator) ์คํ
Android Studio > Device Manager ์คํ.
Create Device > ์ํ๋ ๊ธฐ๊ธฐ(์: Pixel 7) ์ ํ > ์์คํ
์ด๋ฏธ์ง ๋ค์ด๋ก๋(API 33 ์ด์ ๊ถ์ฅ) > ์์ฑ.
์ฌ์ ๋ฒํผ(โถ)์ ๋๋ฌ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ผญ๋๋ค.
Option B. ์ค๋ฌผ ๊ธฐ๊ธฐ(Physical Device) ์ฐ๊ฒฐ
์๋๋ก์ด๋ ํฐ ์ค์ > ํด๋์ ํ ์ ๋ณด > ๋น๋ ๋ฒํธ 7๋ฒ ํฐ์น (๊ฐ๋ฐ์ ๋ชจ๋ ํ์ฑํ).
์ค์ > ๊ฐ๋ฐ์ ์ต์
> USB ๋๋ฒ๊น
์ผ๊ธฐ.
PC์ USB ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
Command (ํฐ๋ฏธ๋์์ ์คํ) ๊ธฐ๊ธฐ๊ฐ ์ฐ๊ฒฐ๋ ์ํ์์ ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ธ์.
# Debug Mode
flutter run
# Release Mode
flutter run --releaseํ๋ก์ ํธ์ ํ์ฌ ํด๋ ๊ตฌ์กฐ์ ๋๋ค. (Last Update: 04/05)
lib/
โโโ ๐ chat/ # [๊ธฐ๋ฅ] AI ์ฑํ
ยท๊ฒ์
โ โโโ ๐ model/
โ โ โโโ chat_model.dart # ์ฑํ
๋ฉ์์ง ๋ชจ๋ธ (Weather & History ์ฐ๋)
โ โ โโโ chat_model.g.dart # [Generated]
โ โโโ ๐ provider/
โ โ โโโ chat_provider.dart # ์ฑํ
์ํ ๊ด๋ฆฌ (๋ ์จ ์กฐํ ๋ฐ Context ์ ์ง)
โ โโโ ๐ repository/
โ โ โโโ chat_repository.dart # ์ฑํ
API
โ โ โโโ chat_repository.g.dart # [Generated]
โ โโโ ๐ view/
โ โโโ ai_chat_screen.dart # AI ์ฑํ
ํ๋ฉด
โ โโโ ai_search_screen.dart # AI ๊ฒ์ ํ๋ฉด
โ
โโโ ๐ common/ # [๊ณตํต] ์ฑ ์ ๋ฐ ์ฌ์ฌ์ฉ ์ฝ๋
โ โโโ ๐ camera/
โ โ โโโ photo_guide_screen.dart # ์ดฌ์ ๊ฐ์ด๋ (์ ์ ยท์๋ฐ์ )
โ โโโ ๐ component/
โ โ โโโ style_analysis_widget.dart # ์คํ์ผ ๋ถ์ ์์ ฏ
โ โโโ ๐ const/
โ โ โโโ ๐ Component/
โ โ โ โโโ custom_text_form_field.dart
โ โ โโโ colors.dart # ์ฑ ๋ฉ์ธ ์์ ์ ์
โ โ โโโ data.dart # ์์ ๋ฐ์ดํฐ (API URL ๋ฑ)
โ โโโ ๐ layout/
โ โ โโโ default_layout.dart # ๊ธฐ๋ณธ ๋ ์ด์์
โ โโโ ๐ model/
โ โ โโโ api_response.dart # API ๊ณตํต ์๋ต ๋ชจ๋ธ
โ โ โโโ api_response.g.dart # [Generated]
โ โโโ ๐ network/
โ โ โโโ auth_dio.dart # Bearer ํ ํฐ + 401 ๊ฐฑ์ Dio
โ โโโ ๐ provider/
โ โ โโโ dio_provider.dart # Dio ์ธ์คํด์ค ํ๋ก๋ฐ์ด๋
โ โโโ ๐ view/
โ โ โโโ root_tab.dart # ํ๋จ ํญ๋ฐ
โ โโโ ๐ widget/
โ โ โโโ app_dialog.dart # ๊ณตํต ๋ค์ด์ผ๋ก๊ทธ ์ ํธ
โ โโโ app_router.dart # ์ ์ญ Navigator ํค
โ
โโโ ๐ feed/ # [๊ธฐ๋ฅ] ํจ์
ํผ๋
โ โโโ ๐ component/
โ โ โโโ feed_detail_sheet.dart # ํผ๋ ์์ธ ๋ฐํ
์ํธ
โ โโโ ๐ model/
โ โ โโโ feed_model.dart # ํผ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ
โ โ โโโ feed_model.g.dart # [Generated]
โ โโโ ๐ provider/
โ โ โโโ feed_provider.dart # ํผ๋ ์ํ ๊ด๋ฆฌ
โ โโโ ๐ repository/
โ โ โโโ feed_repository.dart # ํผ๋ API
โ โ โโโ feed_repository.g.dart # [Generated]
โ โโโ ๐ view/
โ โโโ fashion_feed_screen.dart # ํผ๋ ๋ฉ์ธ ๋ฆฌ์คํธ
โ โโโ feed_detail_screen.dart # ํผ๋ ์์ธ
โ โโโ feed_write_screen.dart # ํผ๋ ์์ฑ
โ โโโ my_feed_list_screen.dart # ๋ด ํผ๋ ๋ชฉ๋ก
โ
โโโ ๐ fitting/ # [๊ธฐ๋ฅ] ๊ฐ์ ํผํ
๋ฃธ
โ โโโ ๐ clothes/ # ์ท ๋ฐ์ดํฐยท์ถ์ฒ
โ โ โโโ ๐ model/
โ โ โ โโโ clothes_model.dart
โ โ โ โโโ recommend_model.dart
โ โ โ โโโ weather_recommend_model.dart
โ โ โโโ ๐ provider/
โ โ โ โโโ clothes_provider.dart
โ โ โ โโโ recommend_provider.dart
โ โ โโโ ๐ repository/
โ โ โโโ clothes_repository.dart
โ โ โโโ recommend_repository.dart
โ โโโ ๐ clothes_set/ # ์ฝ๋ ํด๋ (์ฐฉ์ฅ ์ ์ฅ)
โ โโโ ๐ component/
โ โ โโโ fit_type_selector.dart # ํ๊ฐ ์นด๋ ์
๋ ํฐ
โ โ โโโ fitting_main_stage.dart # ์ ์ ยท์ํ์ ์ ํ ๋ทฐ
โ โ โโโ fitting_room_header.dart # ํผํ
๋ฃธ ์๋จ ํค๋
โ โโโ ๐ model/
โ โ โโโ fit_type.dart # ํ๊ฐ enum (SLIM, REGULAR, OVERSIZED)
โ โ โโโ fitting_model.dart # ํผํ
๊ฒฐ๊ณผ ๋ชจ๋ธ
โ โโโ ๐ provider/
โ โ โโโ fitting_provider.dart # ํผํ
์ํ ๊ด๋ฆฌ
โ โโโ ๐ repository/
โ โ โโโ fitting_repository.dart # ํผํ
API (SSE, fit_type ํฌํจ)
โ โ โโโ weather_recommendation_repository.dart
โ โโโ ๐ util/
โ โ โโโ clothes_category_util.dart
โ โ โโโ weather_util.dart # OpenWeatherMap ๋ ์จ ํ์ฑ
โ โโโ ๐ view/
โ โโโ fitting_room_screen.dart # ํผํ
๋ฃธ ๋ฉ์ธ ํ๋ฉด
โ โโโ weather_recommendation_screen.dart
โ
โโโ ๐ home/ # [๊ธฐ๋ฅ] ํ ํ๋ฉด
โ โโโ ๐ component/
โ โ โโโ weather_card.dart # ๋ ์จ ์นด๋ ์์ ฏ
โ โโโ ๐ view/
โ โโโ home_screen.dart # ํ ๋ฉ์ธ ํ๋ฉด
โ โโโ weather_style_screen.dart # ๋ ์จ๋ณ ์คํ์ผ ํ๋ฉด
โ
โโโ ๐ personal_closet/ # [๊ธฐ๋ฅ] ๋๋ง์ ์ท์ฅ
โ โโโ ๐ view/
โ โโโ clothes_set_list_screen.dart
โ โโโ wardrobe_screen.dart # ์ท์ฅ ๋ฉ์ธ
โ
โโโ ๐ user/ # [๊ธฐ๋ฅ] ํ์ยท์ธ์ฆยทํ๋กํ
โ โโโ ๐ model/
โ โ โโโ auth_model.dart
โ โโโ ๐ view/
โ โโโ login_screen.dart
โ โโโ user_profile_screen.dart
โ
โโโ main.dart # ์ฑ ์ง์
์ (MaterialApp)- Virtual Fitting API Synchronization:
- ๊ฐ์ ํผํ ๋ฉ์ธ ๋ชจ๋ธ ์ด๋ฏธ์ง ๋ก๋ฉ ๋ก์ง์ ๋ก์ปฌ ์บ์์์ ์๋ฒ ํ๋กํ ๊ธฐ๋ฐ ์ฐ์ ํธ์ถ(Single Source of Truth) ๋ฐฉ์์ผ๋ก ์๋ฒฝํ ํตํฉํ์ต๋๋ค.
- ์ ๊ท API ๋ช
์ธ์ ๋ง์ถฐ ๊ฐ์ ํผํ
์์ฒญ ์
fit_type(SLIM_FIT, REGULAR_FIT, OVERSIZED_FIT) ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ํฉ๋๋ค.
- Weather-based Style Recommendation:
OpenWeatherMapGPS ๊ธฐ๋ฐ ๋ ์จ ํธ์ถ ๋ก์ง์ ๊ฐ์ ํ์ฌ, ๋ฐฑ์๋๊ฐ ์๊ตฌํ๋ ๊ฐ์๋(rain), ์ ์ค๋(snow), ํ์(windSpeed), ์ต๋(humidity) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ํ์ฑํ๊ณ API(/api/v1/virtual-fitting/recommendation/weather-style)๋ฅผ GET์์ POST ๋ฐฉ์์ผ๋ก ๊ท๊ฒฉํํ์ต๋๋ค.
- AI Stylist Chatbot (Gemini):
- AI ์ฑ๋ด ํต์ ์ ํ๋ก ํธ์๋์์ ํ์ฌ ๋ ์จ ๋ฐ์ดํฐ๋ฅผ ๋ํํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ์กํ๋๋ก ๊ฐ์ ํ์ต๋๋ค.
- ์ฑ๋ด ๋ํ ๊ฐ์ ๋ฌธ๋งฅ ์ ์ง๋ฅผ ์ํด ์ด์ ๋ํ ๋ด์ญ(
history)์assistant์userRole๋ก ์นํํ์ฌ ๋ฐ์กํ๋ ๋ฑ ๊ธฐ๋ฅ์ ์์ฑ๋๋ฅผ ๊ทน๋ํํ์ต๋๋ค.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |






