๐Ÿ™Œ 2024๋…„ 4์›”ํšŒ๊ณ 

@Troy ยท May 01, 2024 ยท 17 min read

4์›”์€ ๋ฐ”๋นด์ง€๋งŒ, ๋‚ด์•ˆ์— "์–ด๋–ค๊ฒŒ ๋งž๋Š”๊ฑธ๊นŒ, ๋‚ด๊ฐ€ ์ž˜ํ•˜๊ณ  ์žˆ๋Š”๊ฑธ๊นŒ" ํ•˜๋Š” ๊ณ ๋ฏผ์ด ๋งŽ์•˜๋˜ ํ•œ ๋‹ฌ์ด์—ˆ๋‹ค. 3์›” ๋‹ฌ์˜ ํ•˜๊ธฐ๋กœ ํ–ˆ๋˜ ๊ฒƒ๋“ค ์ค‘ ์–ผ๋งˆ๋‚˜ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ  4์›”์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์„ ํ–ˆ๋Š”์ง€ ๋˜ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์„์ง€ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.

๐Ÿ’ช 3์›” ํšŒ๊ณ  ๋Œ์•„๋ณด๊ธฐ

3์›” ํšŒ๊ณ ๋•Œ ๋งˆ์Œ๋จน์—ˆ๋˜ ๊ฒƒ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • App Startup Time ์ค„์ด๊ธฐ ๋•Œ ํ•˜์ง€ ๋ชปํ•œ ์ผ๊ฐ ํ›„์† ์ž‘์—… ์ง„ํ–‰ํ•˜๊ธฐ
  • ์—๋Ÿฌ๋ฐ”์šด๋”๋ฆฌ ์ ์šฉํ•˜๊ณ  ๊ณผ์ •์— ๋Œ€ํ•œ ๊ธ€์“ฐ๊ธฐ
  • ์Šค์ฟผ๋“œ ๋‚ด ์†Œํ†ตํ•  ๋•Œ ์ ๊ทน์ ์œผ๋กœ ์†Œํ†ตํ•˜๊ธฐ, ๊ธฐ์ˆ  ์šฉ์–ด ๋Œ€์‹  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์šฉ์–ด๋กœ ํ‘œํ˜„ํ•˜๊ธฐ
  • ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ณต๋ถ€ํ•˜๊ธฐ
  • UI ํŒจํ„ด๋ณ„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ธฐ

์œ„ ๋‹ค์„ฏ๊ฐ€์ง€์— ๋Œ€ํ•ด 4์›” ํ•œ๋‹ฌ๋™์•ˆ ์–ด๋–˜๋Š”์ง€ ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ ค ํ•œ๋‹ค.

1. App Startup Time ์ค„์ด๊ธฐ ํ›„์† ์ž‘์—…

App Startup Time ๊ฐœ์„  ์ž‘์—…์„ ์ž˜ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ๋‹น์‹œ ๋ฏธ๋ค„๋’€๋˜ ํ›„์†์ž‘์—…๋“ค์„ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค๊ณ  3์›”์— ๋‹ค์งํ–ˆ์—ˆ๋‹ค.

๋‹คํ–‰ํžˆ ๋‹ค์Œ ์ฑ•ํ„ฐ ์—…๋ฌด๋กœ ํ™”๋ฉด ์ „ํ™˜๊ฐ„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ ๋ฐฉ๋ฒ•์œผ๋กœ Native Stack์„ ์ ์šฉํ•˜๋Š” ์ž‘์—…์„ ๋ฉ”์ธ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ์šฐ๋ฆฌ ์ œํ’ˆ์€ React Navigation์„ ์ด์šฉํ•ด ๋ผ์šฐํŒ…, ํ™”๋ฉด์ „ํ™˜์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์„ฑ๋Šฅ ์ธก์ •์„ ์œ„ํ•œ ์ž์ฒด Custom Stack Navigation์„ ๋งŒ๋“ค์–ด์„œ ์ ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

์ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  React Navigation์˜ Native Stack์„ ์ ์šฉํ•˜๋ฉด์„œ JS ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด์ „ํ™˜์ด ์•„๋‹ˆ๋ผ Native ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด ์ „ํ™˜๊ฐ„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ด๋ฟ ์•„๋‹ˆ๋ผ ๊ธฐ์กด ํ™”๋ฉด ์ „ํ™˜๊ฐ„ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์„ ๋งŒํ•œ ๋ถ€๋ถ„๋“ค์„ ์ฐพ์•„๋ณด๊ณ  ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ณ  ์žˆ๋‹ค.

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

๋งŒ์•ฝ ์กฐ๊ธˆ ๋” ์ธก์ •์„ ํ•ด๋ณด๋ คํ•œ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ ์˜์กด์ด ์ ์€ ํ™”๋ฉด์— ๋Œ€ํ•œ E2E ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ํ๋ฆ„์—์„œ ํ™”๋ฉด์ „ํ™˜๋˜๋Š” ์ˆœ๊ฐ„์˜ CPU, ๋ฉ”๋ชจ๋ฆฌ, FPS๊ฐ€ ๋–จ์–ด์ง€๋Š” ์ •๋„๋ฅผ ๋น„๊ตํ•ด๋ณด๋Š” ๋ฐฉ๋ฒ•์ด ์ข‹์•„ ๋ณด์—ฌ ์šฐ์„  ์ธก์ • ๋ฐฉ๋ฒ•์„ ๊ณ„์†ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ์žˆ๋‹ค.

2. ์—๋Ÿฌ๋ฐ”์šด๋”๋ฆฌ ์ œ์•ˆ ๋ฐ ์ ์šฉํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ๊ธ€์“ฐ๊ธฐ

3์›”์— ์ด์–ด 4์›”๋„ ์—๋Ÿฌ๋ฐ”์šด๋”๋ฆฌ๋ฅผ ์ ์šฉํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 3์›”๊นŒ์ง€๋Š” ์ž‘๋…„ 4๋ถ„๊ธฐ ์ž‘์—… ์ „์— ์กฐ์‚ฌํ–ˆ๋˜ ํ™”๋ฉด๋“ค์— ๋Œ€ํ•œ ๊ธฐ์ค€์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๊ณ , ๊ทธ์‚ฌ์ด์— ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋˜๊ณ  ์ˆ˜์ •๋œ ํ™”๋ฉด๋“ค์— ๋Œ€ํ•œ ๋ฐ˜์˜์ด ๋˜์–ด ์žˆ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— 4์›”์— ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋ฉด์„œ๋Š” ํ˜„์žฌ์˜ ๊ธฐ์ค€์œผ๋กœ ์กฐ์‚ฌ๊ฐ€ ๋จผ์ € ํ•„์š”ํ–ˆ๋‹ค.

