๋ชฉ๋ก์ „์ฒด ๊ธ€ (67)

Focus On Develop ๐ŸคŸ๐ŸคŸ

[๋ชจ๋Œ€๋„“์–•] yarn๊ณผ npm ํ†บ์•„๋ณด๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”~! ๐Ÿ‘‹ ์ตœ๊ทผ์— ReactNative์™€ ์•ˆ๋“œ๋กœ์ด๋“œ๊นŒ์ง€ ๊ฐœ๋ฐœํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ์–ด์š”! ๊ทธ๋Ÿฐ๋ฐ ์•„๋ฌด๋ž˜๋„ ์ €๋Š” iOS๊ฐœ๋ฐœ์ž๋‹ค๋ณด๋‹ˆ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•˜๊ฒ ์ฃ  ใ… .ใ…  ๊ทธ๋ž˜๋„ ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒจ์„œ ์—ด์‹ฌํžˆ ํ•ด๋ณด๋ ค๊ณ ์š”!! ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„.. ๋ชจ๋Œ€๋„“์–• ์ด๋ผ๊ณ  ์ง€์–ด๋ดค๋Š”๋ฐ์š”! ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ ๋Œ€ํ™”๋ฅผ ์œ„ํ•œ ๋„“๊ณ  ์–•์€ ์ง€์‹ ์ด๋ผ๋Š” ์˜๋ฏธ์—์šง ใ…‹ใ…‹ใ…‹ใ…‹ ๐ŸคŸ ๋ธ”๋กœ๊ทธ๋Š” ์•ž์œผ๋กœ๋„ ์—ฌ์ „ํžˆ iOS์— ๊ด€ํ•œ ํฌ์ŠคํŒ…์ด ๋ฉ”์ธ์ด ๋˜๊ฒ ์ง€๋งŒ, ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ ReactNative์— ๊ด€๋ จ๋œ ํฌ์ŠคํŒ…๋„ ์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ ์ข…์ข… ์ƒ๊ธธ ๊ฒƒ ๊ฐ™์•„์š”! ์•„๋ฌดํŠผ ์ฒ˜์Œ์— ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์„ธํŒ…ํ•˜๊ณ , Package Dependency๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ•ด์•ผ ํ•˜๋Š”๋ฐ์š”! ์ œ๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ์€ yarn..

๊ณตํ†ต/FrontEnd 2022. 10. 11. 23:16
[Xcode] Xcode 14์—์„œ pod init์‹œ ์—๋Ÿฌํ•ด๊ฒฐ

์•ˆ๋…•ํ•˜์„ธ์š”~~~! ๐Ÿ‘‹ ์ด๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณผ๊ฑด๋ฐ cocoa pods์œผ๋กœ dependency๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๊ณ  ํ•ด์š”! Xcode 14๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ–ˆ์–ด์š”. ๊ทธ๋Ÿฐ๋ฐ ํ‰์†Œ์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์—์„œ pod init์„ ํ–ˆ์ง€๋งŒ.. ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์–ด์š”! ์–ด์ฉŒ๊ณ  ์ €์ฉŒ๊ณ ... [Xcodeproj] Unknown object version (56). (RuntimeError) ์–ด์ฉŒ๊ณ  ์ €์ฉŒ๊ณ ... ์Œ... ์›์ธ์€ ์ •ํ™•ํžˆ ์ฐพ์•„๋‚ด์ง€ ๋ชปํ–ˆ์–ด์š”! ใ… ใ…  ์ถ”์ธกํ•˜๋Š” ๋ฐ”๋กœ๋Š” ์—๋Ÿฌ ๋‚ด์šฉ ๊ทธ๋Œ€๋กœ "cocoa pods์—์„œ Xcod 14์— ๋Œ€ํ•ด ์•„์ง ์™„๋ฒฝํžˆ ๋Œ€์‘์ด ๋˜์ง€ ์•Š์•˜๋‹ค" ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์–ด์š”! ํ˜น์‹œ ์ด ์—๋Ÿฌ์˜ ์›์ธ์„ ์•„์‹œ๊ฑฐ๋‚˜ ๋” ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์œผ์‹  ๋ถ„์€ ๋Œ“๊ธ€๋กœ ๊ณต์œ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ™ ์•„๋ฌดํŠผ ์ €์˜ ..

[Swift] Realm ํŒŒ์ผ ๊ฒฝ๋กœํ™•์ธ

