profile
๐Ÿƒ

Why "RxSwift"?

Reactive Extension์„ ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.๋งŒ์•ฝ ๋‹จ์ˆœํ•˜๊ฒŒ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฐ ๋™์ž‘๋“ค์˜ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค.๊ณต์œ ์ž์›์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.๋ฌผ๋ก  Rx๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„, ๋‘๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ

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

GCD (Grand Central Dispatch)

๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ , ๊ด€๋ฆฌํ•˜๊ณ , ๋ฉ€ํ‹ฐ์ฝ”์–ด์— ์ž๋™์œผ๋กœ ๋ถ„์‚ฐ์‹œ์ผœ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์œ ํœด ์ฝ”์–ด๋ฅผ ํƒ์ง€ํ•ด์„œ ๋‹ค๋ฅธ ์–ดํ”Œ์— ํ”ผํ•ด๋ฅผ ์ฃผ์ง€ ์•Š๋Š” ์„ ์—์„œ, ์Šค๋ ˆ๋“œ์— ํ• ๋‹น, ์Šค์ผ€์ค„๋ง(์Šค๋ ˆ๋“œ ํ’€๋ง) ํ•œ๋ฒˆ ์ƒ์„ฑํ•œ ์Šค๋ ˆ๋“œ๋ฅผ ์žฌ์‚ฌ์šฉ.Dispatch Queue ๋‚ด์—์„œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ, ๋‚ด

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

์ถ”์ƒํด๋ž˜์Šค vs ์ธํ„ฐํŽ˜์ด์Šค vs ํ”„๋กœํ† ์ฝœ

Java๋‚˜ ์ˆฑํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋“ค์„ ๊ณต๋ถ€ํ•  ๋•Œ, ์ž์ฃผ ์ ‘ํ•˜๋Š” ๋‹จ์–ด์ธ OOP(Object Oriented Programming)์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Swift ์–ธ์–ด์—์„œ๋Š” Protocol๊ณผ POP(Protocol Oriented Programming)์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋‚˜์˜จ๋‹ค. PO

2019๋…„ 8์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[iOS Youtube Clone ์•ฑ ๊ฐœ๋ฐœ] #2 ์ปค์Šคํ…€ ๊ฐ์ฒด ์‚ฌ์šฉํ•˜๊ธฐ

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•ด์™ธ ์œ ํŠœ๋ฒ„ "Lets Build that App" ๋‹˜์˜ ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์š” ๋‚ด์šฉ๋งŒ ์š”์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊นƒํ—ˆ๋ธŒ ๋งํฌ UIImageView ์ปค์Šคํ…€ image.png ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ปค์Šคํ…€ํ•ด๋ณด์ž. ๋‚˜์ค‘์—์•ผ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ

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

์‹œ๊ฐ„ ๋ณต์žก๋„ (big-O, big-ฮฉ, big-ฮธ)

O (Big-O) ํ•™๊ณ„์—์„œ big-O๋Š” ์‹œ๊ฐ„์˜ ์ƒํ•œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. =big-ฮฉ ์ฆ‰, ์œ„์ฒ˜๋Ÿผ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, ฮฉ(N) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ฮฉ(logN), ฮฉ(1)๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์–ผ๋งˆ๋“ ์ง€ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ฮธ (Big-Theta) ์œ„ ๋‘ ๊ฐœ

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

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

O(N^2) ์ •๋ ฌ ๋ฒ„๋ธ”์ •๋ ฌ(Bubble Sort) ๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋งค๋ฒˆ ์—ฐ์†๋œ ๋‘๊ฐœ ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ตํ•˜์—ฌ, ์ •ํ•œ ๊ธฐ์ค€์˜ ๊ฐ’์„ ๋’ค๋กœ ๋„˜๊ฒจ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ, ๋น„๊ต์‹œ๋งˆ๋‹ค ํฐ ๊ฐ’์ด ๋’ค๋กœ ์ด๋™ํ•˜์—ฌ, 1๋ฐ”ํ€ด ๋Œ ์‹œ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ๋งจ ๋’ค์— ์ €์žฅ๋œ๋‹ค.

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์ Kit] #4 ์ •๋ ฌ

