soogoori

CS/๐Ÿ“• ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

[๐Ÿ“• System Design Interview] ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜์˜ ์„ค๊ณ„

์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜ (rate limiter)ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ์œจ(rate)์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜ HTTP ํŠน์ • ๊ธฐ๊ฐ„ ๋‚ด์— ์ „์†ก๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ํšŸ์ˆ˜ ์ œํ•œ API ์š”์ฒญ ํšŸ์ˆ˜๊ฐ€ ์ œํ•œ ์žฅ์น˜์— ์ •์˜๋œ ์ž„๊ณ„์น˜(threshold)๋ฅผ ๋„˜์–ด์„œ๋ฉด ์ถ”๊ฐ€๋กœ ๋„๋‹ฌํ•œ ๋ชจ๋“  ํ˜ธ์ถœ์€ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘๋‹จ๋จโœด๏ธ ์‚ฌ๋ก€- ์‚ฌ์šฉ์ž๋Š” ์ดˆ๋‹น 2ํšŒ ์ด์ƒ ์ƒˆ ๊ธ€์„ ์˜ฌ๋ฆด ์ˆ˜ ์—†์Œ- ๊ฐ™์€ IP ์ฃผ์†Œ๋Š” ํ•˜๋ฃจ์— 10๊ฐœ ์ด์ƒ์˜ ๊ณ„์ •์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ- ๊ฐ™์€ ๋””๋ฐ”์ด์Šค๋กœ๋Š” ์ฃผ๋‹น 5ํšŒ ์ด์ƒ ๋ฆฌ์›Œ๋“œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์—†์Œ - ํŠธ์œ„ํ„ฐ ๐Ÿ‘‰ 3์‹œ๊ฐ„ ๋™์•ˆ 300๊ฐœ์˜ ํŠธ์œ—๋งŒ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ - Google docs ๐Ÿ‘‰ API๋Š” ์‚ฌ์šฉ์ž๋‹น ๋ถ„๋‹น 300ํšŒ์˜ read ์š”์ฒญ๋งŒ ํ—ˆ์šฉ โœณ๏ธ ์ฒ˜๋ฆฌ์œจ ์ œํ•œ ์žฅ์น˜๋ฅผ ๋‘๋ฉด ์ข‹์€ ์ - DoS(Denial of Se..

Java/๐Ÿ“• Effective Java

[๐Ÿ“• Effective Java] ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์–ด๋…ธํ…Œ์ด์…˜ ไธŠ

34. int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž… ์‚ฌ์šฉํ•˜๊ธฐ์—ด๊ฑฐ ํƒ€์ž… = ์ผ์ • ๊ฐœ์ˆ˜์˜ ์ƒ์ˆ˜ ๊ฐ’์„ ์ •์˜ํ•œ ๋‹ค์Œ, ๊ทธ ์™ธ์˜ ๊ฐ’์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ํƒ€์ž… โœด๏ธ ์—ด๊ฑฐ ํŒจํ„ด์˜ ๋‹จ์  ํƒ€์ž… ์•ˆ์ „ ๋ณด์žฅ Xํ‘œํ˜„๋ ฅ ์ข‹์ง€ Xํ‰๋ฒ”ํ•œ ์ƒ์ˆ˜๋ฅผ ๋‚˜์—ดํ•œ ๊ฒƒ์ด๋ผ ์ƒ์ˆ˜์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด ํด๋ผ์ด์–ธํŠธ๋„ ๋ฐ˜๋“œ์‹œ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•จ์ •์ˆ˜ ์ƒ์ˆ˜๋Š” ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์›€๐Ÿ‘‰ ์—ด๊ฑฐ ํƒ€์ž… (ENUM type)์ด ๋Œ€์•ˆpublic enum Apple {FUJI, PIPPIN, GRANNY_SMITH}public enum Orange {NAVEL, TEMPLE, BLOOD}โœณ๏ธ ์—ด๊ฑฐ ํƒ€์ž…  ์—ด๊ฑฐ ํƒ€์ž… ์ž์ฒด๋Š” ํด๋ž˜์Šค์ƒ์ˆ˜ ํ•˜๋‚˜๋‹น ์ž์‹ ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค์–ด public static final ํ•„๋“œ๋กœ ๊ณต๊ฐœ๋ฐ–์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์‹ค์ƒ finalํด๋ผ์ด์–ธ..

CS/๐Ÿ“• ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

[๐Ÿ“• System Design Interview] ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฉด์ ‘ ๊ณต๋žต๋ฒ•

1. ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ •  (3๋ถ„ ~ 10๋ถ„)๋ฐ”๋กœ ๋‹ต์„ ๋‚ด๊ธฐ๋ณด๋‹ค๋Š” ๊นŠ์ด ์ƒ๊ฐํ•˜๊ณ  ์งˆ๋ฌธํ•˜์—ฌ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๊ฐ€์ •๋“ค์„ ๋ถ„๋ช…ํžˆ ํ•˜๊ธฐ์‹œ์Šคํ…œ ๊ตฌ์ถ•์— ํ•„์š”ํ•œ ์ •๋ณด ๋ชจ์œผ๊ธฐ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๊ฐ€์ œํ’ˆ ์‚ฌ์šฉ์ž ์ˆ˜๋Š” ์–ผ๋งˆ๋‚˜ ๋˜๋Š”๊ฐ€ํšŒ์‚ฌ์˜ ๊ทœ๋ชจ๋Š” ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ปค์ง€๋ฆฌ๋ผ ์˜ˆ์ƒํ•˜๋Š”๊ฐ€ํšŒ์‚ฌ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ์Šคํƒ์€ ๋ฌด์—‡์ธ๊ฐ€์„ค๊ณ„๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด ์„œ๋น„์Šค๋กœ๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”๊ฐ€โœด๏ธ ์˜ˆ์ œ - ๋‰ด์Šค ํ”ผ๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„๋ชจ๋ฐ”์ผ ์•ฑ ? ์›น ์•ฑ ? - ๋‘˜ ๋‹ค ์ง€์›๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ? - ์ƒˆ๋กœ์šด ํฌ์ŠคํŠธ๋ฅผ ์˜ฌ๋ฆฌ๊ณ , ๋‹ค๋ฅธ ์นœ๊ตฌ์˜ ๋‰ด์Šค ํ”ผ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ๋‰ด์Šค ํ”ผ๋“œ์˜ ์ •๋ ฌ ๊ธฐ์ค€ ? ๊ธฐ์ค€์ด ์žˆ๋‹ค๋ฉด ๊ฐ€์ค‘์น˜ ๋ถ€์—ฌ ? - ์‹œ๊ฐ„ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์‚ฌ์šฉ์ž๋Š” ์ตœ๋Œ€ ๋ช‡ ๋ช…์˜ ์‚ฌ์šฉ์ž์™€ ์นœ๊ตฌ๋ฅผ ๋งบ์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€ ? - 50..

CS/๐Ÿ“• ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

[๐Ÿ“• System Design Interview] ๊ฐœ๋žต์ ์ธ ๊ทœ๋ชจ ์ถ”์ •

2์˜ ์ œ๊ณฑ์ˆ˜   ์‘๋‹ต์ง€์—ฐ ๊ฐ’๋ฉ”๋ชจ๋ฆฌ๋Š” ๋น ๋ฅด์ง€๋งŒ ๋””์Šคํฌ๋Š” ์•„์ง ๋Š๋ฆผ๋””์Šคํฌ ํƒ์ƒ‰์€ ๊ฐ€๋Šฅํ•œ ํ•œ ํ”ผํ•˜๊ธฐ๋‹จ์ˆœํ•œ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋น ๋ฆ„๋ฐ์ดํ„ฐ๋ฅผ ์ธํ„ฐ๋„ท์œผ๋กœ ์ „์†กํ•˜๊ธฐ ์ „์— ๊ฐ€๋Šฅํ•˜๋ฉด ์••์ถ•ํ•˜๊ธฐ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋Š” ๋ณดํ†ต ์—ฌ๋Ÿฌ ์ง€์—ญ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ๊ณ , ์„ผํ„ฐ๋“ค ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ   ex) ํŠธ์œ„ํ„ฐ QPS(Query Per Second)์™€ ์ €์žฅ์†Œ ์š”๊ตฌ๋Ÿ‰ ์ถ”์ •์˜ˆ์‹œ๊ฐ€์ •์›”๊ฐ„ active ์‚ฌ์šฉ์ž = 3์–ต ๋ช…50%์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ์œ„ํ„ฐ๋ฅผ ๋งค์ผ ์‚ฌ์šฉํ‰๊ท ์ ์œผ๋กœ ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋งค์ผ 2๊ฑด์˜ ํŠธ์œ—์„ ์˜ฌ๋ฆผ๋ฏธ๋””์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ํŠธ์œ—์€ 10%๋ฐ์ดํ„ฐ๋Š” 5๋…„๊ฐ„ ๋ณด๊ด€ QPS ์ถ”์ •์ผ๊ฐ„ active ์‚ฌ์šฉ์ž = 3์–ต x 50% = 1.5์–ตQPS = 1.5์–ต x 2 ํŠธ์œ—/24์‹œ๊ฐ„/3600์ดˆ  = ์•ฝ 3500์ตœ๋Œ€ QPS = 2 x QPS = ์•ฝ 7000 ๋ฏธ๋””์–ด ์ €..