์•ˆ๋…•ํ•˜์„ธ์š”~~~๐Ÿ‘‹ ์ง„์งœ ์ง„์งœ ์˜ค๋žœ๋งŒ์— ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์•„์š” ใ…Žใ…Žใ…Žใ…Ž ์˜ค๋žœ๋งŒ์— ๊ธ€์„ ์“ฐ๋ ค๋‹ˆ ๋ฌด์Šจ ๋‚ด์šฉ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์จ์•ผํ• ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์–ด์š”!! ๊ณต๋ถ€ํ•˜๊ณ  ๊ฐœ๋ฐœํ•ด์˜ค๋ฉด์„œ ๋‚˜์ค‘์— ์ด๋Ÿฐ ๋‚ด์šฉ๋„ ์จ์•ผ๊ฒ ๋‹ค~ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค~ ํ–ˆ๋Š”๋ฐ ์Œ“์ด๋‹ค๊ฐ€ ์žŠํ˜€์กŒ์–ด์š”..... ๊ทธ๋ž˜๋„ ๋‹ค์‹œ ๋งˆ์Œ์„ ์žก๊ณ  ๊ธฐ์–ต์„ ๋”๋“ฌ์–ด ์ฐจ๊ทผ์ฐจ๊ทผ ์“ฐ๋ ค๊ณ  ํ•ด๋ณผ๊ฑฐ์—์š”! ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์–ด์š”! ์ผ๋ฐ˜์ ์œผ๋กœ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ• ํ…๋ฐ, ์„œ๋ฒ„์— ์ €์žฅ์„ ํ•  ์ˆ˜๋„, ๋กœ์ปฌ์— ์ €์žฅ์„ ํ•  ์ˆ˜๋„ ์žˆ์ฃ ? ๋กœ์ปฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์ค‘์—์„œ๋„ Realm์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ณ ์š”! (TMI) Realm์„ ๋ ๋ฆ„, ๋ ˜ ์–ด๋–ป๊ฒŒ ์ฝ์–ด์•ผ ํ•˜๋Š”์ง€ ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ.. Realm ๊ฐœ๋ฐœ ๋‹ด๋‹น์ž๊ฐ€ "๋ ˜" ์ด๋ผ๊ณ  ์ฝ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ ์š”! ์ „ํ•ด ๋“ค์€ ์ด์•ผ๊ธฐ์—์š”..

[Mobile App] ์•ฑ์Šคํ† ์–ด Review Bot ์ ์šฉ๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”~~ ๊ธ€ ์“ธ๋•Œ๋งˆ๋‹ค ์˜ค๋žœ๋งŒ..^^ ์ด๋ผ๋Š” ๋ง๋กœ ์‹œ์ž‘์„ ํ•˜๊ฒŒ ๋˜๋„ค์š” ใ…Žใ…Žใ…Žใ…Žใ…Žใ…Ž ๋‚ด ์ž์‹ ..๋ฐ˜์„ฑํ•ฉ๋‹ˆ๋‹ค ใ…Žใ…Ž ๊ทธ๋™์•ˆ ์“ฐ๊ณ  ์‹ถ์€ ์ฃผ์ œ๋Š” ๋งŽ์ด ๋ชจ์•„๋‘ฌ์„œ ์—„์ฒญ ์Œ“์—ฌ์žˆ๋Š”๋ฐ ๋ง‰์ƒ ์“ธ ์‹œ๊ฐ„์ด ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”!! (๊ท€์ฐฎ์•„์„œ ์•ˆ์“ด๊ฑฐ์ž–์•„. ํ•ฉ๋ฆฌํ™” ํ•˜์ง€๋งˆ ๋‚˜ ์ž์‹ .. ๐Ÿ‘Š ๐Ÿ‘Š ) ์ฝ”๋กœ๋‚˜๋กœ ์ธํ•ด์„œ, ๋น„๋Œ€๋ฉด ๋ผ์ดํ”„์Šคํƒ€์ผ์ด ์—„์ฒญ ํ™œ์„ฑํ™”๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ์ง€๊ธˆ์€ ๋‹น์—ฐํ•ด์กŒ์ž–์•„์š”~ ๊ทธ๋Ÿฌ๋ฉด์„œ ๊ต‰~์žฅํžˆ ๋ณดํŽธ์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ํ˜‘์—… ํˆด์ด Slack์ด์ฃ ~? ์ €ํฌ๋„ Slack์„ ์‚ฌ์šฉํ•œ๋‹ต๋‹ˆ๋‹ค!! ๊ทผ๋ฐ ์ด Slack์˜ ๊ฐ•์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•œ App๋“ค์„ ์ง€์›ํ•ด์ค€๋‹ค๋Š” ์ ์ธ ๊ฒƒ ๊ฐ™์•„์š”! ๊ทธ ๋‹ค์–‘ํ•œ App์ค‘์— Review Bot์ด๋ผ๋Š” ์นœ๊ตฌ๋Š”, Google Playstore, AppStore์— ๋ฆฌ๋ทฐ๊ฐ€ ๋‹ฌ๋ฆฌ๋ฉด Slack์œผ๋กœ ์•Œ๋ฆผํ•ด์ฃผ๋Š” App์ด์—์š”. ..

