ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๊ธฐ์‚ฌ๋‹จ์›์˜ ๋ฌด๊ธฐ - Level1

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๊ธฐ์‚ฌ๋‹จ์›์˜ ๋ฌด๊ธฐ - Level1 https://school.programmers.co.kr/learn/courses/30/lessons/136798 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr import Foundation // 1-number ๊นŒ์ง€ ์ง€์ •๋œ ์ˆซ์ž๋‚˜๋ผ ๊ธฐ์‚ฌ๋‹จ. // ๊ฐ ๊ธฐ์‚ฌ๋Š” ์ž์‹ ์˜ ์ˆซ์ž์˜ ์•ฝ์ˆ˜์˜ ๊ฐฏ์ˆ˜์— ๊ณต๊ฒฉ๋ ฅ์ด ํ•ด๋‹นํ•˜๋Š” ๋ฌด๊ธฐ๋ฅผ ๊ตฌ๋งค. // ๊ณต๋ ฅ๋ ฅ์€ limit ์žˆ์Œ. ๊ทธ ์ด์ƒ์€ power ๋กœ ์„ค์ •. // ๊ณต๊ฒฉ๋ ฅ 1 ๋‹น 1kg ์ธ ๋ฌด๊ธฐ. ์ด ๋ฌด๊ฒŒ๋Š”? func solution(_ number:Int, _ limit:Int, _..

iOS) thread-safe ์™€ atomic

thread-safe : ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ž์›์— ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ ‘๊ทผํ•˜๋”๋ผ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ๋œ๋‹ค. atomic : ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ ์ „๊ณผ ํ›„์—๋งŒ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ  ์žˆ๋Š” ์ค‘์—๋Š” ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. Swift ๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ(Multi-Threading) ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋Š” stack ์„ ์ œ์™ธํ•œ heap, data, code ์˜์—ญ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์˜์—ญ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด ๋™์ผํ•œ ์ž์›์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. Swift ๋Š” thread-safe ๋ฅผ ๋ณด์žฅํ•˜๋Š” ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ..

iOS 2022. 10. 15. 23:18
iOS) Dependency Injection(์˜์กด์„ฑ ์ฃผ์ž…)

โœ… ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection) ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ž€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์˜์กด์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์˜์กด์„ฑ ๊ทธ๋ ‡๋‹ค๋ฉด ์˜์กด์„ฑ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด ์‚ฌ์ด์— ์˜์กด ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์ˆ˜์ •๋˜๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋„ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์ž… ๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ์ž…์€ ๋ฌด์—‡์ผ๊นŒ? ์ฃผ์ž…์€ ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ฃ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž ๋“ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์˜์กด์„ฑ์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜์กด์„ฑ ์ฃผ์ž…์ด ๋ญ”๋ฐ? ์•„๋งˆ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ๋“ค์„๋•Œ ๊ฐ์ด ์™”์„ ์ˆ˜ ์žˆ๋‹ค. ์˜์กด์„ฑ์œผ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์€ ์–ด๋–ค ์ˆ˜์ •์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ๋งค๋ฒˆ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹๊นŒ? ์ง์ž‘ํ•œ๋Œ€๋กœ ์˜์กด์„ฑ์„ ๊ฐ€์ง„ ์ฝ”๋“œ๊ฐ€ ๋งŽ๋‹ค๋ฉด ..

iOS 2022. 8. 28. 23:40
iOS) @frozen

Swift 5.6 @frozen struct GeometryReader where Content : View ์—ด๊ฑฐํ˜•์˜ ๊ฒฝ์šฐ ๋˜๋Š” ๊ตฌ์กฐ์ฒด์˜ ์ €์žฅ๋œ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€, ์ œ๊ฑฐ, ์žฌ์ •๋ ฌํ•˜์—ฌ ์„ ์–ธ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค. frozen ์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉด ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋–„๋ฌธ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ–ฅํ›„ ๋ฒ„์ „์„ ์ œํ•œ์ ์œผ๋กœ๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ง€๋งŒ ์ด์™€ ๊ฐ™์€ ์„ฑ๋Šฅ์„ ์–ป๊ธฐ๋•Œ๋ฌธ์— flexibility ๋ฅผ ํฌ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. frozen ์—ด๊ฑฐํ˜•์— ๋Œ€ํ•œ switch ๋ฌธ์€ default case ๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์—ด๊ฑฐํ˜• switch ๋ฌธ์—์„œ default, @unknown ๊ธฐ๋ณธ ์ผ€์ด์Šค๋ฅผ ํฌํ•จํ•˜๋ฉด ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— warning ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Attributes - The Swift ..

iOS 2022. 6. 17. 22:56
Swift) Monard

Monad(๋ชจ๋‚˜๋“œ)] ์ถœ์ฒ˜: [์œ„ํ‚ค๋ฐฑ๊ณผ - ๋ชจ๋‚˜๋“œ](https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%82%98%EB%93%9C) Monadic(๋ชจ๋‚˜๋”•) ๋ชจ๋‚˜๋“œ๋Š” ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ ๋‹ค์–‘ํ•œ ๋œป์„ ๊ฐ€์ง€๊ธฐ๋„ ํ•˜๊ณ  ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฐœ๋…์ด๋ผ์„œ ๋ฒ”์ฃผ๋ก ์˜ ๋ชจ๋‚˜๋“œ ๊ฐœ๋…์„ ์ฐจ์šฉํ•œ ์ •๋„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋‚˜๋“œ๋Š” ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ž์ฃผ ํ™œ์šฉํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ชจ๋‚˜๋“œ์˜ ์„ฑ์งˆ์˜ ๋Œ€๋ถ€๋ถ„์„ ๊ฐ–์ถ”์—ˆ๋‹ค๊ณ  ํ•˜์—ฌ ๋ชจ๋‚˜๋“œ๋ฅผ ๋ชจ๋‚˜๋”•(monadic) ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. (๋ชจ๋‚˜๋”• ํƒ€์ž… ํ˜น์€ ๋ชจ๋‚˜๋”• ํ•จ์ˆ˜) ๐Ÿงฌ ๋ชจ๋‚˜๋“œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด๋“œ์ดํŽ™ํŠธ๋ฅผ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ๊ณผ ํ•จ๊ป˜ ํฌํ•จํ•˜๋Š” ํƒ€์ž… ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๋ชจ๋‚˜๋“œ๋Š” ๋„์›€์ด ๋ ๊ฑฐ์—์š”! ๊ฒฐ๊ณผ๋กœ ํ•ญ์ƒ ๋ชจ๋‚˜..

iOS 2022. 5. 5. 10:51
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๋งํฌ
Total
Today
Yesterday