CS/๐Ÿ“• ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

[๐Ÿ“• System Design Interview] ์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ ไธ‹

๋ฌด์ƒํƒœ(stateless) ์›น ๊ณ„์ธต์›น ๊ณ„์ธต์„ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•  ๋•Œ ์ƒํƒœ์ •๋ณด(์‚ฌ์šฉ์ž ์„ธ์…˜ ๋ฐ์ดํ„ฐ)๋ฅผ ์›น ๊ณ„์ธต์—์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•จ ๐Ÿ‘‰ ์ƒํƒœ ์ •๋ณด๋ฅผ RDB๋‚˜ NoSQL๊ณผ ๊ฐ™์€ ์ง€์†์„ฑ ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ์™€์•ผ ํ•จ = stateless ์›น ๊ณ„์ธต ๋งŒ์•ฝ statelessํ•˜์ง€ ์•Š๋‹ค๋ฉด, ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์€ ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•œ๋‹ค.๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์ • ์„ธ์…˜(sticky sesion) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ด๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ๋ถ€๋‹ด์„ ์ค€๋‹ค.๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ์˜ HTTP ์š”์ฒญ์„ ์–ด๋–ค ์›น ์„œ๋ฒ„๋กœ๋„ ์ „์†ก๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ , ์›น ์„œ๋ฒ„๋Š” ์ƒํƒœ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ๊ณต์œ  ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค. ์ฆ‰, ์ƒํƒœ์ •๋ณด๋Š” ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.    ๋ฉ”์‹œ์ง€ ํ ๋ฉ”์‹œ์ง€์˜..

CS/๐Ÿ“• ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ

[๐Ÿ“• System Design Interview] ์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ ไธŠ

๋‹จ์ผ์„œ๋ฒ„ ์‚ฌ์šฉ์ž๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„(api.website.com)์œผ๋กœ ์›น์‚ฌ์ดํŠธ์— ์ ‘์† ๐Ÿ‘‰ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ DNS์— ์งˆ์˜ํ•˜์—ฌ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ • ํ•„์š”DNS ์กฐํšŒ ๊ฒฐ๊ณผ๋กœ IP ์ฃผ์†Œ (15.125.23.214) ๋ฐ˜ํ™˜ํ•ด๋‹น IP ์ฃผ์†Œ๋กœ HTTP ์š”์ฒญ์ด ์ „๋‹ฌ๋จ์š”์ฒญ์„ ๋ฐ›์€ ์›น ์„œ๋ฒ„๋Š” HTML ํŽ˜์ด์ง€๋‚˜ JSON ํ˜•ํƒœ์˜ ์‘๋‹ต ๋ฐ˜ํ™˜์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ ์ €์žฅ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„ ๊ตฌํ˜„์šฉ ์–ธ์–ด(์ž๋ฐ”, ํŒŒ์ด์ฌ) ์‚ฌ์šฉํ•˜๊ณ , ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์šฉ์œผ๋กœ๋Š” ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„์šฉ ์–ธ์–ด(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, HTML) ์‚ฌ์šฉ๋ชจ๋ฐ”์ผ ์•ฑ : ๋ชจ๋ฐ”์ผ ์•ฑ๊ณผ ์›น ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด์„œ HTTP ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ ๐Ÿ‘‰ ๋ฐ˜ํ™˜๋  ์‘๋‹ต ๋ฐ์ดํ„ฐ๋กœ JSON ์‚ฌ์šฉ   ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜๋ฉด ์„œ๋ฒ„ ํ•˜๋‚˜๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ๋‘์–ด์•ผ ํ•จ1. ์›น/๋ชจ๋ฐ”..

AWS

[AWS] AWS Cognito์™€ OAuth

AWS Cognito๋ž€ ?์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ์œ„ํ•œ ์ž๊ฒฉ ์ฆ๋ช… ํ”Œ๋žซํผ์œผ๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ, ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.ํ˜„์žฌ ํŒ€์—์„œ๋Š” OAuth2.0 access token ๋ฐ ์ž๊ฒฉ ์ฆ๋ช…์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ํ•™๋ถ€์ƒ ์‹œ์ ˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ํ–ˆ์„ ๋•Œ๋Š” Spring Security๋ฅผ ์‚ฌ์šฉํ•ด ์ง์ ‘ JWT๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ๊ด€๋ฆฌํ–ˆ๋‹ค. AuthenticationManager ๋˜๋Š” UserDetailsService๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ํ™•์ธํ•˜๊ณ , ์ธ์ฆ ์„ฑ๊ณต ์‹œ ์„œ๋ฒ„๊ฐ€ JWT๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ง์ด๋‹ค.  ํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ๋Š” AWS Cognito๋ฅผ ์‚ฌ์šฉํ•ด JWT๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ณ  ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. JWT ์ƒ์„ฑ ๋ฐ ๊ฒ€์ฆ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผํ•˜๊ณ , ๋ณด์•ˆ ๊ด€..

AWS

[AWS] AWS CloudFormation

AWS CloudFormation์ด๋ž€ ?AWS์—์„œ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ(Infrastructure as Code, IaC) ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ด๋‹ค. CloudFormation์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ํ…์ŠคํŠธ ํŒŒ์ผ(ํ…œํ”Œ๋ฆฟ)๋กœ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด AWS ๋ฆฌ์†Œ์Šค(์˜ˆ: EC2 ์ธ์Šคํ„ด์Šค, S3 ๋ฒ„ํ‚ท, RDS ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ)๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ, ๊ด€๋ฆฌ, ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค. CloudFormation ํ…œํ”Œ๋ฆฟ์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ผ๊ด€๋˜๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ๊ณผ์ •์„ ๋‹จ์ถ•์‹œ์ผœ์ค€๋‹ค ! โœณ๏ธ EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํ…œํ”Œ๋ฆฟ ์˜ˆ์‹œ AWSTemplateFormatVersion: "2010-09-09"Description: "AWS CloudFormation Template to create ..

soogoori
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (5 Page)