[Swift] UITextField ํ•œ๊ธ€ ๊ธ€์ž์ˆ˜ ์ œํ•œ

์ด๋ฒˆ ํฌ์ŠคํŒ…์€ UITextField์— ํ•œ๊ธ€์ž…๋ ฅ์‹œ ๊ธ€์ž์ˆ˜ ์ œํ•œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค! ์ด๋ฒˆ์— ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ธ€์ž์ˆ˜ ์ œํ•œ์ด ์žˆ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์„ ๋„ฃ๊ฒŒ ๋๋Š”๋ฐ, ์˜์–ด๋‚˜ ์ด๋ชจ์ง€๋กœ๋Š” ๊ธ€์ž์ˆ˜ ์ œํ•œ์ด ์ž˜ ๋™์ž‘ํ–ˆ๋Š”๋ฐ, ํ•œ๊ธ€ ์ž…๋ ฅ์‹œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋”๋ผ๊ตฌ์š” ๐Ÿ˜ญ ์˜ˆ๋ฅผ๋“ค๋ฉด 5์ž ์ œํ•œ์ด๋ผ๊ณ  ํ• ๋•Œ "๊ฐ€๋‚˜๋‹ค๋ผใ…" ์ด๋ ‡๊ฒŒ "ใ…"๋ฅผ ์น˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๊ฑฐ๋‚˜, "๊ฐ€๋‚˜๋‹ค๋ผ๋ง˜"์„ ์น˜๊ณ  ์‹ถ์€๋ฐ "๊ฐ€๋‚˜๋‹ค๋ผ๋งˆ"+"ใ…"์ด ์ž…๋ ฅ์ด ์•ˆ๋˜๊ฑฐ๋‚˜, "๊ฐ€๋‚˜๋‹ค๋ผ๋งˆ"์—์„œ ๊ณ„์† ํƒ€์ดํ•‘์‹œ "๋งˆ" ๋ถ€๋ถ„์— ํƒ€์ดํ•‘ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ๊ณ„์† ์ž…๋ ฅ๋˜๊ฑฐ๋‚˜ ใ… ใ…  ๊ทธ๋ž˜์„œ ๊ฒช์—ˆ๋˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ์ž‘์„ฑํ•ด๋‘๋ ค๊ณ  ํ•ด์š”!! ์•„๋งˆ ์ด ๊ธ€์€ ๋น„์ธ๊ธฐ ๊ธ€์ด๋ผ์„œ ใ…Žใ…Ž ๋ˆ„๊ตฌ์—๊ฒŒ ๋…ธ์ถœ์ด ๋ ์ง€ ์‚ฌ์‹ค ์ž˜๋ชจ๋ฅด๊ฒ ์ง€๋งŒ.. ์ด๊นŒ์ง€ ์˜ค์…จ๋‹ค๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ๋ณธ์  ๋งŽ์œผ์‹ค๊ฑฐ์—์š”! ๊ตฌ๊ธ€๋งํ•ด๋ณด๋ฉด TextFi..

[Swift] Error Handling

