728x90
๋ฐ˜์‘ํ˜•

Computer Science 92

[Flutter Google Login] ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ์—๋Ÿฌ PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)

Flutter์—์„œ ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ์•ˆ๋“œ๋กœ์ด๋“œ์ชฝ์—์„œ ๋ง์ฝ์ด ์ƒ๊ฒผ๋‹ค. ๐Ÿ˜ฐ ์ผ๋‹จ ๋‚˜๋Š” google_sign_in ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด GoogleSignIn _googleSignInAccount = await _googleSignIn.signIn(); ๊ตฌ๊ธ€ ๊ณ„์ •์˜ displayName, email, serverAuthCode, idToken๋“ฑ์„ response๋กœ ๋‚ด๋ ค์ค€๋‹ค. ์ด reponse๊ฐ€ ์ œ๋Œ€๋กœ ๋“ค์–ด์™€์•ผ ๊ตฌ๊ธ€๊ณ„์ •์— ๋กœ๊ทธ์ธ์„ ์„ฑ๊ณตํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌธ์ œ๋Š”... ๋ถ„๋ช… Android studio์—์„œ ๋นŒ๋“œํ•ด์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ๋Š” reponse๊ฐ€ ์ž˜ ๋“ค์–ด์™”๋Š”๋ฐ ์•ฑ์„ ๋ฐฐํฌ ํ›„์— ํ…Œ์ŠคํŠธํ•ด๋ณด๋‹ˆ๊นŒ ๊ณ„์† PlatformException(sig..

[์•ˆ๋“œ๋กœ์ด๋“œ] Debug, Release SHA key ์ถ”์ถœ ๋ฐฉ๋ฒ•

Debug ์ธ์ฆ์„œ ์ง€๋ฌธ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ• (Debug SHA key๊ฐ’ ์ถ”์ถœ) 1. Gradle ์ด์šฉ gradle ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ํด๋”๋กœ ๊ฐ€์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ณ์ฃผ๋ฉด ๋! ./gradlew signingReport ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋Š”๋ฐ (์—ฌ๊ธฐ์„œ Config๊ฐ€ debug๋ผ๊ณ  ๋˜์–ด์žˆ๋Š”๊ฑฐ ๊ผญ ํ™•์ธ!) SHA1, SHA256์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค! > Task :app:signingReport Variant: debug Config: debug Store: C:\Users\####\.android\debug.keystore Alias: AndroidDebugKey MD5: ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:## SHA1: ##:##:##:##:#..

[Firebase] Firebase๋ž€? ์–ธ์ œ ์–ด๋””์— ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€๊ฐ€

Firebase๋Š” Google์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์œผ๋กœ, ๋ชจ๋ฐ”์ผ ๋ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ํ†ตํ•ฉ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Firebase๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ธ์ฆ, ํ˜ธ์ŠคํŒ…, ํด๋ผ์šฐ๋“œ ํ•จ์ˆ˜, ํ‘ธ์‹œ ์•Œ๋ฆผ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Firebase์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค: Firebase Authentication: ์‚ฌ์šฉ์ž ์ธ์ฆ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ, ์†Œ์…œ ๋กœ๊ทธ์ธ(Google, Facebook, Twitter ๋“ฑ), ์ „ํ™”๋ฒˆํ˜ธ ์ธ์ฆ ๋“ฑ ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Fi..

Computer Science 2024.01.18

[Xcode ์—๋Ÿฌ] Error (Xcode): Cycle inside Runner; building could produce unreliable results (ํ•ด๊ฒฐ๋ฒ• ํฌํ•จ โ—๏ธ)

์ด๋ฒˆ์— macOS๋ฅผ Ventura๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œํ‚ค๋ฉด์„œ XCode๋„ 15.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ์ผฐ๋‹ค. ๊ทผ๋ฐ ์—ญ์‹œ ๋ฒ„์ „ ์—…์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐ˜๊ฐ€์šด ์†Œ์‹์€ ์•„๋‹Œ๋“ฏ...ใ…  (๋Š˜ ๋งˆ์ฃผํ•˜๋Š” ๋นŒ๋“œ์—๋Ÿฌ) * macOS: 13.6.3, M1 Pro * xcode: 15.1 ์ง„์งœ ์—๋Ÿฌ ํ•œ 20๊ฐœ ๋ณธ๊ฑฐ ๊ฐ™๋‹ค ใ…‹ใ…‹ใ…‹ใ…‹ ํ•˜๋‚˜ํ•˜๋‚˜ ๋„์žฅ๊นจ๊ธฐํ•˜๋“ฏ์ด ๊ณ ์น˜๊ณ  ๊ฑฐ์˜ ๋ง‰๋ฐ”์ง€์ฏค ๋งˆ์ฃผํ•œ ์ด ์—๋Ÿฌ.. Cycle inside Runner; building could produce unreliable results. Cycle details: โ†’ Target 'Runner': ExtractAppIntentsMetadata โ—‹ Target 'Appname': CodeSign /Users/fon/Library/Developer/Xcode/DerivedDat..

Computer Science 2024.01.05

[Android] keystore๋ž€? keystore ์ƒ์„ฑ ๋ฐฉ๋ฒ• ๋ฐ ์—ญํ• 

[Android] buildType์ด๋ž€? debug vs release ๐Ÿ›  ํ”„๋กœ์ ํŠธ์˜ buildType์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 2๊ฐœ 1. debug 2. release ์ด ๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€ ?? ์งง๊ฒŒ ์š”์•ฝ ํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๋“ค์ด ์•ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋ฉด์„œ ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ณ , ๋˜ ๊ทธ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ•˜๋Š” ์ž‘์—…๋“ค์„ debug mac-user-guide.tistory.com ๐Ÿ‘†๐Ÿ‘†๐Ÿ‘† ์•ž์„œ buildType์˜ ์ข…๋ฅ˜ 2๊ฐ€์ง€, debug์™€ release type์— ๋Œ€ํ•ด ์„ค๋ช…์„ ํ–ˆ์Œ ์œ„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•„๋ž˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•  ๊ฒƒ์ž„ debug.keystore ์ƒ์„ฑ debug.keystore๋Š” android sdk๋ฅผ PC์— ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ์ด ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋จ! debug.keystore์˜ ์œ„์น˜ window : C:/..

[Android] buildType์ด๋ž€? debug vs release ๐Ÿ› 

ํ”„๋กœ์ ํŠธ์˜ buildType์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 2๊ฐœ 1. debug 2. release ์ด ๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€ ?? ์งง๊ฒŒ ์š”์•ฝ ํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๋“ค์ด ์•ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋ฉด์„œ ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ณ , ๋˜ ๊ทธ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ•˜๋Š” ์ž‘์—…๋“ค์„ debug type์—์„œ ํ•จ. ๊ทธ๋ฆฌ๊ณ  release type๊ณผ์˜ ์•„์ฃผ ํฐ ์ฐจ์ด์ ์€, release type์€ ์‹คํ–‰ํ•˜๋ คํ• ๋•Œ keystore alias, keystore ์œ„์น˜, keystore ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ์„ ์š”๊ตฌํ•จ!!! ์™œ ์š”๊ตฌํ•˜๋ƒ?? ์™œ๋ƒ๋ฉด, release type์€ ์•ฑ ์ถœ์‹œ์šฉ์ด๊ธฐ ๋•Œ๋ฌธ!! ์•ฑ์ด ์ถœ์‹œ๋˜๋ฉด ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค์ด Google Play Store์—์„œ ์•ฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฑฐ ์•„์‹œ์ฃ ?

[ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ํฌํ•จ] CocoaPods could not find compatible versions for pod "":

pod install์‹œ ๋‚ด๊ฐ€ ๋งˆ์ฃผํ•œ ์—๋Ÿฌ: CocoaPods could not find compatible versions for pod "#####": ๋ฌด์ž‘์ • pod deintegrate โ†’ pod clean โ†’ pod install ์„ ๋ฐ˜๋ณตํ–ˆ์ง€๋งŒ ๊ณ„์† ๋งˆ์ฃผํ–ˆ๋‹ค ์—๋Ÿฌ์ฐฝ์—๋Š” 'pod repo update'๋ฅผ ํ•˜๋ผ๊ณ  ์จ์ ธ์žˆ๋Š”๋ฐ, ๋‚œ ์ตœ๊ทผ์— ์ด๋ฏธ pod update๋ฅผ ํ•œ ์ƒํƒœ์˜€๊ณ  ๋˜ ๋ฒ„์ „์—…์„ ํ•  ํ•„์š”๋Š” ์—†์—ˆ๋‹ค.. ๊ทธ๋Ÿฌ๋‹ค ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค,,!!!!!!! flutter pub get โ†’ cd ios โ†’ pod install flutter pub get์ด ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค..!! ๐Ÿ˜ƒ ์ €์ฒ˜๋Ÿผ pod clean์œผ๋กœ๋งŒ ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š์€ ๋ถ„๋“ค์€ flutter pub get์„ ํ•ด๋ณด์„ธ์š”

[Flutter] pubspec.yaml & pubspec.lock

pubspec.lock - flutter ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ - pubspec.yaml ํŒŒ์ผ์— ๋ช…์‹œ๋œ ํŒจํ‚ค์ง€๋“ค๊ณผ ๊ทธ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋“ค์˜ ์ •ํ™•ํ•œ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํฌํ•จ - ์™œ ํ•„์š”ํ•˜๋Š๋ƒ ? --> ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์‹œ, ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ถฉ๋Œ ๋ฐฉ์ง€, ํ”„๋กœ์ ํŠธ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•จ! - ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Œ. pubspec.yaml ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ฒ„์ „๋ฒ”์œ„๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ๋จ pubspec.yaml - ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ์„ ์–ธํ•˜๋Š” ๊ณณ - ์–ด๋–ค ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€, ์–ด๋–ค ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๋ช…์‹œ (ํŒจํ‚ค์ง€์˜ ์ตœ์†Œ ๋ฒ„์ „, ๋ฒ”์œ„ ๋“ฑ์ด ์ •์˜๋จ)

[Android Studio] device selection์— virtual device ์•ˆ๋œจ๋Š” ์ด์Šˆ ๐Ÿ˜ซ (ํ•ด๊ฒฐ ํฌํ•จ)

Device Manager์—์„œ virtual device ๊นŒ์ง€ ๋‹ค ์„ค์น˜ํ–ˆ๋Š”๋ฐ device selection์— ๋„๋ฌด์ง€!!! ๋œจ์งˆ ์•Š์•„์„œ ๋นŒ๋“œ๋ฅผ ํ•ด๋ณผ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค ใ… ใ… ใ…  ์ง„์งœ ๊ฑฐ์˜ ๋ช‡์ผ์„ ๊ณ ์ƒํ–ˆ๋Š”๋ฐ.. ์ •๋ง ํ„ฐ๋ฌด๋‹ˆ ์—†๋Š” ์ด์Šˆ์˜€๋”ฐ๋Š”....ใ…Ž flutter doctor ์šฐ์„  ๋‹ค๋“ค ์ด๊ฑฐ ํ•œ๋ฒˆ๋งŒ ๋Œ๋ ค๋ณด์„ธ์š”... ์—ฌ๊ธฐ์„œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค! Unable to locate Android SDK ์ €๋Š” Unable to locate Android SDK (android sdk ๊ฒฝ๋กœ ์„ค์ •์ด ์ œ๋Œ€๋กœ ์•ˆ๋˜์–ด์žˆ๋‹ค) ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋”๋ผ๊ตฌ์š” "android sdk ๊ฒฝ๋กœ๊ฐ€ ์–ด๋””์ง€..?" ์‹ถ์œผ์‹  ๋ถ„๋“ค์€ ์•„๋ž˜ ๋นจ๊ฐ„ ๋ฐ•์Šค ํด๋ฆญํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ค€๋‹ต๋‹ˆ๋‹ค~! ๊ฒฝ๋กœ๊ฐ€ ํ™•์ธ๋˜์…จ๋‹ค๋ฉด, ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์–ด ๊ฒฝ๋กœ ์ง€์ •์„ ํ•ด์ฃผ์„ธ์š”!..

[Flutter] ios ๋ฐฐํฌํ•˜๊ธฐ!!

ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น ์น˜๊ณ  ์˜ค๋ฅ˜์—†์ด ๋Œ์•„๊ฐ€๋ฉด ๋ฉ๋‹ˆ๋‹น ์•„๋ž˜ ๋ช…๋ น์–ด๋Š” dev ๋ฒ„์ „ ๋ฐฐํฌํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค! flutter build ipa --release --flavor dev ์ฃผ์˜์‚ฌํ•ญ ๐Ÿ–– ๋‚ด๊ฐ€ ์ง์ ‘ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค appstore connect์— ๋“ค์–ด๊ฐ€์„œ ๋‚˜์˜ ์—ญํ• ์ด '๊ด€๋ฆฌ์ž'๋กœ ๋˜์–ด์žˆ๋Š”์ง€ ๊ผญ ํ™•์ธํ•ด์ฃผ์„ธ์š”! ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ถŒํ•œ์ด ์—†์–ด ๋ฐฐํฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค

[react] react-query: refetch์—๋„ status๊ฐ€ ๊ณ„์† success์ธ ์ด์œ ?

react-query์—์„œ query๋ฅผ refetchํ•  ๋•Œ status๊ฐ€ idle๋ถ€ํ„ฐ ๋œจ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ success๋ถ€ํ„ฐ ๋œจ๋Š” ๊ฒฝ์šฐ.. ์™œ๊ทธ๋Ÿด๊นŒ?? (status๋ฟ๋งŒ ์•„๋‹ˆ๋ผ isLoading์ด๋‚˜ isFetching๊ณผ ๊ฐ™์€ ์ƒํƒœ๋„ true๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ false๋กœ ๋œฌ๋‹ค.) refetchOnMount: true, keepPreviousData: false ๋กœ ๋‹ค ์„ค์ •ํ–ˆ๋Š”๋ฐ๋„ ๋ง์ด๋‹ค. ํ•ด๋‹น ์ƒํ™ฉ ์žฌํ˜„ useQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ data fetch any event์— ์˜ํ•ด ํ•ด๋‹น data ๋‹ค์‹œ refetch ์ฝ˜์†”์— ๋กœ๊ทธ ์ฐ์–ด๋ดค์„๋•Œ data์˜ status: success ๋ถ€ํ„ฐ ์‹œ์ž‘ (์•„๋ž˜ ์ฝ˜์†” ์บก์ณ ์‚ฌ์ง„์—์„œ ๋งจ ๋งˆ์ง€๋ง‰ ์ค„๋งŒ ๋œธ) ๋‚ด๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ behavior : status: idle๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ idle ->..

[javascript][typescript] default export vs export ~

javascript, typescript๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ชจ๋“ˆ์„ ๋งŽ์ด ๋งŒ๋“ค๊ฒŒ ๋˜๊ณ  ๊ทธ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ํ•˜๋‹จ์—๋Š” "export default ~" ํ˜น์€ "export const ~" ๋“ฑ์˜ export ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๊ธ€์€ ๋ฌด์ง€์„ฑ์œผ๋กœ export ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๊ธ€์ด๋‹ค. export์—๋Š” default export์™€ named export๊ฐ€ ์žˆ๋‹ค 1. default export - ํŒŒ์ผ๋‹น ์ตœ๋Œ€ 1๊ฐœ์˜ default export๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ - ๋ณดํ†ต ํŒŒ์ผ ๋‚ด์—์„œ ํ•œ๊ฐœ๋งŒ exportํ•  ๋•Œ vs ๋Œ€ํ‘œ๋กœ exportํ•  ๊ฒƒ์ด ์žˆ์„ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ - ํ•ด๋‹น ๋ชจ๋“ˆ์—๋Š” ๊ฐœ์ฒด๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์˜๋ฏธ - importํ•  ๋•Œ ์ค‘๊ด„ํ˜ธ{} ์—†์ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ - ์œ„์™€ ๊ฐ™์ด exportํ•  ๊ฒฝ์šฐ importํ•  ๋•Œ ์•„๋ฌด ์ด..

[React] useEffect์˜ dependency ์—ญํ• 

useEffect๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด, dependency์— ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ๋Š” ๊ฒฝ์šฐ๋„, ์ผ๋ถ€ state๊ฐ’๋“ค์„ ๋„ฃ๊ธฐ๋„ํ•˜๊ณ , ํ˜น์€ dependency๋ฅผ ์ƒ๋žตํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด ์…‹์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ณ ์ž ํ•œ๋‹ค. ๋จผ์ € dependency๋ฅผ ์•„์˜ˆ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. useEffect(() => {}); dependency๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ผ ์ฒ˜์Œ ๋ Œ๋”๋ง ํ•  ๋•Œ ํ•œ๋ฒˆ ๋ถˆ๋ฆฌ๊ณ , ๊ทธ ๋’ค๋กœ ์–ด๋–ค ์ž‘์€ state๋“ค์ด๋‚˜ ์š”์†Œ๋“ค์ด ๋ณ€ํ™”ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์† ๋ถˆ๋ฆฐ๋‹ค. ์ฆ‰, ๋ถˆํ•„์š”ํ•œ ์ฝœ์ด ๋งŽ์•„์ง„๋‹ค. (์œ„ ํ˜•ํƒœ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค) ๋‹ค์Œ์€ dependency๋กœ ๋นˆ ๋ฐฐ์—ด์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ์ด๋‹ค. useEffect(() => { },[]); ๋ Œ๋”๋ง ํ›„์— ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐ์—ด์— ๋ณ€์ˆ˜๋“ค์„ ๋„ฃ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. cons..

[๋จธ์‹ ๋Ÿฌ๋‹] Likelihood "์šฐ๋„" ๋ž€?

์šฐ๋ฆฌ๊ฐ€ ๋จธ์‹ ๋Ÿฌ๋‹์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด MLE(Maximum LIkelihood Estimation)์„ ๋งŽ์ด ์ ‘ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์˜๋ฏธํ•˜๋Š” Likelihood๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€? ์ตœ๋Œ€์šฐ๋„๋ฒ•(MLE)๋ž€ - ๋ชจ์ˆ˜์ ์ธ ๋ฐ์ดํ„ฐ ๋ฐ€๋„ ์ถ”์ • ๋ฐฉ๋ฒ• - ํŒŒ๋ผ๋ฏธํ„ฐ ๐œƒ = (๐œƒ1,๐œƒ2,..๐œƒn)์œผ๋กœ ๊ตฌ์„ฑ๋œ ์–ด๋–ค ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜ P์—์„œ ๊ด€์ธก๋œ ํ‘œ๋ณธ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ x = (x1,x2,..,xn)๋ผ ํ•  ๋•Œ, ์ด ํ‘œ๋ณธ๋“ค์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ๐œƒ = (๐œƒ1,๐œƒ2,..๐œƒn)์„ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ข€ ๋” ์‰ฌ์šด ์ดํ•ด๋ฅผ ์œ„ํ•ด ๊ทธ๋ฆผ๊ณผ ์—์‹œ๋ฅผ ๋ณด๋ฉด์„œ MLE๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•ด๋ณด์ž ์˜ˆ์‹œ ) ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž x = { 1, 4, 5, 6, 9 } ์ด๋•Œ ๋ฐ์ดํ„ฐ x๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ์ฃผํ™ฉ์ƒ‰ ๊ณก์„ ๊ณผ ํŒŒ๋ž€์ƒ‰ ๊ณก์„  ์ค‘ ์–ด๋–ค ๊ณก์„ ์œผ๋กœ๋ถ€ํ„ฐ ์ถ”์ถœ๋˜์—ˆ์„ ํ™•๋ฅ ์ด ๋” ๋†’์€๊ฐ€?..

