profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Flutter & Swift ๊ฐœ๋ฐœ์ž

[iOS | Swift] NS Diffable DataSource Snapshot ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

NSDiffableDataSourceSnapshot ์„ ์ด์šฉํ•˜์—ฌ UICollectionView์— ๋„์šธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ,๊ธฐ์กด snapshot ์— ์ถ”๊ฐ€๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹๊ณผ๊ธฐ์กด snapshot ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ๊ฐ ์•Œ์•„๋ณด์ž.๊ฐ€๊ณ„๋ถ€ ์•ฑ์„ ์˜ˆ๋กœ

์•ฝ 20์‹œ๊ฐ„ ์ „
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

LeetCode - ๋ฐฐ์—ด์˜ K๋ฒˆ์งธ ํฐ ์š”์†Œ [Python3] #heapq

๋ฌธ์ œ ์ถœ์ฒ˜์ •์—ด๋˜์ง€ ์•Š์€ ๋ฐฐ์—ด์—์„œ k๋ฒˆ์งธ ํฐ ์š”์†Œ๋ฅผ ์ถ”์ถœํ•˜๋ผ.์ž…๋ ฅ3,2,3,1,2,4,5,5,6, k=4์ถœ๋ ฅ4ํŒŒ์ด์ฌ heapq ๋ชจ๋“ˆ์€ ์ตœ์†Œ ํž™๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ,์ตœ๋Œ€ ํž™์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Œ์ˆ˜๋กœ ์ €์žฅํ•œ ๋‹ค์Œ ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜๋ถ€ํ„ฐ ์ถ”์ถœํ•ด ๋ถ€ํ˜ธ๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฉด ๋œ๋‹ค!ํ’€์ด 1์—์„œ ๋ชจ๋“  ๊ฐ’

2022๋…„ 11์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Python] zip() ํ•จ์ˆ˜์™€ ์•„์Šคํ…Œ๋ฆฌ์ŠคํŠธ(*)

zip() ํ•จ์ˆ˜: 2๊ฐœ ์ด์ƒ์˜ ์‹œํ€€์Šค๋ฅผ ์งง์€ ๊ธธ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ผ๋Œ€์ผ ๋Œ€์‘ํ•˜๋Š” ์ƒˆ๋กœ์šด ํŠœํ”Œ ์‹œํ€€์Šค ๋ฅผ ๋งŒ๋“œ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Python3+์—์„œ๋Š” ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์ ฏ๊ฐ’์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” list()๋กœ ๋ฌถ์–ด์ฃผ๋ฉด ๋œ๋‹ค.zip()์˜ ๊ฒฐ๊ณผ ์ž์ฒด๋Š” ๋ฆฌ์ŠคํŠธ ์‹œํ€€์Šค๊ฐ€

2022๋…„ 11์›” 16์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Python] np.argsort๋กœ ๋‘ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ ๋Œ€์‘ ์ •๋ ฌํ•˜๊ธฐ

๋Œ€์‘ ์ •๋ ฌ: ๋ฆฌ์ŠคํŠธ A, B๊ฐ€ ์žˆ์„ ๋•Œ A๋ฅผ ์ •๋ ฌํ•˜๊ณ  B๋ฅผ A์— ๋Œ€์‘๋˜๋Š” ์ธ๋ฑ์Šค๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

2022๋…„ 11์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Python] for-else ๋ฌธ

for-else๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด for๋ฌธ์ด break ๋“ฑ์œผ๋กœ ์ค‘๊ฐ„์— ๋น ์ ธ๋‚˜์˜ค์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ์‹คํ–‰ ๋๋Š”์ง€ ์†์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค! ๐Ÿ‘๐ŸปBoolean(isBreak) ๊ฐ’์„ ์ด์šฉํ•ด์„œ for ๋ฌธ์ด ๋๊นŒ

2022๋…„ 11์›” 13์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Programmers - ์˜น์•Œ์ด(2) [Python3]

๋จธ์“ฑ์ด๋Š” ํƒœ์–ด๋‚œ ์ง€ 11๊ฐœ์›” ๋œ ์กฐ์นด๋ฅผ ๋Œ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์นด๋Š” ์•„์ง "aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ๊ณผ ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ๋ฐ–์— ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์—ฐ์†ํ•ด์„œ ๊ฐ™์€ ๋ฐœ์Œ์„ ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค.

2022๋…„ 11์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐฐ์—ด & ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ & ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋น„๊ต