ChatGPT ๋•๋ถ„์— ๊ธฐ์กด ์ •๋ฆฌํ•ด๋‘” ๋ฐ์ดํ„ฐ์— ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์นœ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” Script๋ฅผ ์ž‘์„ฑํ•ด, ํ˜„์žฌ ๊ธฐ์ค€ ์ œํ’ˆ ๋‚ด์—๋Š” ์ด 256๊ฐœ ํ™”๋ฉด์ด ์กด์žฌํ•˜๊ณ  ๊ทธ์ค‘ 108๊ฐœ ํ™”๋ฉด(42%)์— ๋Œ€ํ•œ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋ถ„๋ช… 3์›”์— ์ •๋ฆฌํ–ˆ์„ ๋•Œ๋Š” ์ž‘๋…„ 4๋ถ„๊ธฐ ์กฐ์‚ฌํ•œ ํ™”๋ฉด๋“ค ๊ธฐ์ค€์œผ๋กœ 262๊ฐœ์ค‘ 84๊ฐœ(33%)์˜ ํ™”๋ฉด์ด ๋‚จ์•„์žˆ์—ˆ๋Š”๋ฐ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋‹ˆ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ๋‚˜๋‹ˆ ๋‹จ์ˆœํžˆ ์—ด์‹ฌํžˆ๋งŒ ํ•ด์„œ๋Š” ์˜์›ํžˆ ๋๋‚˜์ง€ ์•Š์„ ์ž‘์—…์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ตฌ๋ฉ๋‚œ ๋…์— ๋ฌผ๋ถ“๊ธฐ์ฒ˜๋Ÿผ ๊ตฌ๋ฉ์„ ์†์œผ๋กœ ๋ง‰์œผ๋ฉด์„œ ๋ฌผ์„ ๋ถ€์—ˆ์„ ๋•Œ ์–ด๋Š์ •๋„ ์ฐจ๊ธด ํ•˜๊ฒ ์ง€๋งŒ, ์ƒˆ๋กœ์šด ํ™”๋ฉด๋“ค์€ ์ƒ๊ธฐ๊ณ , ํ•„์š”์—†๋Š” ํ™”๋ฉด๋“ค์€ ์ œ๊ฑฐ๋˜๊ฒŒ ๋˜๋ฉด์„œ ๋์ด ์—†๋Š” ์ž‘์—…์ด๋ผ๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹จ์ˆœํžˆ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ๋‹ค๊ฐ€ ์•„๋‹ˆ๋ผ ์ฑ•ํ„ฐ๋‚ด ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์™œ ํ•„์š”ํ•œ์ง€, ์–ด๋–ค ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ๊ณต์œ ํ•ด, ๋‹ค๊ฐ™์ด ๋…ธ๋ ฅํ•ด์•ผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋ž€ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ์‹œํ–‰์ฐฉ์˜ค๋“ค์„ ์ž˜ ์ •๋ฆฌํ•ด์„œ 6์›”์ •๋„์—๋Š” ๊ธ€์„ ์จ๋ณด๋ คํ•œ๋‹ค.

3. ์Šค์ฟผ๋“œ ๋‚ด ์†Œํ†ต ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋…ธ๋ ฅ

3์›”๋ถ€ํ„ฐ ํ•ฉ๋ฅ˜ํ•œ ์Šค์ฟผ๋“œ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์‹ ์‚ฌ์—… ๋‹ด๋‹น ์Šค์ฟผ๋“œ์ด๋‹ค ๋ณด๋‹ˆ ๋‹ค๋ฅธ ํšŒ์‚ฌ์™€์˜ ํ˜‘์—…์„ ํ•˜๊ฑฐ๋‚˜ ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ์ผ๋“ค์ด ๋งŽ์ด ๋“ค์–ด์˜ค๋Š” ์ƒํ™ฉ์—์„œ ์˜์‚ฌ์†Œํ†ต์ด ์ข€ ๋” ์ค‘์š”ํ•˜๊ฒŒ ๋Š๊ปด์กŒ๋‹ค.

์ด๋ฒˆ๋‹ฌ ์ฃผ์š” ์ž‘์—…์ค‘ ํ•˜๋‚˜์˜€๋˜ ์ฟ ํŒก ๊ด‘๊ณ  ์—ฐ๊ฒฐ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ฟ ํŒก ๊ด‘๊ณ  ์ƒํ’ˆ ํด๋ฆญ์‹œ ์•ฑ์ด ์„ค์น˜๋˜๋ฉด ์ฟ ํŒก ์•ฑ์œผ๋กœ ์ง„์ž… ํ›„ ๊ด‘๊ณ ์ƒํ’ˆ์— ๋žœ๋”ฉํ•˜๊ฒŒ ๋˜๊ณ , ์•ฑ์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๋ชจ๋ฐ”์ผ ์›น์„ ํ†ตํ•ด ๊ด‘๊ณ ์ƒํ’ˆ์— ๋žœ๋”ฉ์‹œํ‚ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

์ด๋•Œ iOS, Android์— ๋”ฐ๋ผ ์ฟ ํŒก ๊ด‘๊ณ ์— ๋žœ๋”ฉํ•  ๋•Œ ๊ธฐ์กด ๊ธฐํš๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์ด ์žˆ์—ˆ๊ณ , ์ด๋Ÿฐ ๊ธฐํš๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•ด์„œ ์Šค์ฟผ๋“œ์— ๊ณต์œ ํ•˜๋Š” ๋“ฑ, ์‹ค์ œ ๊ตฌํ˜„๊ณผ์ •์—์„œ ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๋“ค์„ ์ ๊ทน์ ์œผ๋กœ ๊ณต์œ ํ•˜๋ ค ๋…ธ๋ ฅํ–ˆ๋‹ค.

