๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Swift Language Guide] Concurrency (async/await, task, actor)

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/ ์œ„ ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ : ๋น„๋™๊ธฐ ์ž‘์—… ์ˆ˜ํ–‰ํ•˜๊ธฐ. ๋ณ‘๋ ฌ(parallel) ๋˜๋Š” ๋น„๋™๊ธฐ(asynchronous) ์ฝ”๋“œ๋Š” ๋ณต์žก๋„ ์ฆ๊ฐ€๋ผ๋Š” ๋น„์šฉ์„ ๊ฐ€์ ธ์˜จ๋‹ค. Swift์—์„œ๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„ ๊ฒ€์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์ž์˜ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค - ์˜ˆ๋ฅผ ๋“ค์–ด actor๋ฅผ ์‚ฌ์šฉํ•ด mutable state์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. Swift๋Š” ์–ธ์–ด ์ˆ˜์ค€์—์„œ ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ๋ฌธ์ œ๋ฅผ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์žก์„ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. Swift์˜ ๋™์‹œ์„ฑ ๋ชจ๋ธ์€ ์“ฐ๋ ˆ๋“œ ์œ„์— ๊ตฌ์ถ•๋˜์ง€๋งŒ, ์“ฐ๋ ˆ๋“œ์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. completion handl..

[๋ฐฑ์ค€ 19572] ๊ฐ€๋ญ„(Small) (Swift) - ์ž์„ธํ•œ ํ’€์ด ํฌํ•จ

19572๋ฒˆ: ๊ฐ€๋ญ„(Small) 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ ์นธ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋•…์— ๋น„๋ฅผ ๋‚ด๋ฆฐ๋‹ค. ๊ฐ ์นธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์€ ์ •ํ™•ํžˆ d1, d2, d3์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. (1≤d1, d2, d3≤10์˜6์Šน) ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ a, b, c์ด๋ฉฐ (a, b, c๋Š” ์–‘์˜ ์‹ค์ˆ˜) a๋Š” 1๋ฒˆ ์นธ๊ณผ 2๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„, b๋Š” 1๋ฒˆ ์นธ๊ณผ 3๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„, c๋Š” 2๋ฒˆ ์นธ๊ณผ 3๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„ ์˜๋ฏธํ•œ๋‹ค. ํ’€์ด ํ˜ผ์ž์„œ ํ’€์–ด๋ณด๋‹ค๊ฐ€ ํ’€์ด๋ฒ•์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ๊ตฌ๊ธ€๋ง์„ ํ–ˆ๋‹ค.๐Ÿฅฒ ๊ทธ๋ฆฌ๋””๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์œผ๋กœ ๊ตฌํ•˜๋ ค๊ณ  ์ ‘๊ทผํ–ˆ๋Š”๋ฐ, ์‚ผ์ฐจ๋ฐฉ์ •์‹์„ ์‚ฌ์šฉํ•ด ์ˆ˜ํ•™์ ์œผ๋กœ ํ’€์–ด๋‚ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ฃผ์˜์‚ฌํ•ญ ์‚ผ์ฐจ๋ฐฉ์ •์‹์„ ๊ตฌํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์€, a = d1 + d2, b = d1 + d3, c = d2 + d3 ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ตฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ..

[๋ฐฑ์ค€ 16435] ์Šค๋„ค์ดํฌ๋ฒ„๋“œ (Swift)

