[Swift] .xcconfig ํŒŒ์ผ๋กœ api key ์ €์žฅํ•˜๊ธฐ
ยท
๐ŸŽ iOS
react์—์„œ๋Š” .env ํŒŒ์ผ๋กœ api key์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ, swift์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค.์—ด์‹ฌํžˆ ์„œ์น˜ํ•˜๋˜ ์ค‘, .xcconfig ํŒŒ์ผ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.  .xcconfig๊ฐ€ ๋ญ”๋ฐ?Xcode Configuration์˜ ์ค„์ž„๋ง๋กœ, ํ”„๋กœ์ ํŠธ์˜ ๋‹ค์–‘ํ•œ ์„ค์ •์„ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋นŒ๋“œ ์„ค์ •์„ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ๋ถ„๋ฆฌํ•˜๊ณ , ํ”„๋กœ์ ํŠธ ๋‚ด์˜ ์„ค์ •์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.  1. ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ๋จผ์ € ์ด๋ ‡๊ฒŒ Configuration Setting File์„ ํ†ตํ•ด .xcconfig ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.๋‚˜๋Š” Config.xcconfig๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์คฌ๋‹ค.  ๊ทธ ๋‹ค์Œ,ํ”„๋กœ์ ํŠธ์— ํ•ด๋‹น ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.ํ”„๋กœ์ ํŠธ -> Info..
[iOS][CN] UserDefaults ์‚ฌ์šฉํ•˜๊ธฐ
ยท
๐ŸŽ iOS
๋„์ ๋„์  (์ด ๋‚ด์šฉ์€ ๋„˜๊ฒจ๋„ ๋ผ์š”)์•„์ฃผ ์˜ค๋ž˜ ์ „์—, iOS์˜ ๋ฐฐํฌ ๊ณผ์ •์ด ๊ถ๊ธˆํ•˜์—ฌ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์•ฑ์„ ์ถœ์‹œํ•ด ๋ณธ ์ ์ด ์žˆ๋‹ค.์ตœ๊ทผ ํฌํด ์ •๋ฆฌ๋„ ํ• ๊ฒธ ์• ํ”Œ ๊ฐœ๋ฐœ์ž ๊ณ„์ •์— ๋“ค์–ด๊ฐ”๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์•ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.์ •๋ง ๊ธฐ๋ณธ ์ค‘์— ๊ธฐ๋ณธ์ด์—ˆ๋˜ ์•ฑ์ธ๋ฐ, ์ด๋ ‡๊ฒŒ๋‚˜ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋‹ค๋‹ˆ,,(๊ทผ๋ฐ ์•„๋ฌด๋„ ๋ฆฌ๋ทฐ๋ฅผ ๋‹ฌ์ง€ ์•Š์•„ ์•„๋ฌด๋Ÿฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š”,,,)์•„์ง ๋ถ„์„ ๋ถ€๋ถ„์„ ๋ณด๋Š” ๋ฐฉ๋ฒ•๋„ ๋ชจ๋ฅด์ง€๋งŒ.. (ํ‰๊ท  ์œ ์ง€์œจ์ด ๋ฐ์ดํ„ฐ ๋ถ€์กฑ์ด๋ฉด ์•„๋ฌด๋„ ์œ ์ง€ ์•ˆํ•˜๋Š”๊ฑด๊ฐ€ ํ˜น์‹œ) ๊ทธ๋ž˜๋„ ๋ˆ„๊ตฐ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋‹ˆ์•„์ง ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ์•ฑ์— ๊พธ์ค€ํžˆ ์‹œ๊ฐ„์„ ์Ÿ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๊ณ ์ž,, ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒฐ์‹ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.์ž์ž ๊ทธ๋Ÿผ ์ด์ œ UserDefaults์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž !!  UserDefaults ์–ธ์ œ ์‚ฌ์šฉํ•˜๋‚˜?๋‚˜๋Š”, ํ–…ํ‹ฑ ๊ธฐ๋Šฅ์„..
[iOS] UIButton ๋ฒ„ํŠผ ๋‚ด ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ
ยท
๐ŸŽ iOS
๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ๋ฒ„ํŠผ ์•ˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ณ  ์‹ถ์€๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.์ด ๋ฌธ์ œ๋Š” ์ด์ „์— ํ•ด๊ฒฐํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ๊ธฐ์–ต์ด ๋‚˜์งˆ ์•Š์•˜๋‹ค. ์•ž์œผ๋กœ ๋น„์Šทํ•œ ์ƒํ™ฉ์„ ๋งˆ์ฃผํ–ˆ์„ ๋•Œ ์ฐพ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•œ๋‹ค!! ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ € extension์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.import UIKitextension UIImage { func resize(targetSize: CGSize) -> UIImage? { let rect = CGRect(origin: .zero, size: targetSize) UIGraphicsBeginImageContextWithOptions(targetSize, false, 0.0) self.draw..
[iOS] tableView ์…€ ์•„๋ž˜ ๊ตฌ๋ถ„์„  ์—†์• ๊ธฐ
ยท
๐ŸŽ iOS
๊ฐœ๋ฐœ์„ ํ•˜๋˜ ์ค‘, ํ…Œ์ด๋ธ” ๋ทฐ ์•„๋ž˜ ์ž๊พธ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ๋ถ„์„ ์ด ์ƒ๊ธฐ๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค. limitTableView.separatorStyle = .none ๊ทธ๋Ÿด ๋•Œ๋Š” ์ด๋ ‡๊ฒŒ ๊ตฌ๋ถ„ ์Šคํƒ€์ผ์„ .none์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค.  ์ด์ œ ์ด๋ ‡๊ฒŒ ๊ตฌ๋ถ„์„ ์ด ์‚ฌ๋ผ์ง„ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค !
[์ปด๋„ค] Ch2.1.1 - 2.1.5 ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›๋ฆฌ 1
ยท
๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
2.1 ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›๋ฆฌCreating a network appsoftware ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, application ๊ตฌ์กฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ค๊ณ„ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์ข…๋‹จ ์‹œ์Šคํ…œ์—์„œ ์–ด๋–ป๊ฒŒ ์กฐ์ง๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค.์ด๋Ÿฌํ•œ application ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.Client - server ๊ตฌ์กฐP2P ๊ตฌ์กฐClient-server paradigmServerํ•ญ์ƒ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜๊ณ , Client๋ผ๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋“ค๋กœ๋ถ€ํ„ฐ ์„œ๋น„์Šค ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค.์„œ๋ฒ„๋Š” ์ž˜ ์•Œ๋ ค์ง„ ๊ณ ์ • IP ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š”๋‹ค. (permanent IP address - not change)์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์— ๋” ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ๋งŽ์€ ์ˆ˜์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ–์ถ˜ data c..