๋˜ํ•œ ์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ ํŠธ๋ž˜์ปค์˜ ๊ฒฝ์šฐ์—๋„ PO, Data ์—”์ง€๋‹ˆ์–ด๋ถ„๊ป˜์„œ ์„ค๊ณ„ํ•ด์ฃผ์…จ์„ ๋–„ ์‹ค์ œ ์ ์šฉํ•  ๋•Œ ์–ด๋–ค ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„์ง€, ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์—†์„์ง€ ์ ๊ทน์ ์œผ๋กœ ์†Œํ†ตํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค.

์—ฌ์ „ํžˆ ๊ธฐ์ˆ ์ ์ธ ์š”์†Œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ๋•Œ ์–ด๋ ค์›€์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋‹จ์ˆœํžˆ ๋œ๋‹ค/์•ˆ๋œ๋‹ค ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ž˜ ์„ค๋ช…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๊ณ„์† ์—ฐ์Šตํ•ด๊ฐ€์•ผ ๊ฒ ๋‹ค๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋˜ ํ•œ๋‹ฌ์ด์—ˆ๋‹ค.

4. ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ณต๋ถ€ํ•˜๊ธฐ

์Šค์ฟผ๋“œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„์— ๋Œ€ํ•ด์„œ ๋งŽ์ด ๊ณ ๋ฏผํ•˜๊ณ  ์ž‘์—…ํ–ˆ๋‹ค. ๊ธฐ์กด๊ณผ ๋‹ค๋ฅธ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์„์ง€, ๊ณ ๋ฏผํ•˜๋Š” ๊ณผ์ •์€ ์‹œ๊ฐ„์ด ๋” ๋งŽ์ด ๋“ค์—ˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ์™€ UI์™€ ๋ถ„๋ฆฌํ•œ ๋’ค์— ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ฐœ์„ ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•˜๋‚˜์”ฉ ๋” ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์žก์•„๊ฐ€๊ณ  ์žˆ๋‹ค.

3์›” ํšŒ๊ณ  ๋–„ ๋งํ–ˆ๋˜ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ ์กฐ๊ธˆ ๋” ํ™•์žฅ์„ฑ์žˆ๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฑด ์•„์ง ์ ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๋Œ€์‹  ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ณ‘๋ชฉ์ด ๋˜์—ˆ๋˜ ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๋ฅผ ์ •ํ•ด์„œ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…์„ ๊ณ„ํšํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„์™€ ๊ด€๋ จ๋œ ๊ฐ•์˜๋“ค์„ ์ฐธ๊ณ ํ•ด ์ ์šฉํ•ด๋ณด๋ คํ•œ๋‹ค. ์ด๊ณผ์ •์„ ์ •๋ฆฌํ•ด์„œ ์ฃผ๊ฐ„ ๋ฏธํŒ… ์‹œ๊ฐ„์— ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๊ณต์œ ํ•ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

5. UI ํŒจํ„ด๋ณ„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ธฐ

UI ํŒจํ„ด๋ณ„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ธฐ๋Š” ์•„์ง ์‹œ์ž‘ํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค. ๋Œ€์‹  4์›” ํ•œ๋‹ฌ๊ฐ„ ๊ฐ€์žฅ ๋งŽ์ด ๋ณธ ํŒจํ„ด์„ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋ชฉ๋ก -> ์ƒ์„ธ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ํ™”๋ฉด๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒ์  ํŒจํ„ด์ด์—ˆ๋‹ค.

React Native์—๋Š” ScrollView, FlatList, SectionList ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฆฌ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์žˆ๊ณ , ์ปดํฌ๋„ŒํŠธ ์ž์ฒด Prop์ด ์ง€์›ํ•˜๋Š” ์š”์†Œ๋“ค์„ ๊ณต์‹๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ ค ๋…ธ๋ ฅํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ชฉ๋ก์˜ ํŠน์ • ์š”์†Œ๊ฐ€ ๋…ธ์ถœ๋˜์—ˆ๋Š”์ง€๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ FlatList์˜ onViewableItemsChanged๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด ๊ฐ„๋‹จํ•œ ๊ธ€์„ ์ž‘์„ฑํ–ˆ๊ณ , ์šฐ๋ฆฌ ์ œํ’ˆ๋‚ด์—์„œ๋„ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ prop์ด๋ผ ๊ณต์œ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ์ฃผ๊ฐ„ ๋ฏธํŒ…์—์„œ ๋ฐœํ‘œ๋ฅผ ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค.