[๋จธ์‹ ๋Ÿฌ๋‹์„ ์œ„ํ•œ ํ†ต๊ณ„์ง€์‹]

1. ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ•˜๋Š”๋ฐ ํ†ต๊ณ„๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”? - ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ†ต๊ณ„์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ฒด๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์—์„œ sampling๋œ ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ณด๊ณ  ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆํ™•์‹ค์„ฑ์„ ์ง€๋‹ ์ˆ˜ ๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ์ผ์€ parameter๋ฅผ ์ถ”์ •ํ•˜๋Š” ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ ๋˜๋Š” ๋ชจ๋ธ์— ๋Œ€ํ•œ ๊ฐ€์ •์„ ํ•  ๋•Œ ํ†ต๊ณ„์ง€์‹ ํ•„์š”ํ•˜์ฃ . 2. ํ™•๋ฅ ๋ถ„ํฌ์— ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? - uniform distribution, ์ •๊ทœ๋ถ„ํฌ, ๋ฒ ๋ฅด๋ˆ„์ด ๋ถ„ํฌ, ์ดํ•ญ๋ถ„ํฌ, ๋ฒ ํƒ€๋ถ„ํฌ, ๋””๋ฆฌํด๋ ˆ ๋ถ„ํฌ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ •๊ทœ๋ถ„ํฌ๋กœ ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋Š” ์ฃผ๋กœ ๋ฒ ๋ฅด๋ˆ„์ด ๋ถ„..

728x90
๋ฐ˜์‘ํ˜•