์ด๋ฒˆ์—๋Š” ์ •๋ง ์˜ค๋žœ๋งŒ์— ๊ธ€์„ ์“ฐ๋„ค์š”~~ ใ…Žใ…Ž ๊ทธ๋™์•ˆ ์žˆ์—ˆ๋˜ Big Event๋Š” ์†Œ์†Œํ•œ ์ผ์ƒ ๋ธ”๋กœ๊ทธ์— ํฌ์ŠคํŒ…ํ•˜๋‹ˆ ๊ถ๊ธˆํ•˜์‹  ๋ถ„(?)์€ ๋†€๋Ÿฌ์˜ค์„ธ์š”~!! ๐Ÿ™ ์˜ค๋Š˜์€ Swift์—์„œ Error๋ฅผ ์–ด๋–ป๊ฒŒ Handlingํ•˜๋ฉด ๋˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณผ๊ฑฐ์—์š”. "๊ทผ๋ฐ Error Handling์ด ๋ญ”๋ฐ~?" ๋ง ๊ทธ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ, ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊ฑด์ง€~? ๋ผ๊ณ  ํ•ด์„ํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์•„์š”! ๊ตฌ๊ตฌ์ ˆ์ ˆ ์„ค๋ช…๋ณด๋‹ค๋Š”.. ์—ญ์‹œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋ณผ๊ฒŒ์š”! enum CustomError: Error { case invalidUrl case urlEmpty case other } ๋จผ์ € Custom ํƒ€์ž…์œผ๋กœ Error๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”. ์ด๋Ÿฐ ์—๋Ÿฌํƒ€์ž…์€ ์›ํ•˜๋Š”๋Œ€๋กœ ์ง€์ •ํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์›ํ•˜๋Š” ๋งŒํผ case๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ์–ด์š”~!..

[Swift] Bento #1. iPhone ์—ฐ๋ฝ์ฒ˜ ๊ฐ€์ ธ์˜ค๊ธฐ

ใ…Žใ…Ž ๋˜ ์˜ค๋žœ๋งŒ์— ๊ธ€์„ ์จ๋ด…๋‹ˆ๋‹ค~~ ์•ž์œผ๋กœ ์ข…์ข… ์—ฐ๋ฝ์ฒ˜ ๊ฐ€์ ธ์˜ค๊ธฐ, ์ด๋ฉ”์ผ๋ณด๋‚ด๊ธฐ, ์ „ํ™”๊ฑธ๊ธฐ, ์•ฑ์‹คํ–‰ํ•˜๊ธฐ, ๋กœ์ปฌNoti, ๋ณด์•ˆ ๋“ฑ๋“ฑ ์•„์ดํฐ์˜ OS๊ธฐ๋Šฅ(?)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ ๋ช‡๊ฐ€์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”!! ์ด ํ•ญ๋ชฉ๋“ค์„ ๊ฐ„๋‹จํžˆ Bento ์‹œ๋ฆฌ์ฆˆ! ๋ผ๊ณ  ํ•˜๊ณ  ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š” ๐Ÿ‘‰ ์ฒซ๋ฒˆ์งธ ํฌ์ŠคํŒ…์€ ์—ฐ๋ฝ์ฒ˜ ๊ฐ€์ ธ์˜ค๊ธฐ์ž…๋‹ˆ๋‹ค! ๋จผ์ € ํœด๋Œ€ํฐ์˜ ์—ฐ๋ฝ์ฒ˜์— ์ ‘๊ทผํ•˜๋ ค๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ๊ถŒํ•œ์„ ํ—ˆ๋ฝํ•ด์•ผ ๋˜์š”!! ์•ฑ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜, ์นด๋ฉ”๋ผ๋กœ ์ฐ์œผ๋ ค๊ณ  ํ•˜๊ฑฐ๋‚˜ ๋“ฑ๋“ฑ ํ• ๋•Œ ์ด๋Ÿฐ๊ฑฐ ๋งŽ์ด ๋ณด์…จ์ฃ ~~? ์ด ๊ถŒํ•œ์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•ด, ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ํ•ด์ค๋‹ˆ๋‹ค. Info.plist์— ์ด ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”! ์ €๋Š” ์ด๋Ÿฐ ํŠน์ • ๋ชฉ์ ์„ ๊ฐ€์ง€๋Š” ๊ธฐ๋Šฅ๋“ค์„ ํ”„๋กœํ† ์ฝœ๋กœ ๋”ฐ๋กœ ์ •์˜๋ฅผ ํ•ด๋‘ฌ์š”. ์ด๋ฒˆ์—๋Š” ์—ฐ๋ฝ์ฒ˜ ๊ด€๋ จ๋œ ๋‚ด์šฉ์ด๋‹ˆ๊นŒ ContactUsable์ด๋ผ๊ณ  ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ด..