์•„์ง ๋ถ€์กฑํ•ด ํ•œ๋ฒˆ์— UI ํŒจํ„ด ๋ณ„ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ณ„์†ํ•ด์„œ ์ •๋ฆฌํ•ด๋‚˜๊ฐ€๋ ค ํ•œ๋‹ค.

๐Ÿš€ 4์›”์— ๊ณ ๋ฏผ์„ ์‹œ์ž‘ํ•œ ์ผ๊ฐ ๋ฐ ๊ณต๋ถ€

4์›”๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ƒˆ๋กญ๊ฒŒ ๊ณ ๋ฏผ์„ ์‹œ์ž‘ํ•œ ์ผ๊ฐ๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ฉด์„œ 5์›”์—๋Š” ์–ด๋–ค ์ผ์„ ์ง„ํ–‰ํ•  ์ง€ ๊ณ„ํšํ•ด๋ณด๋ ค ํ•œ๋‹ค.

์„ ์–ธ์ ์œผ๋กœ ๋กœ๊ทธ์ธ ํ•„์š”ํ™”๋ฉด ๋‹ค๋ฃจ๊ธฐ

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

React์˜ Protected Route์ฒ˜๋Ÿผ RN์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•ด๋ณด๋ ค ํ•œ๋‹ค.

์ง„์ž…์ ์— ๋Œ€ํ•œ ๋ถ„๊ธฐ๋ฌธ ๋œ์–ด๋‚ด๊ธฐ

์—๋Ÿฌ๋ฐ”์šด๋”๋ฆฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•ด๋‹น ํ™”๋ฉด์— ์ง„์ž…ํ•œ ์ง„์ž…์ ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„ํ˜น๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณตํ†ต ํœด๋Œ€ํฐ ์ธ์ฆํ™”๋ฉด์ด ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด ๊ณ ๊ฐ ํ™ˆ์—์„œ ๋“ค์–ด์™”์„ ๊ฒฝ์šฐ์—๋Š” ์ธ์ฆ ์‹คํŒจ์‹œ ๊ณ ๊ฐํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๋ฉด, ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ง„์ž…ํ•œ ๊ฒฝ์šฐ์—๋Š” ํ† ์ŠคํŠธ๋ฅผ ๋„์›Œ์ค„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ง„์ž…์ ๋งˆ๋‹ค ๋‹ฌ๋ผ์ง€๋Š” ์ฝ”๋“œ๊ฐ€ ํ•ด๋‹น ํ™”๋ฉด์— ์กด์žฌํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ ๋‘๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋จผ์ € ํ•ด๋‹น ์ง„์ž…์ ์˜ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋Œ€์ฒ˜๊ฐ€ ์–ด๋ ต๋‹ค. ๋งŒ์•ฝ ์ง„์ž…์ ์˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ํ•ด๋‹น ํ™”๋ฉด์ด ์ œ๊ฑฐ๋˜์—ˆ์„ ๋•Œ์—๋„ ๋ถ„๊ธฐ๋ฌธ์ด ์ง„์ž…์  ์ด๋ฆ„์— ๋”ฐ๋ผ๋งŒ ์ •์˜๋˜๊ณ  ์žˆ์–ด์„œ ํ•ด๋‹น ์ผ€์ด์Šค๊ฐ€ ์ œ๊ฑฐ/๋ณ€๊ฒฝ์— ๋ˆ„๋ฝ๋˜๋Š” ์ผ€์ด์Šค๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‘๋ฒˆ์จฐ๋กœ๋Š” ์ง„์ž…์ ์— ๋”ฐ๋ผ ํ•ด๋‹น ํ™”๋ฉด ๋‚ด๋ถ€ ์ฝ”๋“œ๊ฐ€ ๋ถ„๊ธฐ๋ฌธ์œผ๋กœ ์ธํ•ด ๋ณต์žกํ•ด์ง„๋‹ค. ๋งŒ์•ฝ ์•ž์„  ์˜ˆ์ œ์ฒ˜๋Ÿผ ์ธ์ฆ ์‹คํŒจ์‹œ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ •์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ํ•ด๋‹น ์‹คํŒจ๋ฅผ ์œ„ํ•œ callback์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒŒ ๋” ์ข‹์€ ์ฝ”๋“œ์ด์ง€ ์•Š์„๊นŒ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

