๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ „์ฒด ๊ธ€142

๐Ÿ’‰Android ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์— di ์ ์šฉํ•ด๋ณด๋Š” ๊ธฐ๋ก ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ˜„์žฌ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์— di๋ฅผ ์ ์šฉํ•ด๋ณด๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๊ณ  ์žˆ๋‹ค. ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ๋‹ค ๊ตฌํ˜„ํ•˜๋Š” ๊ทธ๋‚ ๊นŒ์ง€ ๊ณ„์† ๊ธฐ๋ก์„ ํ•ด๋ณด๊ฒ ๋‹ค! Day 1๏ธโƒฃ module์—์„œ ์ •์˜ํ•œ ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ• ๊นŒ?์— ๋Œ€ํ•œ ์˜๋ฌธ์„ ๋“œ๋””์–ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ์•„์˜ˆ ๊ทธ ๋ชจ๋ธ GoogleAuthModule.provide( ) ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ์—ˆ๋‹ค... @Provides @ActivityScoped fun provideCredentialManager( @ActivityContext context: Context, ): CredentialManager { return CredentialManager.create(context) } ์ด๋ ‡๊ฒŒ ์ •์˜ํ•œ CredentialManager์˜ ๊ฐ์ฒด๋Š” ๊ฐ„๋‹จํžˆ ํ•„๋“œ ์‚ฝ์ž… ์„ ํ†ตํ•ด.. 2024. 3. 15.
๐Ÿซ™Android ๋กœ๊ทธ์ธ ํ† ํฐ ์ €์žฅ : Proto Datastore ์ ์šฉํ•˜๊ธฐ Proto Datastore ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ Jetpack์˜ Datastore์€ ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค-๊ฐ’ ์Œ ๋˜๋Š” ์œ ํ˜•์ด ์ง€์ •๋œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์†”๋ฃจ์…˜์ด๋‹ค. Datastore์€ kotlin์˜ ์ฝ”๋ฃจํ‹ด ๋ฐ Flow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ์ ์ด๊ณ  ์ผ๊ด€๋œ ํŠธ๋žœ์žญ์…˜ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ด ๋•Œ 2๊ฐ€์ง€์˜ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 1๏ธโƒฃProto Datastore : ๋งž์ถค ๋ฐ์ดํ„ฐ ์œ ํ˜•์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์œ ํ˜• ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•œ๋‹ค. 2๏ธโƒฃPreferences Datastore : ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์ €์žฅ & ์•ก์„ธ์Šค๋ฅผ ํ•œ๋‹ค ์œ ํ˜• ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์ „์— ์ •์˜๋œ ์Šคํ‚ค๋งˆ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. โ“ ์œ ํ˜• ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•˜๋ฉด ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฑธ๊นŒ? ๐Ÿ—จ๏ธํ”„.. 2024. 3. 15.
์ด์ฝ”ํ…Œ : ๊ทธ๋ฆฌ๋””[ํฐ ์ˆ˜์˜ ๋ฒ•์น™] ๊ทธ๋ฆฌ๋””์˜ ๊ฐœ๋… ๊ทธ๋ฆฌ๋””๋Š” ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ง€๊ธˆ ๋‹น์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์ธ ํƒ์š•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฑฐ์Šค๋ฆ„๋ˆ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๊ฐ€์žฅ ํฐ ํ™”ํ ๋‹จ์œ„๋ถ€ํ„ฐ ๋ˆ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ฃผ๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ฆฌ๋”” ๋ฐฉ์‹์ด๋‹ค ํฐ ์ˆ˜์˜ ๋ฒ•์น™ ์•„์ด๋””์–ด : ( ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ตœ๋Œ€ ์—ฐ์†ํšŸ์ˆ˜๋งŒํผ ๋”ํ•ด์ฃผ๊ณ  + ๊ทธ ๋‹ค์Œ์„ ํฐ ์ˆ˜๋ฅผ ํ•œ๋ฒˆ ๋”ํ•ด์ฃผ๊ธฐ ) ์ด ๊ณผ์ •์„ ์ˆ˜๊ฐ€ ๋”ํ•ด์ง€๋Š” ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•ด์ฃผ๋ฉด ๋œ๋‹ค ๊ตฌํ˜„ ๊ฐ€์žฅ ํฐ ์ˆ˜ ๊ตฌํ•˜๊ธฐ : ์ธ๋ฑ์Šค๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ ๋‹ค๋ฅธ ์ˆ˜ ์ทจ๊ธ‰์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— list๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„ [0]๋ฒˆ์งธ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค ๋‘ ๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜ ๊ตฌํ•˜๊ธฐ : ๊ฐ™์€ ์ด์œ ๋กœ [1]๋ฒˆ์งธ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๋ฐ˜๋ณต ํšŸ์ˆ˜ : ๋ฐ˜๋ณต ํšŒ์ˆ˜๋Š” m๋ฒˆ ๋งŒํผ ๋ฐ˜๋ณต๋˜์–ด์•ผํ•œ๋‹ค. ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ m๋ฒˆ๋งŒํผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? count ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉ.. 2024. 3. 14.
Android ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ฐœ๋… ์ตํžˆ๊ธฐ [REST,URL, URI, Retrofit] ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋กœ์ง์€ ํ•„์ˆ˜์ ์ด๋‹ค! ์ด ๋•Œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…์„ ์•Œ์•„๋ณด์ž REST api๋ž€ ? REpresentational StateTransfer : REST๋ผ๋Š” ์›น ์•„ํ‚คํ…์ณ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. REST api๋Š” REST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์˜ ๋””์ž์ธ ์›์น™์„ ์ค€์ˆ˜ํ•˜๋Š” API๋ฅผ ๋งํ•œ๋‹ค. API๋ž€ ? ์—ฌ๊ธฐ์„œ api๋ž€ application programming interface๋ฅผ ๋งํ•œ๋‹ค. api๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ž์™€ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž ์‚ฌ์ด์˜ ๊ณ„์•ฝ์„ ๋งํ•œ๋‹ค. ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์ž (์†Œ๋น„์ž)์™€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒ์‚ฐ์ž๋Š” ๊ฐ๊ฐ content๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ด๋ฅผ ๊ฐ๊ฐ call๊ณผ response๋ผ๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ์ปดํ“จํ„ฐ์™€.. 2024. 3. 5.
728x90