[iOS] ScreenTime API ๋ž€?
ยท
๐ŸŽ iOS
์ด์ „์— ๋™์•„๋ฆฌ์—์„œ ์ง„ํ–‰ํ•˜๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋ฆฌํŽ™ํ† ๋งํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ธฐ๋กœ ํ–ˆ๋‹ค.์ „์—๋Š” 3์ฃผ๋ผ๋Š” ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๋ชจ๋‘ ๊ตฌํ˜„์„ ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ํƒ„ํƒ„ํ•˜์ง€ ์•Š์•˜๊ณ , ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚œ์ƒ ์ฒ˜์Œ ์จ๋ณด๋Š” SwiftUi์™€ ํ˜ผ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋œฏ์–ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. SwiftUI๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋˜ ์ด์œ ๋Š”, screenTime API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋‹น์‹œ์—๋Š” Github์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ์‚ฌ์šฉํ•ด๋‘” screenTime API๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ณต๋ถ€ํ•  ์‹œ๊ฐ„์กฐ์ฐจ ์—†๋‹ค๊ณ  ๋А๊ปด์กŒ๊ธฐ์— ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ์ฑ„ ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜ํ•ด๋ฒ„๋ ธ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋‹ค์‹œ ๋” ํƒ„ํƒ„ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”๋งŒํผ, ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ณ , screenTime API ๋งˆ์Šคํ„ฐ๊ฐ€ ๋ผ์•ผ ๊ฒ ๋‹ค. ์˜ค๋Š˜์€ screenTime API๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜ํ•˜๊ธฐ์— ์•ž์„œ, ํ•ด๋‹น AP..
[iOS] debug ๋ชจ๋“œ์—์„œ release ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
ยท
๐ŸŽ iOS
์ฒ˜์Œ ๋ฐฐํฌ๋ฅผ ์ค€๋น„ํ•ด๋ณด๋Š” ๋‚˜๋Š”,,,๋””๋ฒ„๊น… ๋ชจ๋“œ์™€ ๋ฆด๋ฆฌ์ฆˆ ๋ชจ๋“œ๊ฐ€ ๋”ฐ๋กœ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ž๋‹ค. ์ˆœํƒ„ํ•˜๊ฒŒ test flight๊นŒ์ง€ ๋“ฑ๋กํ•˜๊ณ , ์„ค๋ ˆ๋Š” ๋งˆ์Œ์œผ๋กœ ์•ฑ์„ ์„ค์น˜ํ•ด ์‹คํ–‰ํ•ด๋ดค๋Š”๋ฐ์›ฌ๊ฑธ,,, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํƒญ๋ฐ”๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์•„ใ…... ์–ด์ฉŒ์ง€.. ๋ฐฐํฌ ๊ฒฝํ—˜์ด ์žˆ๋Š” ์นœ๊ตฌ์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค.๐Ÿคฏ : ํ…Œํ”Œ์— ๋“ฑ๋กํ–ˆ๋Š”๋ฐ ๊ฐœ๋ฐœํ• ๋•Œ๋ž‘ ๋‹ค๋ฅด๋ฉด ์–ด๋–กํ•ด?๐Ÿ˜ : ๋ญ˜ ์–ด๋–กํ•ด ๋‹ค์‹œ ์ˆ˜์ •ํ•ด์•ผ์ง€๐Ÿ™ : (์•„์˜ค) ์–ด๋–ป๊ฒŒ ๊ทธ๊ฑธ ์žฌํ˜„ํ•˜๋Š”๋ฐ,,๐Ÿค” : release ๋ชจ๋“œ๋กœ ๋นŒ๋“œํ•˜๋Š”๊ฑฐ ์žˆ์„๊ฑธ? flutter์—์„œ๋Š” flutter run —releaseํ•˜๋ฉด ๋˜๋˜๋ฐ ๋„ˆ๋„ค๋„ ์žˆ์„๊ฑธ? ์ด๋ ‡๊ฒŒ ์•Œ๊ฒŒ ๋œ release ๋ชจ๋“œ ๋นŒ๋“œ.. ์–ด๋–ป๊ฒŒ ํ•˜๋ƒ๋ฉด, xcode์˜ ์ƒ๋‹จ์— ์žˆ๋Š” Product ์—์„œ Scheme > Edit Scheme์„ ํ•˜๊ณ ,    Build..
[Git] ๋ธŒ๋žœ์น˜ ์ „๋žต (Git, GitHub, GitLab)
ยท
๐Ÿˆ‍โฌ› git
์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ์— ์ž‘์—… ํ•  ๋•Œ, ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ํ˜‘์—…ํ•˜๊ธฐ ์œ„ํ•ด git branch ์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์ •ํ•˜๊ณ  ์ €์žฅ์†Œ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ workflow ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ”๋กœ git branch ์ „๋žต์ด๋ผ๊ณ  ํ•œ๋‹ค.๊ฐœ๋ฐœ์„ ํ•  ๋•Œ, ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด๋‚˜ ์ˆ˜์ •์‚ฌํ•ญ์ด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ , ๋…๋ฆฝ์ ์œผ๋กœ ๋™์‹œ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋˜ํ•œ, ๊ฐ ๋ธŒ๋žœ์น˜๊ฐ€ ํŠน์ • ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ž‘์—… ๋‹จ์œ„์˜ Rollback์ด ๊ฐ€๋Šฅํ•˜๊ธฐ์— ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์˜ ์œ ์—ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.์ด๋Ÿฌํ•œ ์ „๋žต์€ ์›ํ•˜๋Š” ๋ฒ„์ „ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ์™€ ๋ฐฐํฌ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.Branch ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.1๏ธโƒฃ Git flow2๏ธโƒฃ Github Flow3๏ธโƒฃ Gitlab flow  1๏ธโƒฃ Gi..
[OS] CPU Scheduling
ยท
๐Ÿพ OS
๐Ÿ–ฅ๏ธ CPU Scheduling ์‹œ์Šคํ…œ์˜ CPU ์‚ฌ์šฉ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ Resources (CPUํฌํ•จ)๋Š” process๋“ค ์‚ฌ์ด์—์„œ ๊ณต์œ ๋œ๋‹ค. ๐Ÿ–ฅ๏ธ CPU-IO Burst Cycle ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ CPU ์‚ฌ์šฉ(bursts)๊ณผ ์ž…์ถœ๋ ฅ(I/O) ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์‚ฌ์ด๋ฅผ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ๋ฐ˜๋ณตํ•˜๋Š” ํ˜„์ƒ Types of processes I/O bound process ์ž…๋ ฅ(input)๊ณผ ์ถœ๋ ฅ(output) ์ž‘์—…์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค CPU-bound process ๊ณ„์‚ฐ์ด๋‚˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๐Ÿ–ฅ๏ธ CPU Scheduler CPU Scheduler๋Š” ready queue์—์„œ process๋ฅผ ์„ ํƒํ•˜๊ณ , CPU core๋ฅผ ..
[iOS] Main storyboard์™€ Launch storyboard ์ฐจ์ด
ยท
๐ŸŽ iOS
์ด์ œ ๊ณง ํŒŒ๋“œ์˜ 3๊ธฐ iOSํŒŒํŠธ๊ฐ€ ์‹œ์‹œ์‹œ์‹œ์ž‘์ด๋‹ค.์„ธ๋ฏธ๋‚˜๋ฅผ ์œ„ํ•ด OT ์ž๋ฃŒ๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณด๋˜ ์ค‘, ๋ฌธ๋“ ๋ˆ„๊ตฐ๊ฐ€ ์ด๋Ÿฐ ์งˆ๋ฌธ์„ ํ•˜๋ฉด ์–ด์ฉŒ์ง€ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. Main์ด๋ž‘ Lauch ์ค‘ ์–ด๋””์—์„œ ํ•ด์•ผ๋ผ์š”?๋‘˜์˜ ์ฐจ์ด๋Š” ๋ญ์ฃ ? .. ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค์ค˜์•ผ ํ•˜๊ธฐ์— ์ฐพ์•„๋ณด์•˜๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด LauchStoryboard๋Š” Android์˜ splashํ™”๋ฉด ๊ฐ™์€ ํ™”๋ฉด์ด์—ˆ๋‹ค.๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, LauchStoryboard์— ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ ! ..Launch storyboard  Main storyboard ์ด๋ ‡๊ฒŒ ๊ฐ๊ฐ์„ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด, ์•„๋งˆ Launch storyboard๋งŒ ๋ณด์—ฌ์งˆ ๊ฒƒ์ด๋‹ค. ์ด๊ฑด AppDelegate์—์„œ Launch storyboard๊ฐ€ ๋ณด์—ฌ์งˆ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ด..
[iOS] R.swift ์„ค์น˜ํ•˜๊ธฐ
ยท
๐ŸŽ iOS
์กธ์—…์ƒ ์„ ๋ฐฐ๋‹˜๊ณผ ์ง„ํ–‰ํ•˜๋Š” ์Šคํ„ฐ๋”” ์ค‘, ์ด์ œ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์ ์šฉํ•  ์‹œ์ ์ด ๋˜์—ˆ๋‹ค.๋ˆ„๊ฐ€ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์ ์šฉํ•  ๊ฒƒ์ธ์ง€ ์—ญํ•  ๋ถ„๋ฐฐ๋ฅผ ํ•˜๋Š”๋ฐ, ์•„๋ฌด๋„ ๋‚˜์„œ์ง€ ์•Š์•˜๊ณ ,๋‚˜๋Š” ์ด์ œ ๋™์•„๋ฆฌ ์ผ์ •๋„ ์–ด๋А์ •๋„ ๋๋‚˜์„œ ์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ๋น„๊ต์  ์žˆ์—ˆ๊ธฐ์— ๋‚ด๊ฐ€ ํ•˜๊ฒ ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋””์ž์ธ ์‹œ์Šคํ…œ. ๋‚ด๊ฐ€ ํ•ด์™”๋˜ ๋ฐฉ์‹๋Œ€๋กœ๋ผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.ํ•˜์ง€๋งŒ, ์Šคํ„ฐ๋”” ์žฅ ์„ ๋ฐฐ๋‹˜์€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ถ”์ฒœํ•ด์ฃผ์…จ๋‹ค.swift gem? ๋ญ๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ, ์ž˜ ๊ธฐ์–ต์ด ์•ˆ๋‚œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์˜ค๋Š˜, ์Šฌ๋ž™ DM์œผ๋กœ ๊นƒํ—ˆ๋ธŒ ๋งํฌ๋ฅผ ํ•˜๋‚˜ ๋ณด๋‚ด์ฃผ์…จ๋‹ค.ํ•œ์‹œ๊ฐ„ ๋ฐ˜์ •๋„ ์†Œ์š”ํ•˜์—ฌ ํ•œ๋ฒˆ ํ•ด๋ณด๋ผ๊ณ  ํ•˜์…จ๋‹ค.๋ญ”๊ฐ€ ๋„์ „ ๊ณผ์ œ๋ฅผ ๋ฐ›์€ ๊ฒƒ ๊ฐ™์•„์„œ ์‚ด์ง ์„ค๋ œ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ๊ณต๋ถ€ ์‹œ-์ž‘ !! https://github.com/mac-cain13/R.swift GitHub - mac-c..
[netlify] react ํ”„๋ก ํŠธ ์›น ๋ฐฐํฌํ•˜๊ธฐ
ยท
๐Ÿ’ป else
react๋กœ ๋งŒ๋“  ํ”„๋ก ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด netlify๋ฅผ ๊ฐ€์ž…ํ•˜๊ณ , ๊นƒํ—ˆ๋ธŒ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐ๋™ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ, ์ž๊พธ ์•Œ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๋“ค์ด ๋œจ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋‚˜๋Š” react๋ฅผ ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ญ˜ ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๊ฒช์—ˆ๋˜ ์‹œํ–‰์ฐฉ์˜ค๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿป build ํด๋” ์ƒ์„ฑํ•˜๊ธฐ npm run build ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ build ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ๐Ÿป Failed during stage "Reading and parsing configuration files": When resolving config: Base directory does not exist: /opt/build/repo/velog_front ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ ํ•ด๋‹น ์—๋Ÿฌ๋Š” ๋‚˜์˜ ์‹ค์ˆ˜๋กœ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์˜€๋‹ค. ๊นƒํ—ˆ๋ธŒ..
[react] ThemeProvider ์‚ฌ์šฉํ•˜๊ธฐ
ยท
๐Ÿ–ฅ๏ธ react
๐Ÿ–ฅ๏ธ ThemeProvider ? ์ง€์ •๋œ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋ชจ๋“  ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ !? ๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ThemeProvider์ด๋‹ค. React ์ปดํฌ๋„ŒํŠธ์—์„œ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ณตํ†ต theme์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ‰์ƒ๊ฐ’์€ props๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•œ๋‹ค. ๐Ÿ–ฅ๏ธ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ? 1. theme ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ํŒŒ์ผ์— ์ƒ‰์ƒ์„ ์ง€์ •ํ•œ๋‹ค. ๋‹ค์Œ์€ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ theme ์ƒ‰์ƒ์ด๋‹ค. // styles/theme.js const theme = { colors: { background: "#121212", text: "#ececec", primary: "#63e6be", primary2: "#62E6BE", white1: "#F1F..
[iOS] didSet ์ด๋ž€?
ยท
๐ŸŽ iOS
didSet์„ ์–ด์ฉŒ๋‹ค ๋งŒ๋‚˜๊ฒŒ ๋๋ƒ๋ฉด,๋‚ด๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” iOS ์Šคํ„ฐ๋””์—์„œ ๋งก์€ ํŒŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค.๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.1. ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚ ์งœ๋ฅผ ๋ฐ”๊พผ๋‹ค.2. ๋‚ ์งœ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค data filter์˜ ๊ธฐ์ค€ ๋‚ ์งœ๋ฅผ ์„ ํƒ๋œ ๋‚ ์งœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.3. ๋ฐ”๋€ filter์˜ ๋‚ ์งœ์— ๋”ฐ๋ผ ์ด์— ๋งž๊ฒŒ filtering ๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ๊ณ , ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์—์„œ ์ƒ๊ฐ๋‚œ ๊ฒƒ์€ delegate ๋ฐ–์— ์—†์—ˆ๋‹ค.ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ๋„, ํ™”๋ฉด์ด ๋‹ค์‹œ ๊ทธ๋ ค์ง€์ง€๋Š” ์•Š์•˜๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์•Œ๊ฒŒ ๋œ ๊ฒƒ์ด didSet์ด๋‹ค.      didSet์ด๋ž€๊ฐ„๋‹จํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•˜๋ฉด, ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด ์ƒˆ๋กœ ์„ค์ •๋œ ํ›„ ํ˜ธ์ถœ๋˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ฆ‰, ๊ฐ’์ด ๋ฐ”๋€Œ๊ณ  ์ด์— ๋Œ€ํ•ด ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ ค์ค˜์•ผ ํ•˜๋Š” ๋‚˜์—๊ฒŒ๋Š”..
[react] dropdown ๋งŒ๋“ค๊ธฐ (์•„์ด์ฝ˜, ๋“œ๋กญ๋‹ค์šด)
ยท
๐Ÿ–ฅ๏ธ react
์ด์ „์— react์—์„œ ์ œ๊ณตํ•˜๋Š” dropdown ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์Šคํ…€ ํ•œ ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์ด๋ฒˆ์— ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๋“œ๋กญ๋‹ค์šด์€ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ปค์Šคํ…€ํ•ด์„œ๋Š” ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ์•ฝ 20๋ถ„์ •๋„ ํ•ด๋ณด๊ณ  ์•ˆ๋˜๋‹ˆ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๊ฑด, ์•„์ด์ฝ˜์„ ๋ˆŒ๋ €์„ ๋•Œ ๋“œ๋กญ๋ฐ•์Šค๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ดค์œผ๋‚˜, ๊ตฌ๋…์„ ํ•˜๊ฑฐ๋‚˜ ๋ˆ์„ ๋‚ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ณ ๋ฏผ ๋์— ๊ทธ๋ƒฅ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋Œ€๋žต์ ์ธ ์ƒ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์•„์ด์ฝ˜ ๋ฒ„ํŠผ์„ ์ƒ์„ฑํ•œ๋‹ค. 2. ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ–ˆ์„ ๋•Œ dropdown์„ ๋ณด์—ฌ์ค€๋‹ค. 3. dropdown ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ๊ฐ list์— ๋ผ์šฐํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ด ์›ํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ์ด๋™์‹œํ‚จ๋‹ค. 1. ์•„์ด์ฝ˜ ๋ฒ„ํŠผ ์ƒ์„ฑํ•˜๊ธฐ ์ด๋ถ€๋ถ„์€ ์™„์ „ํ•œ ui ์˜์—ญ์ด๊ธฐ์— ๊ทธ๋ƒฅ ๋‚ด๊ฐ€ ..