์ด๋ถ€๋ถ„๋„ ์ •๋ฆฌํ•ด์„œ ์ฃผ๊ฐ„ ๋ฏธํŒ…์— ๊ณต์œ ํ•ด๋ณด๋ ค ํ•œ๋‹ค.

React ๋ถ„์„ํ•ด๋ณด๊ธฐ

๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์€ 2์›”๋ถ€ํ„ฐ ๊ณ„์†ํ•ด์„œ ๋งค์ผ ๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์˜ ํ•œ์ฑ•ํ„ฐ์”ฉ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์žˆ๋‹ค. ์ด์ œ ๊ฑฐ์˜ ๋งˆ๋ฌด๋ฆฌ๋˜์–ด์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋ฆฌ์•กํŠธ ๋‚ด๋ถ€ ์ฝ”๋“œ๋“ค์„ ๊นŒ๋ณด๋ฉด์„œ ๊ฐ ์š”์†Œ๊ฐ€ ์ง์ ‘ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๋ฆฌ์•กํŠธ์˜ ํŠน์ง•์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๋ ค ํ•œ๋‹ค.

๋ฆฌ์•กํŠธ์— ๋Œ€ํ•ด ๋” ์ž˜ ์ดํ•ดํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ, ์ •๋ง ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ, ์–ด๋–ค ์ฝ”๋“œ๊ฐ€ ์ข‹์€ ์ฝ”๋“œ์ธ์ง€ ์ดํ•ดํ•˜๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์— ๋Œ€ํ•œ ์ •๋ฆฌ
๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์— ๋Œ€ํ•œ ์ •๋ฆฌ

๐Ÿ“š ๋งˆ์น˜๋ฉฐ

์ด๋ฒˆ ํšŒ๊ณ ๋Š” 3์›” ํšŒ๊ณ ๋•Œ ํ–ˆ๋˜ ๋‹ค์ง๋“ค์„ ์ž˜ ์ง€์ผฐ๋Š”์ง€, ์ƒˆ๋กœ์šด ๊ณ ๋ฏผ์„ ์‹œ์ž‘ํ•œ ์ผ๊ฐ๋“ค์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๋ง๋งŒ ํ•˜๊ณ  ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋งค๋‹ฌ ํšŒ๊ณ ๋ฅผ ์ด์ „ ๋‹ฌ์˜ ๋‹ค์ง๊ณผ ๋น„๊ตํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋งค๋‹ฌ ์“ฐ๊ณ  ์žˆ์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋‚ด๊ฐ€ ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€์ง€, ์–ด๋–ค ๋ถ€๋ถ„์„ ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ค ๋ถ€๋ถ„์„ ๋” ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

5์›”์€ ์‰ฌ๋Š” ๋‚ ์ด ๋งŽ๋‹ค. ์ด๊ฒƒ์„ ๊ธฐํšŒ๋กœ ๋” ๋งŽ์ด ๊ฐœ์ธ๊ณต๋ถ€๋ฅผ ๋งŽ์ด ๋Š˜๋ ค์„œ ํšŒ์‚ฌ์—์„œ ๋” ๋งŽ์€ ๊ฒƒ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋กœ ๋‚˜์•„๊ฐ€๋Š” ํ•œ๋‹ฌ์ด ๋˜๊ธธ ๋ฐ”๋ผ๋ณธ๋‹ค.

@Troy
๋งค์ผ์˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฐœ๋ฐœ์ผ์ง€์ž…๋‹ˆ๋‹ค.