«   2022/10   »
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
            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          
Archives
Today
11
Total
14,025
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (4)

kingsubin

์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„

์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœํžˆ ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ(mobile push notification)์— ํ•œ์ •๋˜์ง€ ์•Š๊ณ  ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ, SMS ๋ฉ”์‹œ์ง€, ์ด๋ฉ”์ผ ์„ธ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์•Œ๋ฆผ ์ง€์›ํ•  ๊ฒƒ์ธ์ง€? - ํ‘ธ์‹œ ์•Œ๋ฆผ, SMS ๋ฉ”์‹œ์ง€, ์ด๋ฉ”์ผ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ(real-time) ์‹œ์Šคํ…œ์ธ๊ฐ€? - ์—ฐ์„ฑ ์‹ค์‹œ๊ฐ„(soft real-time) ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋‹จ๋ง ์ง€์›ํ•  ๊ฒƒ์ธ์ง€? - iOS, Android, desktop ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‚ผ ์•Œ๋ฆผ์€ ๋ˆ„๊ฐ€ ๋งŒ๋“œ๋Š”๊ฐ€? - ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์„œ๋ฒ„ ์ธก์—์„œ์˜ ์Šค์ผ€์ฅด๋ง ์•Œ๋ฆผ์„ ๋ฐ›์ง€ ์•Š๋„๋ก(opt-out) ์„ค์ • ๊ฐ€๋Šฅํ•œ๊ฐ€? - ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ. ํ•˜๋ฃจ์— ๋ช‡ ๊ฑด์˜ ์•Œ๋ฆผ์ด ํ•„์š”ํ•œ๊ฐ€? - 1,000๋งŒ ๊ฑด ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ, 100๋งŒ ๊ฑด SMS..

์ฑ…/misc 2022. 7. 9. 16:11
๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์œ ์ผ ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์œ ์ผ ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„ โ€˜auto_incrementโ€™ ์†์„ฑ์ด ์„ค์ •๋œ RDB์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์“ฐ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ด ์ ‘๊ทผ๋ฒ•์€ ํ†ตํ•˜์ง€ ์•Š๋Š”๋‹ค. DB ์„œ๋ฒ„ ํ•œ ๋Œ€๋กœ๋Š” ๊ทธ ์š”๊ตฌ๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‚ฎ์ถ”๊ธฐ๊ฐ€ ๋ฌด์ฒ™ ํž˜๋“ค ๊ฒƒ์ด๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ ์ฑ…์—์„œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ๊ตฌํ˜„ํ•ด๋ณด์ž. ID๋Š” ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค. ID๋Š” ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค. ID๋Š” 64๋น„ํŠธ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. ID๋Š” ๋ฐœ๊ธ‰ ๋‚ ์งœ์— ๋”ฐ๋ผ ์ •๋ ฌ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ์ดˆ๋‹น 10,000๊ฐœ์˜ ID๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ฐœ๋žต์ ์ธ ์„ค๊ณ„์•ˆ ๋‹ค์ค‘ ๋งˆ์Šคํ„ฐ ๋ณต์ œ(multi-master replication) DB์˜ auto_increment ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ๋‹ค. ๋‹ค๋งŒ..

์ฑ…/misc 2022. 7. 9. 00:04
์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„

์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„ ์ˆ˜ํ‰์  ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์š”์ฒญ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์•ˆ์ • ํ•ด์‹œ๋Š” ์ด ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ํ•ด์‹œ ํ‚ค ์žฌ๋ฐฐ์น˜(rehash) ๋ฌธ์ œ N๊ฐœ์˜ ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ์ด ์„œ๋ฒ„๋“ค์— ๋ถ€ํ•˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๋ณดํŽธ์  ๋ฐฉ๋ฒ•์€ serverIndex = hash(key) % N์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ server pool์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์„ ๋•Œ, ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ท ๋“ฑํ•  ๋•Œ๋Š” ์ž˜ ๋™์ž‘ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์„œ๋ฒ„๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. server pool์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๋ฉด ํ‚ค์— ๋Œ€ํ•œ ํ•ด์‹œ ๊ฐ’์€ ๋ณ€ํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ์ ์šฉํ•œ ์„œ๋ฒ„ ์ธ๋ฑ์Šค ๊ฐ’์€ ๋ณ€ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๋Œ€๋ถ€๋ถ„์˜ ํ‚ค๊ฐ€ ์žฌ ๋ถ„๋ฐฐ๋˜๋ฉฐ, ๋Œ€๊ทœ๋ชจ cache mis..

์ฑ…/misc 2022. 6. 21. 01:09
์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„

์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„ ๋„คํŠธ์›Œํฌ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜(rate limiter)๋Š” ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ์œจ(rate)์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜๋‹ค. HTTP๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด ํŠน์ • ๊ธฐ๊ฐ„ ๋‚ด์— ์ „์†ก๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•œ๋‹ค. API ์š”์ฒญ ํšŸ์ˆ˜๊ฐ€ ์ œํ•œ ์žฅ์น˜์— ์ •์˜๋œ ์ž„๊ณ„์น˜(threshold)๋ฅผ ๋„˜์–ด์„œ๋ฉด ์ถ”๊ฐ€๋กœ ๋„๋‹ฌํ•œ ๋ชจ๋“  ํ˜ธ์ถœ์„ ์ฒ˜๋ฆฌ๊ฐ€ block ๋œ๋‹ค. ์˜ˆ์‹œ: ์‚ฌ์šฉ์ž๋Š” ์ดˆ๋‹น 2ํšŒ ์ด์ƒ ์ƒˆ ๊ธ€์„ ์˜ฌ๋ฆด ์ˆ˜ ์—†๋‹ค. ๊ฐ™์€ IP ์ฃผ์†Œ๋กœ๋Š” ํ•˜๋ฃจ์— 10๊ฐœ ์ด์ƒ์˜ ๊ณ„์ • ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค. ๊ฐ™์€ ๋””๋ฐ”์ด์Šค๋กœ ์ฃผ๋‹น 5ํšŒ ์ด์ƒ ๋ฆฌ์›Œ๋“œ(reward) ์š”์ฒญํ•  ์ˆ˜ ์—†๋‹ค. API ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋ฅผ ๋‘๋ฉด ์ข‹์€ ์  DoS(Denial of Service) ๊ณต๊ฒฉ์— ์˜ํ•œ ์ž์› ๊ณ ๊ฐˆ(resource starv..

์ฑ…/misc 2022. 6. 19. 21:37