Skip to content

Latest commit

ย 

History

History
90 lines (66 loc) ยท 4.67 KB

README.md

File metadata and controls

90 lines (66 loc) ยท 4.67 KB

Frontend

Flutter ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค.

  • ๋Œ€์ƒ ํ”Œ๋žซํผ: Android, iOS (๋ฐ์Šคํฌํ†ฑ/์›น ํ”Œ๋žซํผ ํด๋”๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค)
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: Flutter 3.47.6 (stable), Dart 3.13.5
  • CI: frontend-ci.yml (flutter analyze, flutter test)

์‹คํ–‰ ๋ฐฉ๋ฒ•

cd frontend
flutter pub get
flutter run            # ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ/์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰
  • Android: Android Studio์˜ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” USB ๋””๋ฒ„๊น…์ด ์ผœ์ง„ ๊ธฐ๊ธฐ
  • iOS: macOS + Xcode ํ•„์š” (์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” ์‹ค๊ธฐ๊ธฐ)

๋ฐฑ์—”๋“œ ์ ‘์† ์ฃผ์†Œ

API ์ฃผ์†Œ๋Š” lib/core/config/api_config.dart์˜ ApiConfig.baseUrl๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•  ๋•Œ --dart-define=API_BASE_URL=...๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ณ , ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ๋‚ด PC์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ฐฑ์—”๋“œ(8080 ํฌํŠธ) ๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ํ™˜๊ฒฝ ๋ช…๋ น
Android ์—๋ฎฌ๋ ˆ์ดํ„ฐ flutter run (๊ธฐ๋ณธ๊ฐ’ http://10.0.2.2:8080)
iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ flutter run (๊ธฐ๋ณธ๊ฐ’ http://localhost:8080)
Android ์‹ค๊ธฐ๊ธฐ (USB) adb reverse tcp:8080 tcp:8080 ํ›„ flutter run --dart-define=API_BASE_URL=http://localhost:8080
์‹ค๊ธฐ๊ธฐ (์™€์ดํŒŒ์ด) flutter run --dart-define=API_BASE_URL=http://<๋ฐฑ์—”๋“œ PC์˜ IP>:8080
  • ์™€์ดํŒŒ์ด๋กœ ์ ‘์†ํ•  ๋•Œ๋Š” ํฐ๊ณผ PC๊ฐ€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ์–ด์•ผ ํ•˜๊ณ , PC ๋ฐฉํ™”๋ฒฝ์—์„œ 8080 ํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • adb reverse๋Š” USB๋ฅผ ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๋ฉด ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์šฉ http:// ์ ‘์† ํ—ˆ์šฉ ๋ฒ”์œ„
    • Android: debug ๋นŒ๋“œ์—์„œ๋งŒ ํ—ˆ์šฉ (android/app/src/debug/AndroidManifest.xml)
    • iOS: ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ(localhost, ๋‚ด๋ถ€ IP, .local)๋งŒ ํ—ˆ์šฉ (Info.plist์˜ NSAllowsLocalNetworking)
    • ๋ฐฐํฌ ์„œ๋ฒ„๋Š” https://๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ํ™”๋ฉด๋ถ€ํ„ฐ ์‹คํ–‰ (๊ฐœ๋ฐœ์šฉ)

ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ๋งค๋ฒˆ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ํ™”๋ฉด์—์„œ ๋ฐ”๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. debug ๋นŒ๋“œ์—์„œ๋งŒ ๋™์ž‘ํ•˜๊ณ , release ๋นŒ๋“œ๋Š” ํ•ญ์ƒ ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

flutter run --dart-define=INITIAL_ROUTE=/onboarding/codef-consent
  • ๊ฒฝ๋กœ ๋Œ€์‹  ํ™”๋ฉด ์ด๋ฆ„(codefConsent)์„ ๋„ฃ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค.
  • ์—†๋Š” ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์œผ๋ฉด ๋กœ๊ทธ์— ๊ฒฝ๊ณ ๋ฅผ ๋‚จ๊ธฐ๊ณ  ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • Android Studio: ์‹คํ–‰ ์„ค์ •(Run โ†’ Edit Configurations)์˜ Additional run args์— --dart-define=INITIAL_ROUTE=...๋ฅผ ๋„ฃ๊ณ , ํ™”๋ฉด๋ณ„๋กœ ์„ค์ •์„ ๋ณต์‚ฌํ•ด ๋‘๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.
ํ™”๋ฉด ID ํ™”๋ฉด ๊ฒฝ๋กœ ํ™”๋ฉด ์ด๋ฆ„
AUTH-01 ํšŒ์›๊ฐ€์ž… /signup signup
ONB-01 ์„œ๋น„์Šค ์•ˆ๋‚ด /onboarding/intro serviceIntro
ONB-02 CODEF ์—ฐ๊ฒฐ ์•ˆ๋‚ด /onboarding/codef-consent codefConsent
ONB-02A ์—ฐ๊ฒฐํ•  ์นด๋“œ์‚ฌ ์„ ํƒ /onboarding/card-companies cardCompanySelect
ONB-03A ์นด๋“œ ์—ฐ๊ฒฐ ์ง„ํ–‰ /onboarding/connecting connecting
ONB-03B ์นด๋“œ ์—ฐ๊ฒฐ ์™„๋ฃŒ /onboarding/connect-complete connectComplete
ONB-03C ์ผ๋ถ€ ์—ฐ๊ฒฐ ์‹คํŒจ /onboarding/connect-partial-failure connectPartialFailure
ONB-04 ๋ถ„์„ ๋Œ€์ƒ ์นด๋“œ ํ™•์ธ /onboarding/cards cardSelect
ONB-05 ๊ฑฐ๋ž˜๋‚ด์—ญ ์—ฐ๊ฒฐยทํ™•์ธ /onboarding/transactions transactions
ONB-06 ์†Œ๋น„ํŒจํ„ดยท์›”๊ฐ„ ์˜ˆ์‚ฐ /onboarding/budget budget
ONB-07A ์ตœ์ดˆ ํ”Œ๋žœ ์ƒ์„ฑ ์ค‘ /onboarding/plan-generating planGenerating
ONB-07B ์ตœ์ดˆ ํ”Œ๋žœ ์ƒ์„ฑ ์™„๋ฃŒ /onboarding/plan-ready planReady
  • ONB-02B ์นด๋“œ์‚ฌ ๊ณ„์ • ์ธ์ฆ์€ ํ™”๋ฉด์ด ์•„๋‹ˆ๋ผ ONB-02A์—์„œ ๋„์šฐ๋Š” ํŒ์—…์ด๋ผ ๊ฒฝ๋กœ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์นด๋“œ์‚ฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์นด๋“œ ์—ฐ๊ฒฐ ์‹คํŒจ ํ‰๋‚ด ๋‚ด๊ธฐ (๊ฐœ๋ฐœ์šฉ)

์นด๋“œ ์—ฐ๊ฒฐ API๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ฐ€์งœ ์—ฐ๊ฒฐ์„ ์”๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์€ ๋ชจ๋“  ์นด๋“œ์‚ฌ๊ฐ€ ์„ฑ๊ณตํ•˜๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๋ฉด ์ง€์ •ํ•œ ์นด๋“œ์‚ฌ๋ฅผ ์‹คํŒจ์‹œ์ผœ ์ผ๋ถ€ ์‹คํŒจ ํ™”๋ฉด(ONB-03C)์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

flutter run --dart-define=INITIAL_ROUTE=cardCompanySelect --dart-define=FAKE_FAIL_COMPANIES=WOORI
  • ์นด๋“œ์‚ฌ ์ฝ”๋“œ: KB, HYUNDAI, NH, CITI, WOORI, BC, SHINHAN (์‰ผํ‘œ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ ์ง€์ •)
  • ์•ž ํ™”๋ฉด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ํ™”๋ฉด(์—ฐ๊ฒฐ ๊ฒฐ๊ณผ, ์นด๋“œ ํ™•์ธ, ๊ฑฐ๋ž˜๋‚ด์—ญ, ์˜ˆ์‚ฐ, ํ”Œ๋žœ ์™„๋ฃŒ ๋“ฑ)์„ ์‹œ์ž‘ ํ™”๋ฉด์œผ๋กœ ๋ฐ”๋กœ ์—ด๋ฉด debug ๋นŒ๋“œ์—์„œ๋Š” ์˜ˆ์‹œ ๋ฐ์ดํ„ฐ(KBยท์šฐ๋ฆฌยท์‹ ํ•œ ์นด๋“œ, ์˜ˆ์‚ฐ 820,000์›)๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ฒ€์‚ฌ

CI์™€ ๊ฐ™์€ ๊ฒ€์‚ฌ๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

flutter analyze
flutter test

์ฐธ๊ณ 

  • ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ด ํ•„์š”ํ•ด์ง€๋ฉด flutter create --platforms=<ํ”Œ๋žซํผ> .์œผ๋กœ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.