๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 444

๋ฒ„์ „ ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

์˜ค๋ฅ˜ ๋‚ด์šฉ๋ฒ„์ „ ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ๋ฌธ์ œ์ƒํ™ฉ์•ˆ๋“œ๋กœ์ด๋“œ react native ์•ฑ bundle ํŒŒ์ผ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ• ๋•Œ , ๋ฒ„์ „ ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•build.gradle, app.json ํŒŒ์ผ์˜ versionCode ๋ฅผ ์˜ฌ๋ ค์ฃผ์–ด์•ผ ํ•œ๋‹ค.

Android App Bundle์ด ์ž˜๋ชป๋œ ํ‚ค๋กœ ์„œ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ์„œ๋ช… ํ‚ค๋กœ App Bundle์— ์„œ๋ช…ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”. ํ•ด๊ฒฐ

Android App Bundle์ด ์ž˜๋ชป๋œ ํ‚ค๋กœ ์„œ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ์„œ๋ช… ํ‚ค๋กœ App Bundle์— ์„œ๋ช…ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์— ์ƒˆ๋กœ์šด ์•ฑ ๋ฒ„์ „ ์—…๋กœ๋“œํ–ˆ๋”๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค.  Android App Bundle์ด ์ž˜๋ชป๋œ ํ‚ค๋กœ ์„œ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ์„œ๋ช… ํ‚ค๋กœ App Bundle์— ์„œ๋ช…ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.SHA1: A9:C2:6C:F4:8B:74:B3:AA:86:27:28:76:4A:17:9E:41:F3:3F:38:2B์ง€๋ฌธ์ด ํฌํ•จ๋œ ์ธ์ฆ์„œ๋กœ App Bundle์— ์„œ๋ช…ํ•ด์•ผ ํ•˜์ง€๋งŒ, ์—…๋กœ๋“œํ•œ App Bundle ์„œ๋ช…์— ์‚ฌ์šฉ๋œ ์ธ์ฆ์„œ์˜ ์ง€๋ฌธ์€SHA1: 5E:8F:16:06:2E:A3:CD:2C:4A:0D:54:78:76:BA:A6:F3:8C:AB:F6:25์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• -..

๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ์„œ๋ช…ํ•œ APK ๋˜๋Š” Android App Bundle์„ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ๋ชจ๋“œ๋กœ APK ๋˜๋Š” Android App Bundle์— ์„œ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ์˜ค๋ฅ˜

์„œ๋ช… ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ๋ฆด๋ฆฌ์ฆˆ ๋ชจ๋“œ๋กœ ๋นŒ๋“œ ํƒ€์ž… ๋ณ€๊ฒฝํ•˜๊ธฐํ”„๋กœ์ ํŠธ ํด๋”์—์„œ android > app > build.gradle ํŒŒ์ผ์„ ์—ฐ๋‹ค.๋นŒ๋“œ ๊ทธ๋ ˆ์ด๋“ค ํŒŒ์ผ์—์„œ ๋นŒ๋“œ ํƒ€์ž… ๋ถ€๋ถ„์˜ signingConfigs๋ฅผ ๋””๋ฒ„๊ทธ์—์„œ ๋ฆด๋ฆฌ์ฆˆ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.release // signingConfigs.debug์—์„œ ๋ณ€๊ฒฝ } }

1์ธ๊ฐœ๋ฐœ ๋งˆ์ผ€ํŒ… ํŒ ์œ ํŠœ๋ธŒ ์ฝ˜ํ…์ธ  ๋งˆ์ผ€ํŒ… ํ•˜๋Š”๋ฒ•