์ •๋ ฌ์ด๋ž€? ์ •๋ ฌ์€, ๋ฐฐ์—ด์ด๋‚˜ List์— ๋‹ด๊ธด ๊ฐ’๋“ค์„ ์›ํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์—ดํ•˜๋Š” ๊ณผ์ •์„ ๋œปํ•œ๋‹ค. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‚ฝ์ž…, ์„ ํƒ, ํž™, ํ€ต, ๋จธ์ง€ ๋“ฑ ํ•˜๋‚˜ํ•˜๋‚˜ ์–˜๊ธฐํ•˜๊ธฐ ํž˜๋“ค์ •๋„๋กœ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ์„ค๋ช…์€ ์ƒ๋žตํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Stable vs Unstable

2019๋…„ 8์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

iOS ํ”„๋ ˆ์ž„์›Œํฌ #CocoaTouch #Foundation #UIkit

์ฝ”์ฝ”์•„(Cocoa) ๋จผ์ € ์ฝ”์ฝ”์•„(Cocoa)๋ผ๋Š” ๋‹จ์–ด๋Š”, NSObject๋ฅผ ์ƒ์†๋ฐ›๋Š” ๋ชจ๋“  ํด๋ž˜์Šค, ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์–ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ด๋ฆ„์ด ํ•˜ํ•„ ์ฝ”์ฝ”์•„์ผ๊นŒ? ์œ„ํ‚ค์—์„œ ๊ธ์–ด์˜จ ์œ„ ๊ธ€์„ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹น์‹œ ์ง€๊ธˆ์ด์ƒ์œผ๋กœ ํ•ซํ–ˆ๋˜ ์–ธ์–ด์ธ Java๊ฐ€

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์ Kit] #3 ํž™

ํž™์ด๋ž€? ํž™(Heap)์€ ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ root์— ์ตœ์†Œ๊ฐ’์ด ์˜ค๋Š” ์ตœ์†Œํž™๊ณผ ์ตœ๋Œ€๊ฐ’์ด ์˜ค๋Š” ์ตœ๋Œ€ํž™์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ๊ฐ™์€ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋ผ ๊ทธ๋Ÿฐ์ง€ ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์™€๋„ ๋น„์Šทํ•œ๋ฐ, ์ด์ชฝ์˜ ๊ฒฝ์šฐ ์ขŒ์šฐ์™€ ์ƒ๊ด€์—†์ด ๋ถ€๋ชจ๋…ธ๋“œ๊ฐ€ ์ž์‹๋…ธ๋“œ๋ณด๋‹ค ์ž‘๋‹ค/ํฌ๋‹ค์˜ ์กฐ๊ฑด๋งŒ์„ ๊ฐ–๋Š”

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์ Kit] #2 ์Šคํƒ/ํ

์Šคํƒ / ํ๋ž€? ์Šคํƒ(Stack)์€ FIFO(First In First Out) ํ(Queue)๋Š” LIFO(Last In First Out) ์Šคํƒ์˜ ๊ฒฝ์šฐ, ๋์—์„œ ์‚ฝ์ž…, ํ™•์ธ, ์‚ญ์ œ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๊ณ , ํ๋Š” ์‚ฌ์šฉ๋ฒ”์œ„๊ฐ€ ์›Œ๋‚™ ๊ด‘๋ฒ”์œ„ํ•ด์„œ ํŠน์ •ํ•˜๊ธฐ ํž˜๋“ ๋ฐ, ์ผ๋‹จ

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

๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