๋ฌธ์ œ 16435๋ฒˆ: ์Šค๋„ค์ดํฌ๋ฒ„๋“œ ์Šค๋„ค์ดํฌ๋ฒ„๋“œ๊ฐ€ ๊ณต์ค‘์— ๋‹ฌ๋ฆฐ ๊ณผ์ผ์„ ๋จน์„ ๋•Œ ๋งˆ๋‹ค 1๋งŒํผ ๊ธธ์ด๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค. ์Šค๋„ค์ดํฌ๋ฒ„๋“œ๋Š” ์ž์‹ ์˜ ๋ชธ ๊ธธ์ด๋ณด๋‹ค ๋‚ฎ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋†’์ด์— ์žˆ๋Š” ๊ณผ์ผ๋งŒ ๋จน์„ ์ˆ˜ ์žˆ๋‹ค. ์Šค๋„ค์ดํฌ๋ฒ„๋“œ์˜ ๋ชธ ๊ธธ์ด์™€ ๊ณผ์ผ๋“ค์˜ ๋†’์ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์Šค๋„ค์ดํฌ๋ฒ„๋“œ๊ฐ€ ์ตœ๋Œ€๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ชธ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค. ํ’€์ด ๊ณผ์ผ ๋ฐฐ์—ด์˜ ์ˆœํšŒ๊ฐ€ ์‰ฝ๋„๋ก, ์ฃผ์–ด์ง€๋Š” ๊ณผ์ผ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋†’์ด๊ฐ€ ๋‚ฎ์€ ๊ณผ์ผ ์ˆœ์„œ๋ถ€ํ„ฐ ํ˜„์žฌ์˜ ๋ชธ ๊ธธ์ด์™€ ๋น„๊ตํ•œ๋‹ค. ๊ณผ์ผ์ด ๋ชธ ๊ธธ์ด๋ณด๋‹ค ๋†’์ด ์žˆ์–ด์„œ ๋จน์„ ์ˆ˜ ์—†๊ฒŒ ๋˜๋ฉด, ์ •๋ ฌ๋œ ๊ณผ์ผ ๋ฐฐ์—ด์—์„œ๋Š” ์ดํ›„ ๋น„๊ต๋Š” ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค. ๊ณผ์ผ์„ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๋ชธ ๊ธธ์ด๋ผ๋ฉด ๋ชธ ๊ธธ์ด์— 1์„ ๋”ํ•˜๊ณ  ๋‹ค์Œ ๋น„๊ต๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•œ๋‹ค. let inputArr = readLine()!.split(separat..

[๋ฐฑ์ค€ 16199] ๋‚˜์ด ๊ณ„์‚ฐํ•˜๊ธฐ (Swift)

16199๋ฒˆ: ๋‚˜์ด ๊ณ„์‚ฐํ•˜๊ธฐ ์–ด๋–ค ์‚ฌ๋žŒ์˜ ์ƒ์ผ๊ณผ ๊ธฐ์ค€ ๋‚ ์งœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ธฐ์ค€ ๋‚ ์งœ ์‹œ์ ์˜ ๊ทธ ์‚ฌ๋žŒ์˜ ๋‚˜์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งŒ ๋‚˜์ด ํƒœ์–ด๋‚  ๋•Œ๋Š” 0์‚ด์ด๋‹ค. ์ƒ์ผ์ด ๋  ๋•Œ 1์‚ด์„ ๋จน๋Š”๋‹ค. ์ด๋•Œ, ์ƒ์ผ ๋‹น์ผ๋ถ€ํ„ฐ 1์‚ด์„ ๋”ํ•œ๋‹ค. 2002๋…„ 3์›” 5์ผ์ด ์ƒ์ผ์ธ ์‚ฌ๋žŒ์€ 2003๋…„ 3์›” 5์ผ๋ถ€ํ„ฐ 1์‚ด์ด ๋œ๋‹ค. ์„ธ๋Š” ๋‚˜์ด (ํ•œ๊ตญ์‹ ๋‚˜์ด ๊ณ„์‚ฐ) ํƒœ์–ด๋‚  ๋•Œ๋Š” 1์‚ด์ด๋‹ค. ์—ฐ๋„๊ฐ€ ๋ฐ”๋€Œ๋ฉด 1์‚ด์„ ๋จน๋Š”๋‹ค. ์—ฐ ๋‚˜์ด ํƒœ์–ด๋‚  ๋•Œ๋Š” 0์‚ด์ด๋‹ค. ์—ฐ๋„๊ฐ€ ๋ฐ”๋€Œ๋ฉด 1์‚ด์„ ๋จน๋Š”๋‹ค. ํ’€์ด ์„ธ๋Š” ๋‚˜์ด๋Š” ๊ธฐ์ค€์—ฐ๋„ - ์ƒ์ผ์—ฐ๋„ + 1 ๋กœ, ์—ฐ ๋‚˜์ด๋Š” ๊ธฐ์ค€์—ฐ๋„ - ์ƒ์ผ์—ฐ๋„ ๋กœ ๊ฐ„๋‹จํžˆ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋งŒ ๋‚˜์ด๋‹ค. ํƒœ์–ด๋‚  ๋•Œ 0์‚ด ์ƒ์ผ์ด ์ง€๋‚  ๋•Œ๋งˆ๋‹ค 1์‚ด์„ ๋จน๋Š”๋‹ค. ๊ธฐ์ค€์—ฐ๋„์˜ ์›”์ด ๋” ํฐ ๊ฒฝ์šฐ = ์ƒ์ผ์ด ์ง€๋‚œ ๊ฒƒ ๊ธฐ์ค€์—ฐ๋„์˜ ์›”์€ ๊ฐ™์ง€๋งŒ ์ผ์ˆ˜..

[iOS] Singleton ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€ ๋ฌด์—‡์ด๊ณ , ๋‹จ์ ๊ณผ ๋Œ€์•ˆ์€ ๋ฌด์—‡์ธ๊ฐ€?

What Is a Singleton and How To Create One In Swift Are Singletons Bad ์ด ๊ธ€์€ ์œ„์˜ ๋‘ ๋ฌธ์„œ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ง์ ‘ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.๐Ÿ˜ท ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ๋งค์šฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด์ง€๋งŒ, ์•ˆํ‹ฐํŒจํ„ด์œผ๋กœ ๊ณ ๋ ค๋˜์–ด์ง„๋‹ค. ๊ทธ ์ด์œ ๋ฅผ ์‚ดํŽด๋ณด์ž. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹จ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋–ค ์‹œ์ ์—์„œ๋„ ๊ทธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ๋”ฑ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ๋ชฉ์ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์• ํ”Œ์˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ์ฒด๋“ค์ด ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. // Shared URL Session let sharedURLSession = URLSession.shared // D..

๐Ÿ“ฑ๐ŸŽ iOS 2023. 2. 14. 23:04