๊ตฌ๊ธ€์— ์ด์–ด ์œ ํŠœ๋ธŒ ๋งˆ์ผ€ํŒ…์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๊ฒ ๋‹ค.  ์œ ํŠœ๋ธŒ ๋งˆ์ผ€ํŒ… ์žฅ์ ์œ ํŠœ๋ธŒ์˜ ํŠน์ง•์€ ์˜ค๋ž˜์ „ ๊ฒŒ์‹œํ•œ ์˜์ƒ๋„ ์ฃฝ์ง€ ์•Š๊ณ  ๊ณ„์† ์กฐํšŒ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.๋˜ํ•œ, ์œ ํŠœ๋ธŒ๋Š” ๊ตฌ๊ธ€ ๋‹ค์Œ์œผ๋กœ ์„ธ๊ณ„์—์„œ ๋‘ ๋ฒˆ์งธ๋กœ ํฐ ๊ฒ€์ƒ‰ ์—”์ง„์ด๊ณ  ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์ด๋‹ค.์œ ํŠœ๋ธŒ์—์„œ ํƒ€๊ฒŸํŒ…ํ•œ ์ง‘๋‹จ๋„ ๊ตฌ๊ธ€ํŠธ๋ž˜ํ”ฝ ๋งˆ์ผ€ํŒ…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์‚ฌ๋žŒ, ๋ธŒ๋žœ๋“œ ์ธํ”Œ๋ฃจ์–ธ์„œ๊ฐ€ ์žˆ๋‹ค.๋‘ ๋ฒˆ์งธ๋Š” ํ‚ค์›Œ๋“œ, ๋ฌธ๊ตฌ์ด๋‹ค. ์œ ํŠœ๋ธŒ ์„ธํŒ…ํ•˜๋Š”๋ฒ•์œ ํŠœ๋ธŒ์˜ ์ฑ„๋„ ์ด๋ฆ„, ์ฑ„๋„ ์†Œ๊ฐœ, ํ—ค๋” ์ด๋ฏธ์ง€, ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋Š” ๊ฐ๊ฐ ์ž๊ธฐ์†Œ๊ฐœ์™€ ๋ฐ˜๊ฐ‘๊ฒŒ ๋งž์ดํ•˜๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋‚˜์˜ ๋ฐฐ๊ฒฝ, ๋‚˜์˜ ๊ฐ€์น˜, ์ด ์ฑ„๋„์ด ์™œ ์ค‘์š”ํ•œ์ง€, ์—…๋กœ๋“œ ์ผ์ • ๋“ฑ์„ ๊ณต์œ ํ•œ๋‹ค. ์œ ํŠœ๋ธŒ ์˜์ƒ ์ œ์ž‘ ์˜์ƒ์˜ ์œ ํ˜•์€ ๋‘ ๊ฐ€์ง€๋‹ค.1. ๊ฒ€์ƒ‰์šฉ์˜์ƒ 15์ดˆ์— ํ›„ํฌ ๋„์ž…๋ถ€, ๊ทธ ๋‹ค์Œ ๋ธŒ๋žœ๋“œ๋ฅผ ์†Œ๊ฐœํ•˜..

1์ธ๊ฐœ๋ฐœ ๋งˆ์ผ€ํŒ… ํŒ ๊ตฌ๊ธ€ ํŠธ๋ž˜ํ”ฝ ์œ ์ž… ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ

*1์ธ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋งˆ์ผ€ํŒ…์— ์–ด๋ ค์›€์„ ๋Š๋ผ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฐ€์ด๋“œ / ๋ฆฌ์„œ์น˜ ๊ณต์œ  ์šฐ์„  ๊ฐ ํ”Œ๋žซํผ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ด๋Œ์–ด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ํ”Œ๋žซํผ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค.1. ๊ตฌ๊ธ€๊ตฌ๊ธ€์˜ ๊ฒฝ์šฐ ๊ณ ํ’ˆ์งˆ์˜ ์‚ฌ์ดํŠธ์— ๋‚ด ์„œ๋น„์Šค๊ฐ€ ํƒœ๊ทธ๋˜์–ด ๋ฐฑ๋งํฌ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๊ทธ ์›น์‚ฌ์ดํŠธ์˜ ๊ฐ€์น˜๊ฐ€ ๋†’๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•ด์„œ ์ƒ์œ„๊ถŒ์— ์˜ฌ๋ ค์ค€๋‹ค.๋˜ํ•œ ๋ชจ๋ฐ”์ผ ์ตœ์ ํ™”๋„ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ ๋ณธ๋‹ค.๊ตฌ๊ธ€์—์„œ ํƒ€๊ฒŸ ๊ณ ๊ฐ ์ฐพ๋Š”๋ฒ•ํƒ€๊ฒŸํŒ…ํ•  ๋Œ€์ƒ์€ ๋‘ ๊ฐ€์ง€ ์ง‘๋‹จ์œผ๋กœ ๋‚˜๋‰œ๋‹ค.์ฒซ ๋ฒˆ์งธ๋Š” ์ธํ”Œ๋ฃจ์–ธ์„œ๋‚˜ ๋ธŒ๋žœ๋“œ, ๊ด€์‹ฌ์‚ฌ ๊ธฐ๋ฐ˜์˜ ์ง‘๋‹จ์ด๋‹ค.๋‘ ๋ฒˆ์งธ๋Š” ๊ทธ ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ์ง‘๋‹จ์ด๋‹ค. - SEO์ฒซ ๋ฒˆ์งธ ์ง‘๋‹จ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ์žฅ์—์„œ ํ™œ๋™ํ•˜๋Š” ์ •์ƒ๊ธ‰ ๋ธ”๋กœ๊ฑฐ๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ํ‚ค์›Œ๋“œ์—๋‹ค๊ฐ€ ๋ธ”๋กœ๊ฑฐ๋ฅผ ๋ถ™์—ฌ์„œ ๊ฒ€์ƒ‰ํ•œ๋‹ค.๋‘ ๋ฒˆ์งธ๋Š” ์ด์ƒ์ ์ธ ํ‚ค์›Œ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์ด์ƒ..

expo react native ์•ฑ ๊ฐœ๋ฐœ ๋ช…๋ น์–ด ์ด์ •๋ฆฌ

์•ฑ ๋งŒ๋“ค๋ฉด์„œ ํ•„์š”ํ•œ expo ๊ด€๋ จ ๋ช…๋ น์–ด ์ด์ •๋ฆฌ 1. expo GO ์—์„œ ์‹คํ–‰npx expo start -ca - androidw - web localhost:8081์—์„œ ์‹คํ–‰๋จ 2. ์• ๋“œ๋ชน ๊ด‘๊ณ  ๋ถ™์ด๊ณ  ์‹คํ–‰ (์• ๋“œ๋ชน์€ expo go ํ˜ธํ™˜ ์•ˆ๋จ)๊ด‘๊ณ ๋ถ™์ด๊ธฐnpx install react-native-google-mobile-adshttps://getacherryontop.tistory.com/m/422๊ด‘๊ณ  ๋ถ™์ด๊ณ  ๋นŒ๋“œnpx expo prebuild --platform androidnpx expo run:android// if you have iOSnpx expo run:ios Using development build ์ธ์ง€ ํ™•์ธ, EXpo Go๋Š” ์•ˆ๋จ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œnpx expo prebuild --cl..

1์ธ๊ฐœ๋ฐœ - Cursor AI ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ

VScode์—์„œ ์‚ฌ์šฉ, Mac์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ Cursor AI ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŽ์•„์กŒ๊ธธ๋ž˜ ์จ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•˜๋Š” ์‚ฌ์šฉ๋ฒ•  1. ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด ๋ฐ›๋Š”๋‹ค ๋‹ค์šด๋ฐ›๊ณ  ๋‚˜๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด์ค€๋‹ค๊ทธ๋Ÿฌ๋ฉด ์ž๋™์œผ๋กœ cursor๊ฐ€ ์ ์šฉ๋˜์–ด์žˆ๋‹ค.  2. Cursor ์‚ฌ์šฉ๋ฒ•Cursor ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๋‹จ์ถ•ํ‚ค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค์ฝ”๋“œ ํŽธ์ง‘ ์š”์ฒญ: ์ฝ”๋“œ ๋ถ€๋ถ„์„ ์„ ํƒํ•˜๊ณ  Cmd+K๋ฅผ ๋ˆŒ๋Ÿฌ AI์—๊ฒŒ ํŽธ์ง‘์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.์ž๋™์™„์„ฑ ์ˆ˜๋ฝ: ์ž…๋ ฅ ์ค‘ ์ž๋™์™„์„ฑ์ด ์ œ์•ˆ๋  ๋•Œ Tab ํ‚ค๋กœ ์ œ์•ˆ์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.์งˆ๋ฌธํ•˜๊ธฐ: Cmd+L๋กœ ์ฑ„ํŒ…์„ ์—ด์–ด ์งˆ๋ฌธํ•˜๊ฑฐ๋‚˜, @ ๋ช…๋ น์–ด๋กœ ๊ด€๋ จ ํŒŒ์ผ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.ํŠน์ • ์ฝ”๋“œ์— AI ์ง‘์ค‘์‹œํ‚ค๊ธฐ: ์ฝ”๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ  Cmd+Shift+L์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.์ฝ”๋“œ๋ฒ ์ด์Šค ์ „์ฒด ์งˆ๋ฌธ: " Cmd+Enter ..

expo go ์˜ค๋ฅ˜ There was a problem loading the requested app

There was a problem loading the requested app ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์—์„œ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ๊ณต๊ณต์™€์ดํŒŒ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๊ฐ„ํ˜น ๋ฐœ์ƒ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ์ธ 127.0.0.1์„ ์‚ฌ์šฉํ•˜์—ฌ Expo ์•ฑ์ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. 127.0.0.1์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋กœ์ปฌ ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์ธ๋ฐ์š”, ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค์—์„œ ์ด ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋ฉด, ๋””๋ฐ”์ด์Šค๋Š” ์ž์ฒด์ ์œผ๋กœ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋˜์–ด ์‹ค์ œ ๊ฐœ๋ฐœ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:์ปดํ“จํ„ฐ์™€ ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค๊ฐ€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.์ปดํ“จํ„ฐ์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. (Windows์˜ ๊ฒฝ์šฐ cmd์—์„œ ipconfig๋ฅผ, macOS ๋˜๋Š” Linux์—์„œ๋Š” ํ„ฐ๋ฏธ๋„์— ifconf..

expo router ํ”„๋กœ์ ํŠธ ์ปค์Šคํ…€ ํฐํŠธ ์ ์šฉํ•˜๊ธฐ

1. ํฐํŠธ ํŒŒ์ผ .ttf ๋ฅผ ํ”„๋กœ์ ํŠธ assets/fonts/์— ์ €์žฅํ•œ๋‹ค. 2. ๋‹ค์Œ ์„ ์„ค์น˜ํ•œ๋‹ค. npx expo install expo-font 3. app.json์— ๋‹ค์Œ์„ ์ถ”๊ฐ€[  "expo-font",  { useEffect(() => {    const loadFonts = async () => {      await Font.loadAsync({        'pixel': require('@/assets/fonts/pixel.ttf'),      });      setFontsLoaded(true);    };    loadFonts();  }, []);    "fonts": ["./assets/fonts/pixel.ttf"]  }] ์‚ฌ์šฉ ์‹œ   ์ฐธ๊ณ https://docs.expo.dev/..

์•ˆ๋“œ๋กœ์ด๋“œ ๋น„๊ณต๊ฐœ ํ…Œ์Šคํ„ฐ ๋ชจ์œผ๋Š” ๋ฒ• 20๋ช…

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์ถœ์‹œ๋ฅผ ์•ž๋‘๊ณ  ๋น„๊ณต๊ฐœ ํ…Œ์Šคํ„ฐ 20๋ช…์„ ๋ชจ์•„์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ฒผ๋‹ค์‚ฌ์‹ค ์‹ค์ œ ์•ˆ๋“œ๋กœ์ด๋“œ ์œ ์ € 20๋ช…์„ ๋ชจ์œผ๋Š” ๊ฑด ์‰ฝ์ง€ ์•Š๋‹ค, ์ฃผ๋ณ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ ํ…Œ์Šคํ„ฐ ํ”Œ๋žซํผ์„ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค 1. ๊ฐœ์ธ ๋„คํŠธ์›Œํฌ ํ™œ์šฉ์นœ๊ตฌ์™€ ๊ฐ€์กฑ, ๋™๋ฃŒ 2. ์†Œ์…œ ๋ฏธ๋””์–ด ํ™œ์šฉ์นด์นด์˜คํ†ก ๊ทธ๋ฃน / ๋„ค์ด๋ฒ„ ์นดํŽ˜- ํ’ˆ์•—์ด ๋ฐฉ https://open.kakao.com/o/gcrp8BXf ์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด ๋น„๊ณต๊ฐœ ํ…Œ์ŠคํŠธ ํ’ˆ์•—์ด#์•ฑ์ถœ์‹œ #์•ฑ๋ฐฐํฌ #ํ…Œ์ŠคํŠธ #๋น„๊ณต๊ฐœํ…Œ์ŠคํŠธ #ํ’ˆ์•—์ด #๊ฐœ์ธ๊ฐœ๋ฐœ์ž #์ธ๋””๊ฒŒ์ž„ #20๋ช… #์•ˆ๋“œ๋กœ์ด๋“œ #ํ”Œ๋Ÿฌํ„ฐ #๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ #ํ”Œ๋ ˆ์ด์Šคํ† ์–ดopen.kakao.comhttps://cafe.naver.com/devsharing ๊ฐœ๋ฐœ์ž ์ƒ๋ถ€์ƒ์กฐ ํ’ˆ์•—์ด ์นดํŽ˜ : ๋„ค์ด๋ฒ„ ์นดํŽ˜์•ฑ ์ถœ์‹œ๋ฅผ ์œ„ํ•œ ๋น„๊ณต๊ฐœํ…Œ์ŠคํŠธ ํ’ˆ์•—์ด ๋ฐ ๋ฆฌ๋ทฐ ํ’ˆ์•—..

์•ˆ๋“œ๋กœ์ด๋“œ expo localization, ์œผ๋กœ ๋‹ค๊ตญ์–ด ์•ฑ ๋งŒ๋“ค๊ธฐ ์ด์ •๋ฆฌ

์›๋ž˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ํ•œ๊ตญ์–ด์—์„œ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๋„ ์ง€์›ํ•˜๊ฒŒ๋” ๋ณ€๊ฒฝ1. ์„ค์น˜npx expo install expo-localization i18next react-i18next 2. ๋ฒˆ์—ญ ํŒŒ์ผ ๊ตฌ์กฐ ์œ„์น˜ (ํ•œ๊ตญ์–ด, ์˜์–ด)โ”œโ”€โ”€ constants/โ”‚   โ””โ”€โ”€ translations/โ”‚       โ”œโ”€โ”€ ko.ts                 # ํ•œ๊ตญ์–ด ๋ฒˆ์—ญโ”‚       โ””โ”€โ”€ en.ts                 # ์˜์–ด ๋ฒˆ์—ญ [์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ]project/โ”œโ”€โ”€ app/โ”‚   โ”œโ”€โ”€ _layout.tsx               # ๋ฃจํŠธ ๋ ˆ์ด์•„์›ƒโ”‚   โ””โ”€โ”€ index.tsx                 # ๋ฉ”์ธ ํŽ˜์ด์ง€โ”œโ”€โ”€ components/โ”‚   โ””โ”€โ”€ LanguageSelector.tsx..

์•ˆ๋“œ๋กœ์ด๋“œ ๋‹ค๊ตญ์–ด ์•ฑ ๋งŒ๋“ค๊ธฐ Expo Localization i18next

Expo Localization์€ React Native/Expo ์•ฑ์—์„œ ๋‹ค๊ตญ์–ด ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค ์„ค์น˜npx expo install expo-localization expo-localization์˜ ์ฃผ์š” ๊ธฐ๋Šฅ// ์ฃผ์š” import ํ•ญ๋ชฉimport {   getLocales,     // ์‚ฌ์šฉ์ž ๋””๋ฐ”์ด์Šค์˜ ์–ธ์–ด ์„ค์ • ์กฐํšŒ  getCalendars,   // ์บ˜๋ฆฐ๋” ์ •๋ณด ์กฐํšŒ  useLocales,     // ๋กœ์ผ€์ผ ์ •๋ณด๋ฅผ ์œ„ํ•œ React Hook  useCalendars    // ์บ˜๋ฆฐ๋” ์ •๋ณด๋ฅผ ์œ„ํ•œ React Hook} from 'expo-localization'; ๋กœ์ผ€์ผ ์ •๋ณด ์กฐํšŒconst locales = Localization.getLocales();// ๊ฒฐ๊ณผ ์˜ˆ์‹œ:// [..

๋ฐฐ๋‹นํˆฌ์ž ๋” ์ด์ƒ ์–ด๋ ต์ง€ ์•Š๋‹ค...์‹ ๊ฐœ๋… '๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ' ์•ฑ ์ถœ์‹œ

๋ฐฐ๋‹นํˆฌ์ž์— ๊ด€์‹ฌ์€ ์žˆ์ง€๋งŒ ๋ณต์žกํ•œ ๊ณ„์‚ฐ ๋•Œ๋ฌธ์— ๋ง์„ค์˜€๋˜ ํˆฌ์ž์ž๋“ค์„ ์œ„ํ•œ ํš๊ธฐ์ ์ธ ์•ฑ์ด ์ถœ์‹œ๋๋‹ค. '๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ'๋Š” ์ข…๋ชฉ ์„ ํƒ๋งŒ์œผ๋กœ ๋ฐฐ๋‹น๋ฅ ๊ณผ ๋ฐฐ๋‹น์„ฑ์žฅ๋ฅ ์ด ์ž๋™ ์ž…๋ ฅ๋˜๋Š” ์Šค๋งˆํŠธํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.์ด ์•ฑ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค. ํˆฌ์žํ•˜๊ณ ์ž ํ•˜๋Š” ์ข…๋ชฉ์„ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ๊ธฐ์—…์˜ ๋ฐฐ๋‹น ๊ด€๋ จ ์ •๋ณด๊ฐ€ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋˜์–ด, ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๊ณผ์ •์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ํ•œ๊ตญ ์ฃผ์‹์˜ ๋ฐฐ๋‹น์†Œ๋“์„ธ(15.4%)์™€ ๋ฏธ๊ตญ ์ฃผ์‹์˜ ๋ฐฐ๋‹น์†Œ๋“์„ธ(15%)๋ฅผ ์ •ํ™•ํžˆ ๋ฐ˜์˜ํ•ด ์‹ค์งˆ์ ์ธ ์ˆ˜์ต์„ ๊ณ„์‚ฐํ•ด์ค€๋‹ค.ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ์ค‘์‹œํ•˜๋Š” ํ˜„๋Œ€ ํˆฌ์ž์ž๋“ค์„ ์œ„ํ•ด ๋ชจ๋“  ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋Š” ๋ณ„๋„ ์ €์žฅ๋˜์ง€ ์•Š๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๋งŒํ•˜๋‹ค. ์‹ฌํ”Œํ•˜๋ฉด์„œ๋„ ์ •ํ™•ํ•œ ์ด ์•ฑ์œผ๋กœ ์ด์ œ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋ฐฐ๋‹นํˆฌ์ž ์ˆ˜์ต์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.https://www.turtl..

1์ธ๊ฐœ๋ฐœ์ž์šฉ ์›น์•ฑ ์„œ๋น„์Šค ๊ธฐํš์„œ ์–‘์‹

[์•ฑ ์ด๋ฆ„] ๊ธฐํš์„œ์ž‘์„ฑ์ผ: YYYY.MM.DD1. ์„œ๋น„์Šค ๊ฐœ์š”์•ฑ ์„ค๋ช…์•ฑ ํ•œ์ค„ ์†Œ๊ฐœ: [ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์•ฑ ์„ค๋ช…]ํ•ต์‹ฌ ๊ฐ€์น˜: [์ด ์•ฑ์ด ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ/์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜]์ฃผ์š” ํƒ€๊ฒŸ: [์ฃผ ์‚ฌ์šฉ์ž์ธต]๊ฐœ๋ฐœ ์ •๋ณด๊ฐœ๋ฐœ ๊ธฐ๊ฐ„: YYYY.MM ~ YYYY.MM (์˜ˆ์ƒ)์ถœ์‹œ ํ”Œ๋žซํผ: [iOS / Android / ๋‘˜ ๋‹ค]์ˆ˜์ต ๋ชจ๋ธ: [๋ฌด๋ฃŒ/์œ ๋ฃŒ/์ธ์•ฑ๊ฒฐ์ œ/๊ด‘๊ณ  ๋“ฑ]2. ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋ฉ”์ธ ๊ธฐ๋Šฅ[์ฃผ์š” ๊ธฐ๋Šฅ 1]์ƒ์„ธ ์„ค๋ช…๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ฐธ๊ณ  ์‚ฌ๋ก€/์ด๋ฏธ์ง€[์ฃผ์š” ๊ธฐ๋Šฅ 2]์ƒ์„ธ ์„ค๋ช…๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ฐธ๊ณ  ์‚ฌ๋ก€/์ด๋ฏธ์ง€๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ์˜ˆ์ • ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ์šฐ์„ ์ˆœ์œ„ ํ‘œ์‹œ3. ๊ธฐ์ˆ  ์ŠคํƒFrontend๊ฐœ๋ฐœ ์–ธ์–ด:์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ:UI ํ”„๋ ˆ์ž„์›Œํฌ:Backend์„œ๋ฒ„/DB: [Firebase ๋“ฑ BaaS ํ™œ์šฉ ์‹œ ๋ช…์‹œ]API:์™ธ๋ถ€ ์„œ๋น„์Šค:4. ํ™”๋ฉด ์„ค๊ณ„์ฃผ์š” ํ™”๋ฉด ๊ตฌ์„ฑ![..

์•„์ดํฐ ์Œ์„ฑ ๋ฉ”๋ชจ ํ…์ŠคํŠธ ์ž๋™ ๋ณ€ํ™˜ ์™„๋ฒฝ ๊ฐ€์ด๋“œ [2024๋…„ ์ตœ์‹ ]

์•„์ดํฐ ์Œ์„ฑ ๋ฉ”๋ชจ ํ…์ŠคํŠธ ์ž๋™ ๋ณ€ํ™˜ ์™„๋ฒฝ ๊ฐ€์ด๋“œ [2024๋…„ ์ตœ์‹ ]์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜๋Š” iPhone์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด ์Œ์„ฑ ๋ฉ”๋ชจ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋ชฉ์ฐจ๊ธฐ๋Šฅ ๊ฐœ์š”์ง€์› ๊ธฐ๊ธฐ ๋ฐ ์–ธ์–ด์Œ์„ฑ ๋…น์Œ ๋ฐ ์‹ค์‹œ๊ฐ„ ํ…์ŠคํŠธ ๋ณ€ํ™˜๋…น์Œ๋œ ์˜ค๋””์˜ค ๊ด€๋ฆฌํ•˜๊ธฐํ†ตํ™” ๋…น์Œ ํ…์ŠคํŠธ ๋ณ€ํ™˜AI ๊ธฐ๋ฐ˜ ์ „์‚ฌ๋ฌธ ์š”์•ฝ ๊ธฐ๋Šฅ๊ธฐ๋Šฅ ๊ฐœ์š”iPhone์˜ ๋ฉ”๋ชจ ์•ฑ์€ ์Œ์„ฑ์„ ์ž๋™์œผ๋กœ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด:์‹ค์‹œ๊ฐ„ ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜๋…น์Œ๋œ ๋‚ด์šฉ ๊ฒ€์ƒ‰ํ…์ŠคํŠธ ์ถ”์ถœ ๋ฐ ๊ณต์œ AI ๊ธฐ๋ฐ˜ ๋‚ด์šฉ ์š”์•ฝ (ํŠน์ • ๋ชจ๋ธ)์ง€์› ๊ธฐ๊ธฐ ๋ฐ ์–ธ์–ด์ง€์› ๊ธฐ๊ธฐiPhone 12 ์ด์ƒ ๋ชจ๋ธ์ง€์› ์–ธ์–ด์˜์–ด (๋ฏธ๊ตญ)์˜์–ด (์˜๊ตญ)์˜์–ด (์บ๋‚˜๋‹ค)์˜์–ด (ํ˜ธ์ฃผ)์˜์–ด (์•„์ผ๋žœ๋“œ)์˜์–ด (๋‰ด์งˆ๋žœ๋“œ)..

2024๋…„ ์ตœ์‹  ๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ๋กœ ๋ฏธ๋ž˜ ์ˆ˜์ต ํ•œ๋ˆˆ์— ํ™•์ธํ•˜๊ธฐ (SCHD, JEPI, ์ฝ”์นด์ฝœ๋ผ ๋“ฑ)

2024๋…„ ์ตœ์‹  ๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ๋กœ ๋ฏธ๋ž˜ ์ˆ˜์ต ํ•œ๋ˆˆ์— ํ™•์ธํ•˜๊ธฐ (SCHD, JEPI, ์ฝ”์นด์ฝœ๋ผ ๋“ฑ)์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋ฐฐ๋‹นํˆฌ์ž๋ฅผ ๊ณ„ํšํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•œ ํš๊ธฐ์ ์ธ ๋„๊ตฌ๋ฅผ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ํ•ด์™ธ์ฃผ์‹๊ณผ ETF ๋ฐฐ๋‹น๊ธˆ ๊ณ„์‚ฐ์— ์–ด๋ ค์›€์„ ๊ฒช์œผ์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ๋ฐฐ๋‹นํˆฌ์ž๊ณ„์‚ฐ๊ธฐ ์‚ฌ์ดํŠธwww.turtleinvest.site/ko ๋ฐฐ๋‹น ํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ - ์ˆ˜์ต๋ฅ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฐฐ๋‹น ํˆฌ์ž ์ˆ˜์ต์„ ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•ด๋ณด์„ธ์š”. ๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ, SCHD ๋ฐฐ๋‹น ๊ณ„์‚ฐ๊ธฐ, ๋ฐฐ๋‹น ์žฌํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ, ETF ๋ฐฐ๋‹น ์‹œ์žฅ ๋ถ„์„, ๊ธˆ์œต ๋‰ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ข…ํ•ฉ ํˆฌ์ž ์ •๋ณด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋ฐฐ๋‹น์ฃผ ํˆฌ์ž ์ดˆ๋ณด ํŒ๊ณผ ๋ฐฐwww.turtleinvest.site ๐Ÿ“Š ๋ฐฐ๋‹นํˆฌ์ž ๊ณ„์‚ฐ๊ธฐ์˜ ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ ๐ŸŒŸ ์ฃผ์š” ํŠน์ง•1. ์ž๋™ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์‹œ์Šคํ…œ- ..

์œ ํŠœ๋ธŒ/์ธ์Šคํƒ€๊ทธ๋žจ ํฐํŠธ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• ์™„๋ฒฝ ๊ฐ€์ด๋“œ (2024๋…„ ์ตœ์‹ )

์œ ํŠœ๋ธŒ , ์ธ์Šคํƒ€๊ทธ๋žจ ํฐํŠธ ๋ฐ”๊พธ๋Š” ๋ฒ• ์œ ํŠœ๋ธŒ ๋ณด๋‹ค๋ณด๋ฉด ์˜์ƒ์ œ๋ชฉ์— ๊ธ€๊ผด์ด ๋ฐ”๋€Œ์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ข…์ข… ๋ณผ ์ˆ˜ ์žˆ๋‹ค.  ํ…์ŠคํŠธ ์ž…๋ ฅ ๋ฐ ๋ณ€ํ™˜ํ•˜๊ธฐ ์ด๋ ‡๊ฒŒ ๋ฐ”๊พธ๋Š” ๋ฒ•์€ ๊ฐ„๋‹จํ•œ๋ฐ ์•„๋ž˜ ์‚ฌ์ดํŠธ ์ ‘์† ํ›„ ๋ฐ”๊ฟ€ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด๋œ๋‹ค(์˜์–ด/pcํ™˜๊ฒฝ์—์„œ๋งŒ ๊ฐ€๋Šฅ)https://www.turtleinvest.site/ko/youtube-fonts/์›ํ•˜๋Š” ๊ธ€์”จ์ฒด์˜ ๋ณต์‚ฌ ๋ฒ„ํŠผ์€ ํด๋ฆญํ•ด ๋ณต์‚ฌํ•œ๋‹ค.

Expo Router๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ

Expo Router ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐฉ๋ฒ• npx create-expo-app@latest ์‹คํ–‰ํ•˜๊ธฐnpx expo start // ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐapp/  โ”œโ”€โ”€ (tabs)                   // ํƒญ ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ทธ๋ฃน  โ”‚   โ”œโ”€โ”€ _layout.tsx         // ํƒญ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ ˆ์ด์•„์›ƒ  โ”‚   โ”œโ”€โ”€ index.tsx           // ํ™ˆ ํƒญ ์Šคํฌ๋ฆฐ  โ”‚   โ”œโ”€โ”€ profile/            // ํ”„๋กœํ•„ ๊ด€๋ จ ์Šคํƒ ๋„ค๋น„๊ฒŒ์ด์…˜  โ”‚   โ”‚   โ”œโ”€โ”€ _layout.tsx     // ํ”„๋กœํ•„ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ  โ”‚   โ”‚   โ”œโ”€โ”€ index.tsx       // ํ”„๋กœํ•„ ๋ฉ”์ธ ์Šคํฌ๋ฆฐ  โ”‚   โ”‚   โ””โ”€โ”€ edit.tsx        // ํ”„๋กœํ•„ ์ˆ˜์ • ์Šคํฌ๋ฆฐ  โ”‚  ..

๋ฐ˜์‘ํ˜•