๊ทธ๋ž˜ํ”„? ์ •์ ๊ณผ ๊ฐ„์„ ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ. ์ฆ‰ ํŠธ๋ฆฌ ์—ญ์‹œ ๊ทธ๋ž˜ํ”„์— ์†ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ• 1. ๊ฐ„์„  ๋ฆฌ์ŠคํŠธ ๋ง๊ทธ๋Œ€๋กœ ๋ฐฐ์—ด์— ๊ฐ„์„ ๋“ค์„ ์ €์žฅํ•œ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„๋˜์ง€๋งŒ ํ•œ ์ •์ ์˜ ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋ชจ๋“  ๊ฐ„์„ ๋ฆฌ์ŠคํŠธ๋ฅผ

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

๋ถ€์ŠคํŠธ์บ ํ”„ 2019 ์ฑŒ๋ฆฐ์ง€ ํ›„๊ธฐ

2019๋…„ 8์›” 9์ผ, ๋ถ€์ŠคํŠธ์บ ํ”„ ์ฑŒ๋ฆฐ์ง€ 4์ฃผ๊ฐ„์˜ ์ผ์ •์ด ์ˆ˜๋ฃŒ์‹๊ณผ ํ•จ๊ป˜ ์ข…๋ฃŒ๋๋‹ค. ์บ ํ”„๋Š” ๋งค ์ฃผ ์›”์š”์ผ~๊ธˆ์š”์ผ ์ง„ํ–‰๋๊ณ , ํ•˜๋ฃจ 10์‹œ๊ฐ„ ์ด์ƒ์˜ ์ƒ๋‹นํžˆ ๋ฐ”์œ ์ผ์ • ์ผ์ •์œผ๋กœ ์ง„ํ–‰๋๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ ์—ญ์‹œ, Web์— ๋Œ€ํ•œ ์ง€์‹์ด ๋งŽ์ง€ ์•Š์€ (๋‚˜๊ฐ™์€) ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ƒ

2019๋…„ 8์›” 12์ผ
ยท
4๊ฐœ์˜ ๋Œ“๊ธ€

[iOS Youtube Clone ์•ฑ ๊ฐœ๋ฐœ] #1 ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•ด์™ธ ์œ ํŠœ๋ฒ„ "Lets Build that App" ๋‹˜์˜ ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์š” ๋‚ด์šฉ๋งŒ ์š”์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊นƒํ—ˆ๋ธŒ ๋งํฌ StoryBoard์™€ ์ด๋ณ„ํ•˜๊ธฐ StoryBoard์˜ ํ’ˆ์„ ๋ฒ—์–ด๋‚˜, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€ A

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์ Kit] #1 ํ•ด์‹œ

ํ•ด์‹œ๋ž€? Key-value์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๐Ÿš€์ฃผ์š” ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ in JAVA HashMap map ํƒ€ ์–ธ์–ด์˜ Dictionaray์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ ์—ญ์‹œ ๊ธฐ์ ์ ์ธ Hash์˜ ์„ฑ๋Šฅ์„ ํ†ตํ•ด ์ €์žฅ๋œ Key์— ํ•ด๋‹นํ•˜๋Š” Va

2019๋…„ 8์›” 12์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€

[JavaScript] EventLoop์™€ ๋น„๋™๊ธฐ ๋™์ž‘

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ์“ฐ๋ ˆ๋“œ์—์„œ ๋™์ž‘ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ๋กœ ์›น์— ์“ฐ์ด๋Š” ์–ธ์–ด๋‹ค๋ณด๋‹ˆ, ๋‹จ์ผ์“ฐ๋ ˆ๋“œ์—์„œ ๋™๊ธฐ์ ์œผ๋กœ๋งŒ ๋™์ž‘ํ•œ๋‹ค๋ฉด ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€์—์„œ ์šฉ๋Ÿ‰์ด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋„์›Œ์ฃผ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด๋ณด์ž. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์‹œ๊ฐ„์ด ๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ

2019๋…„ 8์›” 12์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€