๐Ÿ’ก ๋ฆฌ์ŠคํŠธ ์ข…๋ฅ˜: ๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธprev ํฌ์ธํ„ฐ ๋•Œ๋ฌธ์— linked List ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”์ถ”๊ฐ€Array: ๋งจ ๋์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ O(1), ๋ฐฐ์—ด์ด ๊ฐ€๋“ ์ฐจ์žˆ์„ ๊ฒฝ์šฐ ๋ฐฐ์—ด ์‚ฌ์ด์ฆˆ ์žฌํ• ๋‹นํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— O(N)๊ฒ€์ƒ‰Li

2022๋…„ 11์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[iOS] ๋ฉด์ ‘์งˆ๋ฌธ ๊ณต๋ถ€ ๐Ÿค“... ing

Not Running: ์•ฑ์ด ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœInactive: ์•ฑ์ด ์‹คํ–‰์ค‘์ธ ์ƒํƒœ. ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ฌด๋Ÿฐ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์ง€ ์•Š๋Š” ์ƒํƒœActive: ์•ฑ์ด ์‹คํ–‰์ค‘์ด๋ฉฐ, ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํƒœBackground: ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์žˆ๋Š” ์ƒํƒœ. ๊ทธ๋Ÿฌ๋‚˜ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ์ƒํƒœSuspe

2022๋…„ 11์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | Swift] ์˜ˆ์ œ์™€ ํ•จ๊ป˜ URLSessionDataTask ๋ฟŒ์‹œ๊ธฐ

: HTTP/HTTPS๋ฅผ ํ†ตํ•ด ์ฝ˜ํ…์ธ (๋ฐ์ดํ„ฐ)๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” API๋ฅผ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์ด API๋Š” ์ธ์ฆ ์ง€์›์„ ์œ„ํ•œ ๋งŽ์€ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ,์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰ ์ค‘์ด์ง€ ์•Š๊ฑฐ๋‚˜ ์ผ์‹œ ์ค‘๋‹จ๋œ ๋™์•ˆ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ํ†ตํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. UR

2022๋…„ 11์›” 3์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Fastlane์œผ๋กœ ๋ฐฐํฌ ์ž๋™ํ™”ํ•˜๊ธฐ

Bundler ์™€ Gemfile ์„ ์ด์šฉํ•ด์„œ fastlane ์˜์กด์„ฑ ๊ด€๋ฆฌํ•˜๊ธฐ1-1. ํ„ฐ๋ฏธ๋„์—์„œ gem install bundler ์ž…๋ ฅํ•ด์„œ ๋ฒˆ๋“ค๋Ÿฌ ์„ค์น˜๋งŒ์•ฝ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ์•„๋ž˜ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.brew updatebrew install rbenv ruby-build

2022๋…„ 10์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Combine ๊ฐœ๋… ๋ฟŒ์‹œ๊ธฐ

: ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์—ฐ์‚ฐ์ž๋“ค์„ ํ†ตํ•ด ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ”„๋ ˆ์ž„์›ŒํฌPublisher: ์ƒ์‚ฐ์ž, ๋ฐฐ์ถœ์ž, ํฌ๋ฆฌ์—์ดํ„ฐSubscriber: ์†Œ๋น„์ž, ๊ตฌ๋…์žOperator: ๋งˆ๋ฒ•์‚ฌ, ๊ฐ€๊ณตํ•˜๋Š” ์‚ฌ๋žŒ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์ถœ๊ตฌ์ฒด์ ์ธ Output, Failure ํƒ€์ž… ์ •์˜๋นŒํŠธ์ธ P

2022๋…„ 10์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | SwiftUI] TextField Tappable Area ๋„“ํžˆ๋Š” ๋ฐฉ๋ฒ•

MultiLine TextField๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ,Tappable Area๊ฐ€ ๊ธฐ๋ณธ๊ฐ’ (1์ค„)๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ๋ถˆํŽธํ•œ UX๋ฅผ ์œ ๋ฐœํ•œ๋‹ค..!TextField์˜ frame ๋‚ด์˜ ๋ฒ”์œ„์—์„œ ์•„๋ฌด๋ฐ๋‚˜ ํƒญํ•ด๋„ focus๊ฐ€ ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.ํƒญ Area๋ฅผ ์กฐ์ •ํ•˜๊ณ ์ž ํ•˜

2022๋…„ 10์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] ๊ฐœ๋ฐœ ์–ธ์–ด๋ฅผ ์˜์–ด์—์„œ ํ•œ๊ตญ์–ด๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

