๐Ÿง‘โ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” 4์ฃผ์ฐจ

๐Ÿง‘โ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” 4์ฃผ์ฐจ

์ด์ „ ๊ธ€ ๐Ÿง‘โ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” 3์ฃผ์ฐจ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ.

๐Ÿ‘€ ์˜ค๋Š˜์˜ ํ•  ์ผ

  • ๐Ÿคฆโ€โ™‚๏ธ react-native VS Swift
  • ๐Ÿ‘จโ€๐Ÿ’ป ์„ ํƒํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ
technical_problem
์ฒซ ๋‹ค๊ณผ

์˜ค๋Š˜๋ถ€ํ„ฐ ์‚ฌ์—…๋‹จ์—์„œ ์ฟ ํฐ์„ ๋‚˜๋ˆ„์–ด์ค˜ ๋‹ค๊ณผ๋ฅผ ๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.


๐Ÿคฆโ€โ™‚๏ธ react-native VS Swift

๊ทธ๊ฐ„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‹œ๋„๋ฅผ ํ•ด๋ณด๋ฉด์„œ ์–ด์ฉŒ๋‹ค๋ณด๋‹ˆ react-native์™€ Swift๋กœ ์•ฑ์„ ๋ชจ๋‘ ๋นŒ๋“œํ•ด๋ณด๊ฒŒ ๋˜๋ฉด์„œ ๋‘ ๋ฐฉ์‹ ์‚ฌ์ด์—์„œ ๊ณ ๋ฏผ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. react-native์˜ ์žฅ์ ์€ iOS์™€ android ๋ชจ๋‘ ์—์„œ ์ž‘๋™ํ•˜๋„๋ก ๋‹จ์ผ ์–ธ์–ด์ธ JavaScript๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๊ณ , react๋ฅผ ์‚ฌ์šฉํ•ด ๋งŒ๋“  ์›น๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ณด์—ฌ์ฃผ๊ธฐ์— ์ ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›น๊ณผ ์•ฑ์›น์„ ํ•จ๊ป˜ ๋งŒ๋“ ๋‹ค๋ฉด ์•„์ฃผ ์ข‹๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์—ˆ์ง€๋งŒ, iOS์˜ ์ฝ”์–ดํ•œ ๊ธฐ๋Šฅ๋“ค์˜ ์‚ฌ์šฉ์— ์ œ์•ฝ์ด ์žˆ์—ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด ์นด๋ฉ”๋ผ, ๋งˆ์ดํฌ ๋“ฑ์˜ ์‚ฌ์šฉ์— ์žˆ์–ด์„œ ์ œํ•œ์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ xcode์—์„œ ์ œ๊ณตํ•˜๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ชจ๋‘ ์ง์ ‘ ์ •์˜ํ•ด์ค˜์•ผํ•œ๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ์—ˆ๋‹ค. ์›น์„ ๊ณต๋ถ€ํ•ด๋ณธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋ถˆํŽธํ•จ์ด ์—†๊ฒ ์ง€๋งŒ, ๋‚˜๋Š” ์ด์ „์— JavaScript๋‚˜ ์›น์„ ๊ณต๋ถ€ํ•ด๋ณธ์ ์ด ์—†์—ˆ๊ณ , ์•ฑ ๊ฐœ๋ฐœ ๋˜ํ•œ ์ด๋ฒˆ ๋ฐฉํ•™ iOS๋กœ ์ž…๋ฌธํ•œ ์ƒํ™ฉ์ด์—ˆ๊ธฐ์— ์–ด๋–ค ๋ฐฉ์‹์„ ์„ ํƒํ•ด์„œ ๋” ๊ณต๋ถ€ํ•ด๋ณด์•„์•ผํ• ์ง€ ๊ณ ๋ฏผ์ด๋˜์—ˆ๋‹ค. ๊ด€๋ จํ•ด์„œ ๊ตฌ๊ธ€์„ ํ†ตํ•ด ์ฐพ์•„๋ณด๋˜ ์ค‘ ์ด๊ณณ์—์„œ react-native์™€ Swift๊ฐ„์˜ ์—ฐ๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์ฐพ์•˜๊ณ , ์ด๊ณณ์—์„œ Swift์™€ react-native๋ฅผ ๋น„๊ตํ•œ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด๋ฉฐ ์ผ๋‹จ์€ Swift๋ฅผ ๋” ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•ด ์•ฑ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๋ฅผ ๊ฐ–์ถ”๊ณ , ์›น์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ react์™€ react-native ๊ทธ๋ฆฌ๊ณ  JavaScript๋ฅผ ํ•จ๊นจ ๊ณต๋ถ€ํ•˜๋Š”ํŽธ์ด ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ๋™์•ˆ ์ง‘์ค‘ํ•˜์ง€ ๋ชปํ–ˆ๋˜ Swift๊ณต๋ถ€์— ๋” ์ง‘์ค‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ’ป ์„ ํƒํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ

์ด์ „์— App Development With Swift ๋ฅผ ์ด์šฉํ•ด ๊ณต๋ถ€ํ•˜๋˜๊ฒƒ์— ์ด์–ด์„œ ๊ณ„์† ๊ณต๋ถ€ํ•œ๋‹ค.

Stack View

์•ฑ์˜ View์—์„œ ์—ฌ๋Ÿฌ Label์„ ๋ณด์—ฌ์ค„ ๋•Œ ์—ฌ๋Ÿฌ๊ฐœ์˜ Label์„ ๊ฐ€์ ธ์™€ ๊ฐ๊ฐ Constraints๋ฅผ ์ ์šฉํ•ด์ฃผ๋Š” ๊ฒƒ ๋ณด๋‹ค Stack View๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ์š”์†Œ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š”ํŽธ์ด ๊ด€๋ฆฌ ์ˆ˜์ •์— ์žˆ์–ด์„œ ์œ ๋ฆฌํ•˜๋‹ค. ์—ฌ๋Ÿฌ Label๋“ค์„ ์„ ํƒํ•˜์—ฌ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ์„ ํ†ตํ•ด Stack View๋กœ ํ†ตํ•ฉํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

Vary Traits

iOS๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์ƒ์—์„œ ๋™์ž‘ํ•œ๋‹ค. ๋‹ค์–‘ํ•œ iPhone๊ณผ iPad๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ™”๋ฉด ๋น„์œจ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ์ ๋‹นํ•œ View๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ View๋ฅผ ๋ณด์—ฌ์ฃผ์–ด์•ผํ•œ๋‹ค. xcode๋Š” ์•ฑ์„ ์—ฌ๋Ÿฌ ๋ฒ„์ „์œผ๋กœ ๋นŒ๋“œํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€ ๋Œ€์‹ , Vary Traits๋ผ๋Š”๊ฒƒ์„ ์ œ๊ณตํ•œ๋‹ค. iOS๊ธฐ๊ธฐ์—์„œ ํ™”๋ฉด์˜ ๋น„์œจ์€ compect์™€ regular๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค. iPhone11 ๊ธฐ์ค€ ๊ฐ€๋กœ๋Š” compect, ์ƒˆ๋กœ๋Š” regular์ด๊ณ , iPad Pro 9.7 ๊ธฐ์ค€์œผ๋กœ๋Š” ๊ฐ€๋กœ์™€ ์ƒˆ๋กœ ๋ชจ๋‘ regular์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•œ ์˜ต์…˜๋“ค์„ compect์™€ regular์กฐ๊ฑด์„ ํ†ตํ•ด ๋ณ€ํ™”๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค. spacing์˜ ๊ฒฝ์šฐ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์—ฌ๋Ÿฌ Label๋“ค์„ Stack์•ˆ์— ๋„ฃ์—ˆ์„ ๋•Œ ๊ฐ Label๊ฐ„์˜ ์‚ฌ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์ •์˜ํ•˜๋Š” ์†์„ฑ์ธ๋ฐ, ์ด๋ฅผ ํ™”๋ฉด ๋น„์œจ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ •์˜ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

vary traits 1
iPhone11๊ณผ iPad Pro 9.7` ์—์„œ ๋‹ค๋ฅธ Label๊ฐ„ ๊ฑฐ๋ฆฌ๊ฐ€ ์ ์šฉ๋๋‹ค.

Installed

Vary Traits์—์„œ ํ™”๋ฉด๋น„์œจ์— ๋”ฐ๋ผ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•ด์คฌ๋“ฏ์ด, ํ™”๋ฉด ๋น„์œจ์— ๋”ฐ๋ผ ์š”์†Œ๊ฐ€ ๋ณด์—ฌ์งˆ์ง€ ๋ณด์—ฌ์ง€์ง€ ์•Š์„์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

vary traits 2
iPhone11์˜ View ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์š”์†Œ๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ๋„ ์‚ฌ๋ผ์ง€๊ธฐ๋„ ํ•œ๋‹ค.

View Hierarchy

์•ฑ์˜ debugging ์‹œ์— View๋ฅผ ๊ณ„์ธต๋ณ„๋กœ ๋ถ„๋ฆฌํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ฑ์— ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์ด ์ถ”๊ฐ€๋˜๊ณ  ๋ณต์žกํ•ด์งˆ ์ˆ˜๋ก ์ค‘์š”ํ•˜๋‹ค.

view hierarchy
๋””๋ฒ„๊ทธ์‹œ์— ๊ณ„์ธต๋ณ„๋กœ View๋ฅผ ๋ถ„๋ฆฌํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ๊ธ€ ๐Ÿง‘โ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” 5์ฃผ์ฐจ๋ณด๋Ÿฌ๊ฐ€๊ธฐ.

Share: Twitter Facebook
Seunghun Yang's Picture

About Seunghun Yang

Seunghun is undergraduate student at Computer Science Engineering in CNU(Chungnam National University).

Daejeon, South Korea

Comments