WEB

[WebApp] Dart package ์˜ค๋ฅ˜

orange_mj 2025. 3. 1. 05:13

 

๐Ÿ“Œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Vacgom ํ”„๋กœ์ ํŠธ๋Š” Web App ํ”Œ๋žซํผ์ด๊ณ , ์ €๋Š” Web ์„ ๋‹ด๋‹นํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

App ์€ Flutter ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, Web ์—์„œ๋Š” bridge ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์—ฐ๋™์ž‘์—… ์ด์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๋กœ๊ทธ์ธ(์นด์นด์˜ค) - App
์•ฝ๊ด€๋™์˜ - Web
ํšŒ์›๊ฐ€์ž… ํ”Œ๋กœ์šฐ - Web
ํšŒ์›๊ฐ€์ž… ์™„๋ฃŒ ํ›„ ํ™ˆ ์ด๋™ - App


์ด๋ ‡๊ฒŒ ํ”Œ๋กœ์šฐ๊ฐ€ ์ง„ํ–‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ํšŒ์›๊ฐ€์ž… ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ๋Š” App ์—์„œ ํ™”๋ฉด์„ ๋„์›Œ์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

-> ์นด์นด์˜ค ๋กœ๊ทธ์ธ ํ›„ ๋‚˜์˜ค๋Š” registerToken ์ด ํšŒ์›๊ฐ€์ž… ์™„๋ฃŒ api ์—ฐ๋™์‹œ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ.

 

registerToken ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฑ์—์„œ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  const bridge = useVacBridge();
  const registerToken = bridge.getRegisterToken();

  useSignup(
    {
      registerToken: registerToken,
      nickname,
      babies: transformData,
    },
    {
      onSuccess: (data) => {
        localStorage.setItem('accessToken', data.accessToken);
        localStorage.setItem('refreshToken', data.refreshToken);
        router.push(PATH.welcome);
      },
      onError: (error) => {
        setError(error.response.data.error);
      },
    },
  );
};

 

์—ฌ๊ธฐ์„œ ๋ธŒ๋ฆฟ์ง€๋Š” useContext ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

export const VacBridgeContext = createContext<AbstractVacBridge>(new DummyVacBridge());

export const useVacBridge = () => {
  const vacBridge = React.useContext(VacBridgeContext);
  
  return vacBridge;
};

 

๐Ÿ“Œ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ Web ์ด ์ž˜ ์ž‘๋™๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด..

์•ฑ ์ฝ”๋“œ๋ฅผ ํด๋ก  ๋ฐ›์•„์„œ Webstorm ๊ณผ android studio ์—์„œ ์ฝ”๋“œ๋ฅผ ์—ด์—ˆ๋Š”๋ฐ,

๋‹คํŠธ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋‚˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

-> ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค.

๋ถ„๋ช… ๋งฅ dart ๋ฅผ Intall ํ–ˆ๋Š”๋ฐ๋„ ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ, ์ด์œ ๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

 

 

Dart ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ web app ๋นŒ๋“œํƒญ์—์„œ ํ™•์ธํ•ด๋ดค๋”๋‹ˆ,

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— 
์ด์™€ ๊ฐ™์ด ํ•œ๋ฒˆ ์ง„ํ–‰ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

$ brew tap dart-lang/dart
$ brew install dart

-> ์ด๊ฑด Webstorm ์—์„œ ์—๋Ÿฌ ํ™”๋ฉด์ด๋‹ค.

ํ•˜์ง€๋งŒ Android Studio ์—์„œ๋Š” ์ž˜ ์ ์šฉ ๋˜์–ด ์—๋Ÿฌ๊ฐ€ ์žกํžˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค!

 

โŒ  ๊ทผ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ๋˜ ์ƒ๊ธด SDK ๋ฌธ์ œ

ํ”Œ๋Ÿฌํ„ฐ run ํ–ˆ๋”๋‹ˆ ๋˜ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๊ณ ,

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ‚จ ์ƒํƒœ๋กœ flutter run ์„ ํ•˜๋ฉด, ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 

์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋„๋ฉด ๋ฐ”๋กœ ์•ฑ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

=> ์ฐพ์•„๋ณด๋‹ˆ, ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉด Android ๋ฒ„์ „๋ณ„ SDK ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์ฃผ๋ฉด๋œ๋‹ค๊ณ  ํ•ด์„œ, ๋ฐ”๋กœ ์‹คํ–‰ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ฒ„์ „๋ณ„๋กœ SDK ๋ฅผ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ์•ˆ ๋˜์–ด์„œ ๋” ์„ค์น˜ ํ–ˆ์Šต๋‹ˆ๋‹ค ..

 

๊ทธ๋ž˜๋„ ํ•ด๊ฒฐ์ด ์•ˆ ๋˜์–ด์„œ, 

https://github.com/juliansteenbakker/flutter_secure_storage/issues/674

 

Can run app with flutter_secure_storage ยท Issue #674 ยท juliansteenbakker/flutter_secure_storage

Hello. I try make an flutter app, but I have an error after installing package flutter_secure_storage. Without this package my app build successfully, but after adding this package I have an error:...

github.com

๋‹ค์Œ ๊นƒํ—™ PR ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๊ณ ,

๋‹ค์Œ ๋ถ€๋ถ„์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. 

1. โœ… flutter_secure_storage ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ

flutter pub upgrade flutter_secure_storage

2. โœ… pubspec.yaml์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ํ™•์ธํ•œ ํ›„ ์ง์ ‘ ์ˆ˜์ •

dependencies:
  flutter_secure_storage: ^9.0.0

 

์ง€๊ธˆ pubspec.yaml ์˜  ํ˜„์žฌ ํ”Œ๋Ÿฌํ„ฐ ์‹œํ์–ด ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™•์ธ ํ•ด๋ณด๋‹ˆ, 4.2.1 ๋ฒ„์ „์ธ ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ณ ,
์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜๊ธด ํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋˜ ์ƒ๊ฒจ์„œ ๋” ๋“ค์—ฌ๋‹ค๋ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๋Œ“๊ธ€์ˆ˜0