์ฉ์ฉ๋ฐ•์‚ฌ๋ฅผ ์•ฑ ์Šคํ† ์–ด์— ์ถœ์‹œํ•˜๊ณ  ์นœ๊ตฌ๋“ค์—๊ฒŒ ํ™๋ณด๋ฅผ ํ•˜๋Š”๋ฐ ์นœ๊ตฌ๊ฐ€"์†Œ๋งน์•„ ์™œ ์–ธ์–ด๊ฐ€ ์˜์–ด์•ผ?" ๋ผ๊ณ  ๋ฌผ์—ˆ๋‹ค!์ž‰? ๋‚˜๋Š” ํ•œ๊ตญ์–ด๋กœ ์„ค์ •ํ•˜๊ณ  ์ถœ์‹œํ–ˆ๋Š”๋ฐ?!๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ Xcode์— ๊ฐœ๋ฐœ ์–ธ์–ด๊ฐ€ ์˜์–ด๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด์„œ ์•ฑ ์Šคํ† ์–ด์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋œ ๊ฑฐ์˜€๋‹ค ๐Ÿ™€๊ทธ๋ž˜์„œ ๋ถ€๋žด๋ถ€๋žด ์ฐพ

2022๋…„ 10์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Github] There isnโ€™t anything to compare ์—๋Ÿฌ ํ•ด๊ฒฐ

๋กœ์ปฌ์— ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ Github์— ์˜ฌ๋ฆฌ๋Š” ๊ณผ์ •์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.์—ฅ? ์™œ PR ๋ชป๋„ฃ์–ด?! ์–ด๋–กํ•˜์ง€?ํ•˜๋ฉด์„œ ์ด๋Ÿฐ์ €๋Ÿฐ ์‹œ๋„๋ฅผ ํ•˜๋‹ค๊ฐ€..

2022๋…„ 10์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[iOS | SwiftUI] UIAlertController ๋„์šฐ๋Š” ๋ฒ•

์•จ๋ฒ” ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฑฐ๋ถ€ํ•œ ์œ ์ €์—๊ฒŒ '๊ถŒํ•œ ์„ค์ •' ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก alert ์ฐฝ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ƒํ™ฉ์ด๋‹ค.SwiftUI์—์„œ View๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ƒ์œผ๋กœ UIAlertController๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.UIAlertController์˜ title

2022๋…„ 10์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | SwiftUI] RLMException: Object has been deleted or invalidated ์—๋Ÿฌ ํ•ด๊ฒฐ

SwiftUI์˜ Realm ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž๊พธ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.. ๐Ÿคฏ Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or in

2022๋…„ 10์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | SwiftUI] Navigation Bar Item์˜ leading button๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ

SwiftUI์—์„œ NavigationLink ๋ฅผ ์ด์šฉํ•˜์—ฌ View๋ฅผ ์ด๋™ํ•˜์˜€์„ ๋•Œ,Navigation Bar Item ์„ค์ •์„ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š”back button(<)๊ณผ ์ด๋™ ์ „ View์˜ navigation title (ex: ์ฉ์ฉ๋ฐ•์‚ฌ) ์ด ํ•จ๊ป˜ ๋ณด์ธ

2022๋…„ 10์›” 16์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[iOS | Swift] TableView์˜ Section๋ณ„ Header Button ๋””์ž์ธํ•˜๊ธฐ

TableView ์•ˆ์— CollectionView๋ฅผ ๋‹ด์•„ ์„น์…˜ ๋ณ„ ์ปจํ…์ธ ๋ฅผ ๊ฐ€๋กœ๋กœ ์Šคํฌ๋กคํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๋””์ž์ธํ•˜๋ ค ํ•œ๋‹ค.ViewController ํŒŒ์ผ์— extension์œผ๋กœ UITableViewDelegate์„ ์ถ”๊ฐ€ํ•˜๊ณ  Header ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.โ“ต

2022๋…„ 10์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | Swift] ๋ชจ๋‹ฌ ์‚ฌ๋ผ์งˆ ๋•Œ UICollectionView ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๋ฒ•

Swift ์™€ Combine์„ ์ตํžˆ๊ธฐ ์œ„ํ•ด ํ‰์†Œ์— ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์ธ '์•Œ๋ผ๋ฏธ' ์•ฑ์„ ๋น„์Šทํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์žˆ๋‹ค.ํ™ˆํ™”๋ฉด์—์„œ ์šฐ์ธกํ•˜๋‹จ Floating Button์„ ๋ˆ„๋ฅด๋ฉด ์ƒˆ๋กœ์šด ์•Œ๋žŒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ด๋‹ค.Storage์— ์ƒˆ๋กœ์šด ์•Œ๋žŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ๊ตฌํ˜„์„

2022๋…„ 10์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS | Swift] ๋ชจ๋‹ฌ(Modal) ๋„์šฐ๊ธฐ

๋ชจ๋‹ฌ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ผ์‹œ์ ์œผ๋กœ ์ง‘์ค‘์„ ์š”ํ•˜๋Š” ์ปจํ…์ธ ๋ฅผ ํ‘œ์‹œํ• ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.Swift UIKit ์—์„œ ๋ชจ๋‹ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

2022๋…„ 9์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท