SlideShare a Scribd company logo
Scalable Web Architecture
And
Distributed Systems
The Architecture of Open Source Applications
Volume 2
์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค
Request
Response
ServerClient
๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ ๊ณ ๋ ค
์‚ฌํ•ญ
Availability
Reliability
Scalability
Cost
Manageability
Performance
Trade-off !!!!
GOALS
- services
- redundancy
- partitions
- handling failure
Example: Image Hosting
Application
Image Hosting Application
Architecture
โ€ข ์ €์žฅ๋  ์ด๋ฏธ์ง€์˜ ๊ฐœ์ˆ˜์— ์ œํ•œ์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ €์žฅ๊ณต๊ฐ„
์˜ ํ™•์žฅ์„ฑ์— ๋Œ€ํ•ด์„œ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค
โ€ข ์ด๋ฏธ์ง€ ๋ณด๊ธฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‘๋‹ต ์‹œ๊ฐ„์ด ๋นจ๋ผ
์•ผ ํ•œ๋‹ค.
โ€ข ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋‚œ ํ›„, ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š”
ํ•ญ์ƒ ์‹œ์Šคํ…œ์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. (๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ
์‹ ๋ขฐ์„ฑ)
โ€ข ์‹œ์Šคํ…œ์„ ์šด์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค(๊ด€๋ฆฌ์„ฑ)
โ€ข ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค ์ž์ฒด์˜ ์ด์ต์œจ์ด ๋†’์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ
์—, ์‹œ์Šคํ…œ์€ ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ์šด์šฉ๋  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
โ€ข ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‘๊ฐ€์ง€๋กœ ํ•œ์ • ํ•œ๋‹ค
upload(write) ์™€ query(read)
โ€ข Problem 1
โ€˜Write'๊ฐ€ 'Read'์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
์ด ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ๊ณต์œ  ์ž์›์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
๋‹ค์šด๋กœ๋“œ์™€ ์—…๋กœ๋“œ์˜ ์†๋„๊ฐ€ ๋˜‘๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋„ โ€˜Write'๊ฐ€ 'Read'์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
(์‹ค์ œ๋กœ๋Š” ๋‹ค์šด๋กœ๋“œ ์†๋„์™€ ์—…๋กœ๋“œ ์†๋„ ๋น„์œจ์€ 3:1 ์ •๋„๋‹ค)
'์ฝ๊ธฐ'๋Š” ์บ์‹œ์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ '์“ฐ๊ธฐ' ์š”์ฒญ์€ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋””์Šคํฌ๊นŒ์ง€ ๋„๋‹ฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด
๋‹ค.
โ€ข Problem 2
๋””์ž์ธ ๊ด€์ ์—์„œ์˜ ๋ฌธ์ œ ์ž„. ์›น ์„œ๋ฒ„๋Š” ๋™์‹œ ์ปค๋„ฅ์…˜ ์ˆ˜์— ์ƒํ•œ์„ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.(์•„ํŒŒ์น˜์˜ ๊ฒฝ์šฐ ๋””
ํดํŠธ 500๊ฐœ)
์ฝ๊ธฐ๋Š” ๋น„๋™๊ธฐ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— gzip ์••์ถ•์ด๋‚˜ chunked transfer encoding์„
์ด์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์“ฐ๊ธฐ์˜ ๊ฒฝ์šฐ์—๋Š” ์—…๋กœ๋“œ ๋™์•ˆ ์—ฐ๊ฒฐ์„ ์—ด์–ด ๋†“์€ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ
ํ•œ๋‹ค.
๋งŒ์•ฝ 1MB๋ฅผ ์—…๋กœ๋“œ ํ•˜๋Š” ๊ฒƒ์ด 1์ดˆ ์ด์ƒ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ๊ณ ์ž‘ 500๊ฐœ์˜ ๋™์‹œ์ ์ธ ์“ฐ๊ธฐ๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜
์žˆ์„ ๋ฟ์ด๋‹ค.
Services
์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•˜์—ฌ ์ฝ๊ธฐ ์„œ๋น„์Šค์™€ ์“ฐ๊ธฐ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.
์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.
(๋ณดํ†ต ์‚ฌ์šฉ์ž๋“ค์€ ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” ์ฝ๊ธฐ๋ฅผ ๋” ๋งŽ์ด ํ•œ๋‹ค)
Service-Oriented
Architecture
Services
Flickr(ํ”Œ๋ฆฌ์ปค)์—์„œ๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ์—
์‚ฌ์šฉ์ž๋ฅผ ๋ถ„์‚ฐ์‹œํ‚จ๋‹ค.
๊ฐ๊ฐ์˜ ์ƒค๋“œ๋Š” ์ƒค๋“œ์— ํ• ๋‹น๋œ ์‚ฌ์šฉ์ž๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ด๋ฅผ ์ฒ˜
๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒค๋“œ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
Problem !!!!!!!!
๊ทธ๋Ÿฌ๋‚˜ ์–ธ์ œ๋‚˜ ์˜ค๋ฅ˜๋Š” ๋ฐœ
์ƒ ํ• ์ˆ˜ ์žˆ๋‹ค.
Redundancy
์‹œ์Šคํ…œ์„ ์ด์ค‘ํ™”ํ•˜๋Š” ๊ฒƒ์€ single point of failure ์„ ์—†์• ๊ณ ,
์žฅ์•  ๋ฐœ์ƒ ์‹œ์—๋„ ๋ฐฑ์—…ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์ด ๊ณ„์† ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
์„œ๋น„์Šค๋ฅผ ์ด์ค‘ํ™”ํ•  ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ Shared Nothing ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
์ค‘์š”ํ•œ ๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ single point of failure ๋ฅผ ์—†์• ๊ณ  ์žฅ์• ์— ์ข€ ๋” ์ž˜ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ
๊ฒŒ ๋œ๋‹ค.
Problem !!!!!!!!
ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์ˆ˜
์žˆ๋‹ค.
๋˜๋Š” ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋งŽ์€ ์ปดํ“จํŒ… ์ž์›์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์–ด ์„ฑ
๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
Partitions
์šฐ๋ฆฌ๋Š” ๋‘๊ฐ€์ง€๋ฅผ ์„ ํƒ ํ• ์ˆ˜ ์žˆ๋‹ค.
ํ•˜๋‚˜๋Š” ์ˆ˜์ง์  ํ™•์žฅ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ˆ˜ํ‰์  ํ™•์žฅ
Partitions
- To scale vertically
๊ฐ๊ฐ์˜ ์„œ๋ฒ„์— ๋” ๋งŽ์€ ์ž์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ํ•˜๋“œ ๋””์Šคํฌ๋‚˜ ๋” ๋น ๋ฅธ CPU๋‚˜ ํฐ ์šฉ๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ
์ถ”๊ฐ€ ํ•˜๋Š” ๊ฒŒ ์ด์— ํ•ด๋‹นํ•œ๋‹ค. ์ฆ‰, ์ˆ˜์ง์  ํ™•์žฅ์€ ๊ฐ ์ž์›์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„
๋งํ•œ๋‹ค.
- To scale horizontally
๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ์—๋Š” ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ˆ˜ํ‰์  ํ™•์žฅ์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์ทจํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์˜ ๊ณ ์œ ํ•œ ์„ค๊ณ„
์›์น™๋“ค์„ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค.
์ˆ˜ํ‰์  ํ™•์žฅ์„ ํ•˜๋Š” ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์„œ๋น„์Šค๋ฅผ ํŒŒํ‹ฐ์…˜์ด๋‚˜ ์ƒค๋“œ ๋‹จ์œ„
๋กœ
๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
Problem !!!!!!!!
- data locality (๋ฐ์ดํ„ฐ ๋กœ์ปฌ๋ฆฌํ‹ฐ)
์—ฐ์‚ฐํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๊นŒ์ด ์œ„์น˜ํ•ด ์žˆ์„ ์ˆ˜๋ก ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์€ ํ–ฅ์ƒ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋กœ์ปฌ์— ์žˆ์ง€ ์•Š์„ ์ˆ˜
์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋น„์šฉ์ด ๋†’์€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•œ ์ฝ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜
์žˆ์–ด ์ž ์žฌ์ ์ธ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
- inconsistency (๋น„์ •ํ•ฉ์„ฑ)
๊ณต์œ ๋œ ์ž์›์œผ๋กœ๋ถ€ํ„ฐ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๋•Œ.
์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ ค ํ•  ๋•Œ, ์ฝ๊ธฐ ์š”์ฒญ์ด ์—…๋ฐ์ดํŠธ ์š”์ฒญ๋ณด๋‹ค ๋จผ์ € ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ํ•ด
๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋น„์ •ํ•ฉ์„ฑ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ Dog์—์„œ Gizmo๋กœ ๋ฐ”๊พธ๋Š” ์—…๋ฐ์ดํŠธ ์š”์ฒญ
์„ ๋ณด๋ƒˆ๊ณ ,
๋™์‹œ์— ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด ๊ฒฝํ•ฉ์กฐ๊ฑด์ด ๋ฐœ์ƒํ•œ๋‹ค.
fault tolerance and
monitoring reference
โ€ข http://katemats.com/distributed-systems-basics-
handling-failure-fault-tolerance-and-monitoring/
The Building Blocks of Fast and
Scalable Data Access
LAMP stack
applications
๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์ 
์ธ ๋ฌธ์ œ์—
์ง๋ฉดํ•˜๊ฒŒ ๋œ๋‹ค.
1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ํ™•์žฅ์„ฑ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๊ณ ,
2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ํ™•์žฅ์„ฑ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž.
๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š”(๋žœ๋คํ•œ) ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‹ถ๋‹ค.
์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋†’์€ ๋น„์šฉ์ด ํ•„์š”ํ•˜
๊ธฐ ๋•Œ๋ฌธ์—
๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋น ๋ฅธ ์•ก์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š”
๊ฒƒ์€ ์–ด๋ ต๋‹ค.
์—ฌ๊ธฐ์„œ ์„ฑ๋Šฅ์— ๊ฐ€์žฅ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์€ ๋””์Šคํฌ I/O๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
- Caches (Global Cache, Distributed Cache)
- Proxies
- Indexes
- Load Balancers
GOALS
Caches ?
์ตœ๊ทผ์— ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์‹œ ์š”์ฒญ๋ฐ›์„ ํ™•๋ฅ ์ด ๋†’๋‹ค๋Š” ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ
(locality of reference)์— ๊ธฐ๋ฐ˜ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
์บ์‹œ๋ž€ ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค.
์บ์‹œ๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ๋ชจ๋“  ๋‹จ๊ณ„์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋ŸฐํŠธ์—”๋“œ์™€ ๊ฐ€๊นŒ์šด ๊ณณ์—
์œ„์น˜ํ•˜๋Š”
๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ณดํ†ต ์บ์‹œ๋Š” ์„œ๋น„์Šค์˜ ๋ฐฑ ์—”๋“œ๊นŒ์ง€ ๊ฐ€๋Š” ์‹œ๊ฐ„์ ์ธ ๋น„
์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
Caches
Insert a cache on your request layer node
๋งค๋ฒˆ ์š”์ฒญ์€ ์„œ๋น„์Šค๋กœ ๋ณด๋‚ด์ง€๊ณ , ์š”์ฒญ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ทธ ๋…ธ๋“œ๋Š” ๋น 
๋ฅด๊ฒŒ
๋กœ์ปฌ์—์„œ ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.
๋งŒ์•ฝ ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ์š”์ฒญ ๋…ธ๋“œ๋Š” ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•  ๊ฒƒ์ด
๋‹ค.
Caches
Multiple caches
๋งŒ์•ฝ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ž„์˜๋กœ ์š”์ฒญ์„ ๋ถ„์‚ฐ์‹œํ‚ค๋ฉด, ๊ฐ™์€ ์š”์ฒญ์ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๊ฒŒ ๋ 
์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.
์บ์‹œ ๋ฏธ์Šค๋ฅผ ์ค„์ด๋ฉด์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด
๊ธ€๋กœ๋ฒŒ ์บ์‹œ ์™€ ๋ถ„์‚ฐ ์บ์‹œ๋‹ค.
Global Cache 1
All the nodes use the same single cache space.
์š”์ฒญ ๋…ธ๋“œ์—์„œ ๊ฐ๊ฐ์˜ ์š”์ฒญ์€ ๋กœ์ปฌ์— ์บ์‹œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ
์งˆ์˜ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋Š” ์˜ค์ง ์บ์‹œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜๊ณ , ๊ธ€๋กœ๋ฒŒ ์บ์‹œ๋Š” ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๊ธฐ ์ž์‹ ์—์„œ ์ฐพ
์„ ์ˆ˜ ์—†์„ ๋•Œ,
์บ์‹œ ์Šค์Šค๋กœ๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜์—ฌ ์š”์ฒญ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
์ด๋Ÿฐ ์•„ํ‚คํ…์ฒ˜๋Š” ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค
(ํŠนํ™”๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์จ์„œ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์บ์‹œ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๊ณ ์ •๋œ ์ผ์ •๋Ÿ‰
์ผ ๋•Œ)
Global Cache 2
์š”์ฒญ ๋…ธ๋“œ๊ฐ€ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ํ™•์ธํ•˜์˜€์„ ๋•Œ๋Š”
์ง์ ‘ ์Šคํ† ๋ฆฌ์ง€์— ์งˆ์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค.
ํฐ ํฌ๊ธฐ์˜ ํŒŒ์ผ ์ œ๊ณต์„ ์œ„ํ•˜์—ฌ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—, ๋‚ฎ์€ ์บ์‹œ ํžˆํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ „๋ฐ˜์ ์ธ ์บ์‹œ ๋ฏธ์Šค๊ฐ€
์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.
์ด ๊ฒฝ์šฐ์—๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์บ์‹œ์— ์œ„์น˜ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค.
Distributed Cache
๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๋Š” ๋ฐฉ์‹์ด๋‹ค.
Distributed Cache
โ€ข ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ„์‚ฐ ์บ์‹œ๋Š” consistent hashing ํ•จ์ˆ˜๋ฅผ ์‚ฌ
์šฉํ•œ๋‹ค.
โ€ข ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์œ„์น˜ ํŒŒ์•… ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๋Š” ๊ฐ๊ฐ์˜ ์กฐ๊ทธ๋งˆํ•œ ์บ์‹œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
โ€ข ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์›๋ณธ ์ €์žฅ ๊ณต๊ฐ„์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์ „
์— ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
๋ถ„์‚ฐ ์บ์‹œ์˜ ์ด๋Ÿฐ ์  ๋•Œ๋ฌธ์— ์š”์ฒญ ํ’€์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด
์ „์ฒด ์บ์‹œ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
Distributed Cache
โ€ข ๋ถ„์‚ฐ ์บ์‹œ์˜ ๋‹จ์ 
์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๋…ธ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.
๋‹ค๋ฅธ ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณต์ œ๋ณธ์„ ๊ฐ€์ง€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ
ํ•˜๊ธฐ๋„
ํ•œ๋‹ค.
โ€ข ์บ์‹œ์˜ ์žฅ์ 
์˜ฌ๋ฐ”๋ฅด๊ฒŒ๋งŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๋ฉด ์‹œ์Šคํ…œ์„ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค
์ˆ˜ ์žˆ๋‹ค
์บ์‹œ๋ฅผ ์ด์šฉํ•ด ๋”์šฑ ๋” ๋งŽ์€ ์š”์ฒญ์„ ์ด์ „๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ
์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ ์‹œ์Šคํ…œ์—๋Š” ๊ฐ’ ๋น„์‹ผ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ์ถ”๊ฐ€์ 
์ธ ์ €์žฅ ๊ณต๊ฐ„์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ ๋ฌธ์ œ๊ฐ€ ํ•ญ์ƒ ๋”ฐ๋ฅธ๋‹ค.
OpenSource Cache
๋กœ์ปฌ์บ์‹œ๋‚˜ ๋ถ„์‚ฐ์บ์‹œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
Distributed Cache
reference
โ€ข http://www.slideshare.net/guoqing75/4069180-
caching-performance-lessons-from-facebook
โ€ข https://www.facebook.com/note.php?note_id=39391
378919
Proxies
Proxies
ํ”„๋ฝ์‹œ๋Š” ์š”์ฒญ์„ ํ•„ํ„ฐ๋ง, ๋กœ๊น…, ๋ณ€ํ™˜(ํ—ค๋”์— ์†์„ฑ ๋”ํ•˜๊ณ /๋นผ๊ณ , ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”, ์••
์ถ•)ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ์˜ค๋Š” ์š”์ฒญ์„ ๋ฐ›์•„ ์ •๋ฆฌํ•˜์—ฌ, ์ „์ฒด ์‹œ์Šคํ…œ ๊ด€์ 
์—์„œ ์š”์ฒญ ํŠธ๋ž˜ํ”ฝ์„ ์ตœ์ ํ™”์‹œํ‚ค๋Š” ๋ฐ๋„ ๋„์›€์ด ๋œ๋‹ค.
Proxies
Collapsed Forwarding
๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ”„๋ฝ์‹œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์˜ ํ•˜๋‚˜๋กœ
๊ฐ™๊ฑฐ๋‚˜ ๋น„์Šทํ•œ ์š”์ฒญ๋“ค์„ ๋ชจ์•„ ๋‹จ ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
์š”์ฒญ์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์‹œ๊ฐ„ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ์š”์ฒญ์—๋Š” ๋” ๋งŽ์€ ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋ฐœ์ƒํ• 
์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์ƒํ™ฉ์—์„œ๋Š” ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ๊ฒƒ์ด๋‹ค.
Proxies
ํ”„๋ฝ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ณต๊ฐ„์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ฌถ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ „๋žต์€ ์š”์ฒญ์˜ ๋ฐ์ดํ„ฐ ๋กœ์ปฌ๋ฆฌํ‹ฐ๋ฅผ ์ตœ๋Œ€ํ™”ํ•˜์—ฌ, ์š”์ฒญ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
์ˆ˜๋งŽ์€ ์š”์ฒญ์ด B์˜ ์ผ๋ถ€๋ถ„์„ ์š”์ฒญ(B:partB1, B:partB2) -> ํ”„๋ฝ์‹œ๋Š” bigB ๋ฅผ ์š”์ฒญ ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ถ„์„ ๋žœ๋คํ•˜๊ฒŒ ์š”์ฒญํ•  ๋•Œ ์š”์ฒญ ์‹œ๊ฐ„์„ ๋‹จ
์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
ํ”„๋ฝ์‹œ๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ๋กœ๋“œ ์ƒํ™ฉ์ด๋‚˜ ์บ์‹œ ์‚ฌ์šฉ์ด ์ œํ•œ์ ์ธ ์ƒํ™ฉ์—์„œ
ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.
Open Source Proxies
Indexes
๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด์„œ ์ธ๋ฑ์‹ฑ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด
๋‹ค.
๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ์ง€๋งŒ ์ „๋‹ฌํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ๋Š”(์˜ˆ๋ฅผ ๋“ค์–ด 1KB์ •
๋„), ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋Š” ํ•„์ˆ˜์ ์ด๋‹ค.
์ธ๋ฑ์Šค๋Š” ๋ชฉ์ฐจ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
Indexes
BerkeleyDB์™€ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์ด๋Ÿฌํ•œ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ 
์ƒ‰์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์ƒ์ ์ด๊ณ  ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋•Œ๋•Œ๋กœ ๋งต์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ์ธ๋ฑ์Šค๋„ ์žˆ๋‹ค.
Load Balancers
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์–ด๋–ค ์•„ํ‚คํ…์ฒ˜์—์„œ๋“  ์ค‘์š”ํ•˜๋‹ค.
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์„œ๋น„์Šค ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์—๊ฒŒ ๋ถ„๋ฐฐํ•˜๋Š” ์ผ์„ ํ•œ๋‹ค.
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ์ฃผ ๋ชฉ์ ์€ ๋™์‹œ์— ์˜ค๋Š” ์ˆ˜๋งŽ์€ ์ปค๋„ฅ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ•ด๋‹น ์ปค
๋„ฅ์…˜์ด
์š”์ฒญ ๋…ธ๋“œ ์ค‘์˜ ํ•˜๋‚˜๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋˜ํ•œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์„œ๋น„์Šค๊ฐ€ ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
Open Source Load
Balancers
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์—์„œ ์„œ๋น„์Šค ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค.
( ๋žœ๋ค, ๋ผ์šด๋“œ ๋กœ๋นˆ, CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ  ๋“ฑ๊ณผ ๊ฐ™์€ ํŠน์ • ๋ฒ”์ฃผ์— ๋”ฐ๋ผ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค)
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌํ˜„๋  ์ˆ˜๋„ ์žˆ๊ณ  ํ•˜๋“œ์›จ์–ด ์ œํ’ˆ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.
Multiple Load Balancers
ํ”„๋ฝ์‹œ์ฒ˜๋Ÿผ ์–ด๋–ค ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์š”์ฒญ์˜ ์ข…๋ฅ˜๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌ
ํ•  ์ˆ˜
์žˆ๋Š” ๋…ธ๋“œ์— ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
(๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋ฅผ ๋ฆฌ๋ฒ„์Šค ํ”„๋ฝ์‹œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค).
Queue
์‹œ์Šคํ…œ์ด ํ™•์žฅ์„ฑ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜๋ ค๋ฉด ์“ฐ๊ธฐ์— ๋Œ€ํ•œ ๊ณ ๋ ค ๋˜ํ•œ ํ•„์š”ํ•˜๋‹ค.
๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์— ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„๋‚˜ ์ธ๋ฑ์Šค์— ์“ฐ์—ฌ์•ผ ํ•˜๊ณ  ๋‹น์‹œ์˜ ์‹œ์Šคํ…œ ๋ถ€ํ•˜ ์ƒํƒœ๊ฐ€
๋†’๋‹ค๋ฉด ์“ฐ๊ธฐ ์—ฐ์‚ฐ์€ ๋งค์šฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.
์ด๋Ÿด ๋•Œ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ๊ณผ ๊ฐ€์šฉ์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ํ๋ฅผ ์‚ฌ์šฉํ•˜
๋Š” ๊ฒƒ์ด๋‹ค.
Queue
ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์€ ์‹œ์Šคํ…œ์ด๋ผ๋„ ๋ฐ์ด
ํ„ฐ ์–‘์ด
์ ๋‹ค๋ฉด ๋ณ„ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ๋ณด๋‹ค ๋” ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด, ๊ฐ ํด
๋ผ์ด์–ธํŠธ๋Š” ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋™๊ธฐ์ ์ธ ํ–‰๋™์€ ํด๋ผ์ด์–ธํŠธ์˜ ์„ฑ๋Šฅ์„ ์‹ฌ๊ฐํ•˜๊ฒŒ ์ €ํ•˜์‹œํ‚จ๋‹ค.
Queue
์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊ณผ ์„œ๋น„์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ผ
์‚ฌ์ด์—
์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ๋กœ ์ž‘์—… ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋‚œ ๋‹ค์Œ์—๋Š” ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋Œ€์‹  ํ์— ์š”์ฒญ์ด ์ž˜
์Œ“์˜€๋‹ค๋Š”
์‘๋‹ต(acknowledgement)๋งŒ ๋ฐ›๋Š”๋‹ค.
ํ์˜ ์žฅ์ ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค๋Š” ๋ฐ์— ์žˆ๋‹ค.
OR
reference
โ€ข http://helloworld.naver.com/hell
oworld/206816
โ€ข http://www.aosabook.org/en/dis
tsys.html

More Related Content

PDF
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… AWS(Amazon Web Services) - ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ
PDF
[115]์ฟ ํŒก ์„œ๋น„์Šค ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ†ตํ•ด ๋ฐฐ์šด๊ฒƒ๋“ค
PPTX
10์›” ์›จ๋น„๋‚˜ - AWS ์ƒ์—์„œ Microsoft SQL Server ์šด์˜์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์‚ดํŽด๋ณด๊ธฐ (์ตœ์ •์šฑ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
PDF
20130716 AWS Meister re:Generate - Amazon Redshift (Korean)
PPTX
Scalable system design patterns
PPTX
AWS 12์›” ์›จ๋น„๋‚˜ โ”‚์„ฑ๊ณต์ ์ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์šด์˜ ๊ณ ๋„ํ™”
PDF
[2017 Windows on AWS] AWS ๋ฅผ ํ™œ์šฉํ•œ SQL Server ์ตœ์  ํ™œ์šฉ ๋ฐฉ์•ˆ
PPT
10์›” ์›จ๋น„๋‚˜ - AWS์—์„œ Active Directory ๊ตฌ์ถ• ๋ฐ ์—ฐ๋™ ์˜ต์…˜ ์‚ดํŽด๋ณด๊ธฐ (๊น€์šฉ์šฐ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… AWS(Amazon Web Services) - ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ
[115]์ฟ ํŒก ์„œ๋น„์Šค ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ†ตํ•ด ๋ฐฐ์šด๊ฒƒ๋“ค
10์›” ์›จ๋น„๋‚˜ - AWS ์ƒ์—์„œ Microsoft SQL Server ์šด์˜์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์‚ดํŽด๋ณด๊ธฐ (์ตœ์ •์šฑ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
20130716 AWS Meister re:Generate - Amazon Redshift (Korean)
Scalable system design patterns
AWS 12์›” ์›จ๋น„๋‚˜ โ”‚์„ฑ๊ณต์ ์ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์šด์˜ ๊ณ ๋„ํ™”
[2017 Windows on AWS] AWS ๋ฅผ ํ™œ์šฉํ•œ SQL Server ์ตœ์  ํ™œ์šฉ ๋ฐฉ์•ˆ
10์›” ์›จ๋น„๋‚˜ - AWS์—์„œ Active Directory ๊ตฌ์ถ• ๋ฐ ์—ฐ๋™ ์˜ต์…˜ ์‚ดํŽด๋ณด๊ธฐ (๊น€์šฉ์šฐ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)

What's hot (20)

PDF
๋„ฅ์Šจ ๊ธ€๋กœ๋ฒŒ ํ”Œ๋žซํผ ๊ตฌ์ถ• ์ด์•ผ๊ธฐ : DB Migration case study (์ž„ํ˜„์ˆ˜ ํ”Œ๋žซํผ์ธํ”„๋ผ์‹ค Technical Manager, ๋„ฅ...
PDF
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„ Amazon Aurora :: ๊น€์ƒํ•„ :: AWS Summit Seoul 2016
PDF
[2017 Windows on AWS] AWS ๋ฅผ ํ™œ์šฉํ•œ Active Directory ์—ฐ๋™ ๋ฐ ์ด๊ด€ ๋ฐฉ์•ˆ
PDF
AWS DMS๋ฅผ ํ†ตํ•œ ์˜ค๋ผํด DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฉ๋ฒ• - AWS Summit Seoul 2017
PDF
[Games on AWS 2019] AWS ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋งŒ๋žฉ ๋‹ฌ์„ฑ ํŠธ๋ž™ | Aurora๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ๋ฒจ ์—…! - ๊น€๋ณ‘์ˆ˜ AWS ...
PDF
Photon๊ฒŒ์ž„์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ์—”์ง„๊ณผ GBaaS๋ฅผ ํ†ตํ•œ AWS DB ์„œ๋น„์Šค ๊ตฌ์„ฑ ๋ฐฉ๋ฒ• ์†Œ๊ฐœ - AWS Summit Seoul 2017
PDF
๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ AWS์ƒ์˜ ๊ณ ์„ฑ๋Šฅ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ (์ด์ •ํ›ˆ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ, AWS) :: Gaming on AWS 2018
PDF
Amazon EC2 Deep Dive - ์ด์ฐฝ์ˆ˜ (AWS ์†”๋ฃจ์…˜ ์•„ํ‚คํ…ํŠธ) : 8์›” ์˜จ๋ผ์ธ ์„ธ๋ฏธ๋‚˜
PDF
๊ธฐ์—… IT ์ธํ”„๋ผ ํ™˜๊ฒฝ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ ์ ์šฉ ๋ฐฉ์•ˆ - AWS Summit Seoul 2017
PDF
๋‚ด ์„œ๋น„์Šค์—๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งž๋Š”๊ฑธ๊นŒ? - ์ดํ˜ AWS ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ :: AWS Summit Seoul 2021
PPTX
AWS 12์›” ์›จ๋น„๋‚˜ โ”‚ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•œ ์„ฑ๊ณต์‚ฌ๋ก€
PDF
Amazon ECS/ECR์„ ํ™œ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์„ฑํ•˜๊ธฐ - ๊น€๊ธฐ์™„ (AWS ์†”๋ฃจ์…˜์ฆˆ์•„ํ‚คํ…ํŠธ)
PDF
์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๋Š” AWS ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ :: ์ž„๊ธฐ์„ฑ & ์‹ ์šฉ๋…€ :: AWS Summit Seoul 2016
PDF
CloudWatch ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์‹ ์†ํ•œ ๋Œ€์‘์„ ์œ„ํ•œ ๋…ธํ•˜์šฐ - ๋ฐ•์„ ์šฉ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ:: AWS Cloud Track 3 Gaming
PDF
AWS CLOUD 2017 - Amazon Redshift ๊ธฐ๋ฐ˜ DW ์™€ ๋น„์ง€๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ๊ตฌํ˜„ ๋ฐฉ๋ฒ• (๊น€์ผํ˜ธ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
PDF
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
PDF
Basics for understanding the cloud
PDF
AWS ๊ธฐ๋ฐ˜์˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ ๊ตฌํ˜„ ๋ฐฉ์•ˆ :: ๊น€ํ•„์ค‘ :: AWS Summit Seoul 20
PDF
AWS CLOUD 2018- Amazon Auroraย  ์‹ ๊ทœ ์„œ๋น„์Šค ์•Œ์•„๋ณด๊ธฐ (์ตœ์œ ์ • ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
PPTX
AWS๋กœ ๊ฒŒ์ž„ ๊ธฐ๋ฐ˜ ๋‹ค์ง€๊ธฐ - ๊น€๋ณ‘์ˆ˜, ๋ฐ•์ง„์„ฑ :: AWS Game Master ์˜จ๋ผ์ธ ์„ธ๋ฏธ๋‚˜ #3
๋„ฅ์Šจ ๊ธ€๋กœ๋ฒŒ ํ”Œ๋žซํผ ๊ตฌ์ถ• ์ด์•ผ๊ธฐ : DB Migration case study (์ž„ํ˜„์ˆ˜ ํ”Œ๋žซํผ์ธํ”„๋ผ์‹ค Technical Manager, ๋„ฅ...
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„ Amazon Aurora :: ๊น€์ƒํ•„ :: AWS Summit Seoul 2016
[2017 Windows on AWS] AWS ๋ฅผ ํ™œ์šฉํ•œ Active Directory ์—ฐ๋™ ๋ฐ ์ด๊ด€ ๋ฐฉ์•ˆ
AWS DMS๋ฅผ ํ†ตํ•œ ์˜ค๋ผํด DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฉ๋ฒ• - AWS Summit Seoul 2017
[Games on AWS 2019] AWS ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋งŒ๋žฉ ๋‹ฌ์„ฑ ํŠธ๋ž™ | Aurora๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ๋ฒจ ์—…! - ๊น€๋ณ‘์ˆ˜ AWS ...
Photon๊ฒŒ์ž„์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ์—”์ง„๊ณผ GBaaS๋ฅผ ํ†ตํ•œ AWS DB ์„œ๋น„์Šค ๊ตฌ์„ฑ ๋ฐฉ๋ฒ• ์†Œ๊ฐœ - AWS Summit Seoul 2017
๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ AWS์ƒ์˜ ๊ณ ์„ฑ๋Šฅ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ (์ด์ •ํ›ˆ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ, AWS) :: Gaming on AWS 2018
Amazon EC2 Deep Dive - ์ด์ฐฝ์ˆ˜ (AWS ์†”๋ฃจ์…˜ ์•„ํ‚คํ…ํŠธ) : 8์›” ์˜จ๋ผ์ธ ์„ธ๋ฏธ๋‚˜
๊ธฐ์—… IT ์ธํ”„๋ผ ํ™˜๊ฒฝ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ ์ ์šฉ ๋ฐฉ์•ˆ - AWS Summit Seoul 2017
๋‚ด ์„œ๋น„์Šค์—๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งž๋Š”๊ฑธ๊นŒ? - ์ดํ˜ AWS ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ :: AWS Summit Seoul 2021
AWS 12์›” ์›จ๋น„๋‚˜ โ”‚ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•œ ์„ฑ๊ณต์‚ฌ๋ก€
Amazon ECS/ECR์„ ํ™œ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์„ฑํ•˜๊ธฐ - ๊น€๊ธฐ์™„ (AWS ์†”๋ฃจ์…˜์ฆˆ์•„ํ‚คํ…ํŠธ)
์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๋Š” AWS ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ :: ์ž„๊ธฐ์„ฑ & ์‹ ์šฉ๋…€ :: AWS Summit Seoul 2016
CloudWatch ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์‹ ์†ํ•œ ๋Œ€์‘์„ ์œ„ํ•œ ๋…ธํ•˜์šฐ - ๋ฐ•์„ ์šฉ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ:: AWS Cloud Track 3 Gaming
AWS CLOUD 2017 - Amazon Redshift ๊ธฐ๋ฐ˜ DW ์™€ ๋น„์ง€๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ๊ตฌํ˜„ ๋ฐฉ๋ฒ• (๊น€์ผํ˜ธ ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Basics for understanding the cloud
AWS ๊ธฐ๋ฐ˜์˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ ๊ตฌํ˜„ ๋ฐฉ์•ˆ :: ๊น€ํ•„์ค‘ :: AWS Summit Seoul 20
AWS CLOUD 2018- Amazon Auroraย  ์‹ ๊ทœ ์„œ๋น„์Šค ์•Œ์•„๋ณด๊ธฐ (์ตœ์œ ์ • ์†”๋ฃจ์…˜์ฆˆ ์•„ํ‚คํ…ํŠธ)
AWS๋กœ ๊ฒŒ์ž„ ๊ธฐ๋ฐ˜ ๋‹ค์ง€๊ธฐ - ๊น€๋ณ‘์ˆ˜, ๋ฐ•์ง„์„ฑ :: AWS Game Master ์˜จ๋ผ์ธ ์„ธ๋ฏธ๋‚˜ #3
Ad

Similar to Scalable web architecture and distributed systems (20)

PDF
ํ™•์žฅ๊ฐ€๋Šฅํ•œ ์›น ์•„ํ‚คํ…์ณ ๊ตฌ์ถ• ๋ฐฉ์•ˆ
ย 
PDF
์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜ 2013.08
PDF
แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„…แ…ณแ†ฏ แ„€แ…กแ„‚แ…ณแ†ผแ„’แ…กแ„€แ…ฆ แ„’แ…กแ„‚แ…ณแ†ซ แ„€แ…ตแ„‰แ…ฎแ†ฏ
PPTX
Introduction to scalability
PDF
์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜ 2014.03
PPTX
4. แ„ƒแ…ขแ„‹แ…ญแ†ผแ„…แ…ฃแ†ผ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ง แ„‰แ…ฅแ†ฏแ„€แ…จ แ„‘แ…ขแ„แ…ฅแ†ซ
PPTX
๋ถ„์‚ฐ์ €์žฅ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ 12๊ฐ€์ง€ ์ด์•ผ๊ธฐ
PPTX
Facebook์ด ๋Œ€๊ทœ๋ชจ ํ™•์žฅ์„ฑ ๋„์ „์—์„œ ๋ฐฐ์šด ๊ฒƒ
PPTX
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
PDF
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
PDF
Webservice cache strategy
PPTX
๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ณ ์„ค๊ณ„ #3 ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ณ
PDF
How to build massive service for advance
PPTX
Scalable web architecture
PDF
Scalable webservice
PPTX
MSAแ„‹แ…ช infra
PDF
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ด๊ธฐ์ข… WAS ํด๋Ÿฌ์Šคํ„ฐ๋ง ์†”๋ฃจ์…˜- Athena Dolly
PDF
Internet Scale Service Arichitecture
PDF
Massive service basic
PDF
Twitter์˜ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์šด์šฉ ๊ธฐ์ˆ  ์–ด๋А ๊ณ ๋ž˜์˜ ๋ฐฐ์†์—์„œ
ํ™•์žฅ๊ฐ€๋Šฅํ•œ ์›น ์•„ํ‚คํ…์ณ ๊ตฌ์ถ• ๋ฐฉ์•ˆ
ย 
์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜ 2013.08
แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„…แ…ณแ†ฏ แ„€แ…กแ„‚แ…ณแ†ผแ„’แ…กแ„€แ…ฆ แ„’แ…กแ„‚แ…ณแ†ซ แ„€แ…ตแ„‰แ…ฎแ†ฏ
Introduction to scalability
์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜ 2014.03
4. แ„ƒแ…ขแ„‹แ…ญแ†ผแ„…แ…ฃแ†ผ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ง แ„‰แ…ฅแ†ฏแ„€แ…จ แ„‘แ…ขแ„แ…ฅแ†ซ
๋ถ„์‚ฐ์ €์žฅ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ 12๊ฐ€์ง€ ์ด์•ผ๊ธฐ
Facebook์ด ๋Œ€๊ทœ๋ชจ ํ™•์žฅ์„ฑ ๋„์ „์—์„œ ๋ฐฐ์šด ๊ฒƒ
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Tdc2013 ์„ ๋ฐฐ๋“ค์—๊ฒŒ ๋ฐฐ์šฐ๋Š” server scalability
Webservice cache strategy
๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ณ ์„ค๊ณ„ #3 ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ณ
How to build massive service for advance
Scalable web architecture
Scalable webservice
MSAแ„‹แ…ช infra
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ด๊ธฐ์ข… WAS ํด๋Ÿฌ์Šคํ„ฐ๋ง ์†”๋ฃจ์…˜- Athena Dolly
Internet Scale Service Arichitecture
Massive service basic
Twitter์˜ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์šด์šฉ ๊ธฐ์ˆ  ์–ด๋А ๊ณ ๋ž˜์˜ ๋ฐฐ์†์—์„œ
Ad

Scalable web architecture and distributed systems

  • 1. Scalable Web Architecture And Distributed Systems The Architecture of Open Source Applications Volume 2
  • 3. ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ Availability Reliability Scalability Cost Manageability Performance
  • 5. GOALS - services - redundancy - partitions - handling failure
  • 7. Image Hosting Application Architecture โ€ข ์ €์žฅ๋  ์ด๋ฏธ์ง€์˜ ๊ฐœ์ˆ˜์— ์ œํ•œ์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ €์žฅ๊ณต๊ฐ„ ์˜ ํ™•์žฅ์„ฑ์— ๋Œ€ํ•ด์„œ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค โ€ข ์ด๋ฏธ์ง€ ๋ณด๊ธฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‘๋‹ต ์‹œ๊ฐ„์ด ๋นจ๋ผ ์•ผ ํ•œ๋‹ค. โ€ข ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋‚œ ํ›„, ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š” ํ•ญ์ƒ ์‹œ์Šคํ…œ์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. (๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ) โ€ข ์‹œ์Šคํ…œ์„ ์šด์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค(๊ด€๋ฆฌ์„ฑ) โ€ข ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค ์ž์ฒด์˜ ์ด์ต์œจ์ด ๋†’์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ ์—, ์‹œ์Šคํ…œ์€ ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ์šด์šฉ๋  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • 8. โ€ข ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‘๊ฐ€์ง€๋กœ ํ•œ์ • ํ•œ๋‹ค upload(write) ์™€ query(read)
  • 9. โ€ข Problem 1 โ€˜Write'๊ฐ€ 'Read'์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ๊ณต์œ  ์ž์›์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์šด๋กœ๋“œ์™€ ์—…๋กœ๋“œ์˜ ์†๋„๊ฐ€ ๋˜‘๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋„ โ€˜Write'๊ฐ€ 'Read'์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. (์‹ค์ œ๋กœ๋Š” ๋‹ค์šด๋กœ๋“œ ์†๋„์™€ ์—…๋กœ๋“œ ์†๋„ ๋น„์œจ์€ 3:1 ์ •๋„๋‹ค) '์ฝ๊ธฐ'๋Š” ์บ์‹œ์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ '์“ฐ๊ธฐ' ์š”์ฒญ์€ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋””์Šคํฌ๊นŒ์ง€ ๋„๋‹ฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด ๋‹ค.
  • 10. โ€ข Problem 2 ๋””์ž์ธ ๊ด€์ ์—์„œ์˜ ๋ฌธ์ œ ์ž„. ์›น ์„œ๋ฒ„๋Š” ๋™์‹œ ์ปค๋„ฅ์…˜ ์ˆ˜์— ์ƒํ•œ์„ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.(์•„ํŒŒ์น˜์˜ ๊ฒฝ์šฐ ๋”” ํดํŠธ 500๊ฐœ) ์ฝ๊ธฐ๋Š” ๋น„๋™๊ธฐ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— gzip ์••์ถ•์ด๋‚˜ chunked transfer encoding์„ ์ด์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์“ฐ๊ธฐ์˜ ๊ฒฝ์šฐ์—๋Š” ์—…๋กœ๋“œ ๋™์•ˆ ์—ฐ๊ฒฐ์„ ์—ด์–ด ๋†“์€ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ 1MB๋ฅผ ์—…๋กœ๋“œ ํ•˜๋Š” ๊ฒƒ์ด 1์ดˆ ์ด์ƒ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ๊ณ ์ž‘ 500๊ฐœ์˜ ๋™์‹œ์ ์ธ ์“ฐ๊ธฐ๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๋ฟ์ด๋‹ค.
  • 11. Services ์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•˜์—ฌ ์ฝ๊ธฐ ์„œ๋น„์Šค์™€ ์“ฐ๊ธฐ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. (๋ณดํ†ต ์‚ฌ์šฉ์ž๋“ค์€ ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” ์ฝ๊ธฐ๋ฅผ ๋” ๋งŽ์ด ํ•œ๋‹ค)
  • 13. Services Flickr(ํ”Œ๋ฆฌ์ปค)์—์„œ๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ์— ์‚ฌ์šฉ์ž๋ฅผ ๋ถ„์‚ฐ์‹œํ‚จ๋‹ค. ๊ฐ๊ฐ์˜ ์ƒค๋“œ๋Š” ์ƒค๋“œ์— ํ• ๋‹น๋œ ์‚ฌ์šฉ์ž๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ด๋ฅผ ์ฒ˜ ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒค๋“œ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • 14. Problem !!!!!!!! ๊ทธ๋Ÿฌ๋‚˜ ์–ธ์ œ๋‚˜ ์˜ค๋ฅ˜๋Š” ๋ฐœ ์ƒ ํ• ์ˆ˜ ์žˆ๋‹ค.
  • 15. Redundancy ์‹œ์Šคํ…œ์„ ์ด์ค‘ํ™”ํ•˜๋Š” ๊ฒƒ์€ single point of failure ์„ ์—†์• ๊ณ , ์žฅ์•  ๋ฐœ์ƒ ์‹œ์—๋„ ๋ฐฑ์—…ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์ด ๊ณ„์† ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์„œ๋น„์Šค๋ฅผ ์ด์ค‘ํ™”ํ•  ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ Shared Nothing ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ single point of failure ๋ฅผ ์—†์• ๊ณ  ์žฅ์• ์— ์ข€ ๋” ์ž˜ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ ๊ฒŒ ๋œ๋‹ค.
  • 16. Problem !!!!!!!! ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๋˜๋Š” ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋งŽ์€ ์ปดํ“จํŒ… ์ž์›์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์–ด ์„ฑ ๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
  • 17. Partitions ์šฐ๋ฆฌ๋Š” ๋‘๊ฐ€์ง€๋ฅผ ์„ ํƒ ํ• ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” ์ˆ˜์ง์  ํ™•์žฅ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ˆ˜ํ‰์  ํ™•์žฅ
  • 18. Partitions - To scale vertically ๊ฐ๊ฐ์˜ ์„œ๋ฒ„์— ๋” ๋งŽ์€ ์ž์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ํ•˜๋“œ ๋””์Šคํฌ๋‚˜ ๋” ๋น ๋ฅธ CPU๋‚˜ ํฐ ์šฉ๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ ํ•˜๋Š” ๊ฒŒ ์ด์— ํ•ด๋‹นํ•œ๋‹ค. ์ฆ‰, ์ˆ˜์ง์  ํ™•์žฅ์€ ๊ฐ ์ž์›์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. - To scale horizontally ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ์—๋Š” ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ˆ˜ํ‰์  ํ™•์žฅ์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์ทจํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์˜ ๊ณ ์œ ํ•œ ์„ค๊ณ„ ์›์น™๋“ค์„ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค. ์ˆ˜ํ‰์  ํ™•์žฅ์„ ํ•˜๋Š” ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์„œ๋น„์Šค๋ฅผ ํŒŒํ‹ฐ์…˜์ด๋‚˜ ์ƒค๋“œ ๋‹จ์œ„ ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
  • 19. Problem !!!!!!!! - data locality (๋ฐ์ดํ„ฐ ๋กœ์ปฌ๋ฆฌํ‹ฐ) ์—ฐ์‚ฐํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๊นŒ์ด ์œ„์น˜ํ•ด ์žˆ์„ ์ˆ˜๋ก ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์€ ํ–ฅ์ƒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋กœ์ปฌ์— ์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋น„์šฉ์ด ๋†’์€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•œ ์ฝ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์ž ์žฌ์ ์ธ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. - inconsistency (๋น„์ •ํ•ฉ์„ฑ) ๊ณต์œ ๋œ ์ž์›์œผ๋กœ๋ถ€ํ„ฐ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๋•Œ. ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ ค ํ•  ๋•Œ, ์ฝ๊ธฐ ์š”์ฒญ์ด ์—…๋ฐ์ดํŠธ ์š”์ฒญ๋ณด๋‹ค ๋จผ์ € ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ํ•ด ๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋น„์ •ํ•ฉ์„ฑ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ Dog์—์„œ Gizmo๋กœ ๋ฐ”๊พธ๋Š” ์—…๋ฐ์ดํŠธ ์š”์ฒญ ์„ ๋ณด๋ƒˆ๊ณ , ๋™์‹œ์— ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด ๊ฒฝํ•ฉ์กฐ๊ฑด์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • 20. fault tolerance and monitoring reference โ€ข http://katemats.com/distributed-systems-basics- handling-failure-fault-tolerance-and-monitoring/
  • 21. The Building Blocks of Fast and Scalable Data Access
  • 22. LAMP stack applications ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์  ์ธ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ฒŒ ๋œ๋‹ค. 1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ํ™•์žฅ์„ฑ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๊ณ , 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ํ™•์žฅ์„ฑ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • 23. ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š”(๋žœ๋คํ•œ) ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‹ถ๋‹ค. ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋†’์€ ๋น„์šฉ์ด ํ•„์š”ํ•˜ ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋น ๋ฅธ ์•ก์„ธ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค. ์—ฌ๊ธฐ์„œ ์„ฑ๋Šฅ์— ๊ฐ€์žฅ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์€ ๋””์Šคํฌ I/O๋‹ค.
  • 24. ๊ทธ๋Ÿฌ๋‚˜ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. - Caches (Global Cache, Distributed Cache) - Proxies - Indexes - Load Balancers GOALS
  • 25. Caches ? ์ตœ๊ทผ์— ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์‹œ ์š”์ฒญ๋ฐ›์„ ํ™•๋ฅ ์ด ๋†’๋‹ค๋Š” ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ (locality of reference)์— ๊ธฐ๋ฐ˜ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ์บ์‹œ๋ž€ ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์บ์‹œ๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ๋ชจ๋“  ๋‹จ๊ณ„์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋ŸฐํŠธ์—”๋“œ์™€ ๊ฐ€๊นŒ์šด ๊ณณ์— ์œ„์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ณดํ†ต ์บ์‹œ๋Š” ์„œ๋น„์Šค์˜ ๋ฐฑ ์—”๋“œ๊นŒ์ง€ ๊ฐ€๋Š” ์‹œ๊ฐ„์ ์ธ ๋น„ ์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • 26. Caches Insert a cache on your request layer node ๋งค๋ฒˆ ์š”์ฒญ์€ ์„œ๋น„์Šค๋กœ ๋ณด๋‚ด์ง€๊ณ , ์š”์ฒญ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ทธ ๋…ธ๋“œ๋Š” ๋น  ๋ฅด๊ฒŒ ๋กœ์ปฌ์—์„œ ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. ๋งŒ์•ฝ ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ์š”์ฒญ ๋…ธ๋“œ๋Š” ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•  ๊ฒƒ์ด ๋‹ค.
  • 27. Caches Multiple caches ๋งŒ์•ฝ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ž„์˜๋กœ ์š”์ฒญ์„ ๋ถ„์‚ฐ์‹œํ‚ค๋ฉด, ๊ฐ™์€ ์š”์ฒญ์ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์บ์‹œ ๋ฏธ์Šค๋ฅผ ์ค„์ด๋ฉด์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ธ€๋กœ๋ฒŒ ์บ์‹œ ์™€ ๋ถ„์‚ฐ ์บ์‹œ๋‹ค.
  • 28. Global Cache 1 All the nodes use the same single cache space. ์š”์ฒญ ๋…ธ๋“œ์—์„œ ๊ฐ๊ฐ์˜ ์š”์ฒญ์€ ๋กœ์ปฌ์— ์บ์‹œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋Š” ์˜ค์ง ์บ์‹œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜๊ณ , ๊ธ€๋กœ๋ฒŒ ์บ์‹œ๋Š” ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๊ธฐ ์ž์‹ ์—์„œ ์ฐพ ์„ ์ˆ˜ ์—†์„ ๋•Œ, ์บ์‹œ ์Šค์Šค๋กœ๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜์—ฌ ์š”์ฒญ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋Ÿฐ ์•„ํ‚คํ…์ฒ˜๋Š” ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค (ํŠนํ™”๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์จ์„œ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์บ์‹œ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๊ณ ์ •๋œ ์ผ์ •๋Ÿ‰ ์ผ ๋•Œ)
  • 29. Global Cache 2 ์š”์ฒญ ๋…ธ๋“œ๊ฐ€ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์งˆ์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ํ™•์ธํ•˜์˜€์„ ๋•Œ๋Š” ์ง์ ‘ ์Šคํ† ๋ฆฌ์ง€์— ์งˆ์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค. ํฐ ํฌ๊ธฐ์˜ ํŒŒ์ผ ์ œ๊ณต์„ ์œ„ํ•˜์—ฌ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—, ๋‚ฎ์€ ์บ์‹œ ํžˆํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ „๋ฐ˜์ ์ธ ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์บ์‹œ์— ์œ„์น˜ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค.
  • 30. Distributed Cache ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • 31. Distributed Cache โ€ข ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ„์‚ฐ ์บ์‹œ๋Š” consistent hashing ํ•จ์ˆ˜๋ฅผ ์‚ฌ ์šฉํ•œ๋‹ค. โ€ข ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์œ„์น˜ ํŒŒ์•… ํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๋Š” ๊ฐ๊ฐ์˜ ์กฐ๊ทธ๋งˆํ•œ ์บ์‹œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค โ€ข ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์›๋ณธ ์ €์žฅ ๊ณต๊ฐ„์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์ „ ์— ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ๋ถ„์‚ฐ ์บ์‹œ์˜ ์ด๋Ÿฐ ์  ๋•Œ๋ฌธ์— ์š”์ฒญ ํ’€์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ „์ฒด ์บ์‹œ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • 32. Distributed Cache โ€ข ๋ถ„์‚ฐ ์บ์‹œ์˜ ๋‹จ์  ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๋…ธ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณต์ œ๋ณธ์„ ๊ฐ€์ง€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. โ€ข ์บ์‹œ์˜ ์žฅ์  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ๋งŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๋ฉด ์‹œ์Šคํ…œ์„ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค ์บ์‹œ๋ฅผ ์ด์šฉํ•ด ๋”์šฑ ๋” ๋งŽ์€ ์š”์ฒญ์„ ์ด์ „๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ ์‹œ์Šคํ…œ์—๋Š” ๊ฐ’ ๋น„์‹ผ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ์ถ”๊ฐ€์  ์ธ ์ €์žฅ ๊ณต๊ฐ„์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ ๋ฌธ์ œ๊ฐ€ ํ•ญ์ƒ ๋”ฐ๋ฅธ๋‹ค.
  • 33. OpenSource Cache ๋กœ์ปฌ์บ์‹œ๋‚˜ ๋ถ„์‚ฐ์บ์‹œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • 35. Proxies Proxies ํ”„๋ฝ์‹œ๋Š” ์š”์ฒญ์„ ํ•„ํ„ฐ๋ง, ๋กœ๊น…, ๋ณ€ํ™˜(ํ—ค๋”์— ์†์„ฑ ๋”ํ•˜๊ณ /๋นผ๊ณ , ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”, ์•• ์ถ•)ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ์˜ค๋Š” ์š”์ฒญ์„ ๋ฐ›์•„ ์ •๋ฆฌํ•˜์—ฌ, ์ „์ฒด ์‹œ์Šคํ…œ ๊ด€์  ์—์„œ ์š”์ฒญ ํŠธ๋ž˜ํ”ฝ์„ ์ตœ์ ํ™”์‹œํ‚ค๋Š” ๋ฐ๋„ ๋„์›€์ด ๋œ๋‹ค.
  • 36. Proxies Collapsed Forwarding ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ”„๋ฝ์‹œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์˜ ํ•˜๋‚˜๋กœ ๊ฐ™๊ฑฐ๋‚˜ ๋น„์Šทํ•œ ์š”์ฒญ๋“ค์„ ๋ชจ์•„ ๋‹จ ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์š”์ฒญ์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์‹œ๊ฐ„ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ ์š”์ฒญ์—๋Š” ๋” ๋งŽ์€ ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ์ƒํ™ฉ์—์„œ๋Š” ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ๊ฒƒ์ด๋‹ค.
  • 37. Proxies ํ”„๋ฝ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ณต๊ฐ„์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ฌถ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ „๋žต์€ ์š”์ฒญ์˜ ๋ฐ์ดํ„ฐ ๋กœ์ปฌ๋ฆฌํ‹ฐ๋ฅผ ์ตœ๋Œ€ํ™”ํ•˜์—ฌ, ์š”์ฒญ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋งŽ์€ ์š”์ฒญ์ด B์˜ ์ผ๋ถ€๋ถ„์„ ์š”์ฒญ(B:partB1, B:partB2) -> ํ”„๋ฝ์‹œ๋Š” bigB ๋ฅผ ์š”์ฒญ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ ํฌ๊ธฐ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ถ„์„ ๋žœ๋คํ•˜๊ฒŒ ์š”์ฒญํ•  ๋•Œ ์š”์ฒญ ์‹œ๊ฐ„์„ ๋‹จ ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋ฝ์‹œ๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ๋กœ๋“œ ์ƒํ™ฉ์ด๋‚˜ ์บ์‹œ ์‚ฌ์šฉ์ด ์ œํ•œ์ ์ธ ์ƒํ™ฉ์—์„œ ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.
  • 39. Indexes ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด์„œ ์ธ๋ฑ์‹ฑ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค. ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ์ง€๋งŒ ์ „๋‹ฌํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ๋Š”(์˜ˆ๋ฅผ ๋“ค์–ด 1KB์ • ๋„), ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋Š” ํ•„์ˆ˜์ ์ด๋‹ค. ์ธ๋ฑ์Šค๋Š” ๋ชฉ์ฐจ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • 40. Indexes BerkeleyDB์™€ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์ด๋Ÿฌํ•œ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ƒ‰์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์ƒ์ ์ด๊ณ  ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๋งต์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ด์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ์ธ๋ฑ์Šค๋„ ์žˆ๋‹ค.
  • 41. Load Balancers ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์–ด๋–ค ์•„ํ‚คํ…์ฒ˜์—์„œ๋“  ์ค‘์š”ํ•˜๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์„œ๋น„์Šค ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์—๊ฒŒ ๋ถ„๋ฐฐํ•˜๋Š” ์ผ์„ ํ•œ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ์ฃผ ๋ชฉ์ ์€ ๋™์‹œ์— ์˜ค๋Š” ์ˆ˜๋งŽ์€ ์ปค๋„ฅ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ•ด๋‹น ์ปค ๋„ฅ์…˜์ด ์š”์ฒญ ๋…ธ๋“œ ์ค‘์˜ ํ•˜๋‚˜๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์„œ๋น„์Šค๊ฐ€ ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • 42. Open Source Load Balancers ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์—์„œ ์„œ๋น„์Šค ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค. ( ๋žœ๋ค, ๋ผ์šด๋“œ ๋กœ๋นˆ, CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ  ๋“ฑ๊ณผ ๊ฐ™์€ ํŠน์ • ๋ฒ”์ฃผ์— ๋”ฐ๋ผ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค) ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌํ˜„๋  ์ˆ˜๋„ ์žˆ๊ณ  ํ•˜๋“œ์›จ์–ด ์ œํ’ˆ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.
  • 43. Multiple Load Balancers ํ”„๋ฝ์‹œ์ฒ˜๋Ÿผ ์–ด๋–ค ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์š”์ฒญ์˜ ์ข…๋ฅ˜๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ์— ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค (๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋ฅผ ๋ฆฌ๋ฒ„์Šค ํ”„๋ฝ์‹œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค).
  • 44. Queue ์‹œ์Šคํ…œ์ด ํ™•์žฅ์„ฑ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜๋ ค๋ฉด ์“ฐ๊ธฐ์— ๋Œ€ํ•œ ๊ณ ๋ ค ๋˜ํ•œ ํ•„์š”ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์— ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„๋‚˜ ์ธ๋ฑ์Šค์— ์“ฐ์—ฌ์•ผ ํ•˜๊ณ  ๋‹น์‹œ์˜ ์‹œ์Šคํ…œ ๋ถ€ํ•˜ ์ƒํƒœ๊ฐ€ ๋†’๋‹ค๋ฉด ์“ฐ๊ธฐ ์—ฐ์‚ฐ์€ ๋งค์šฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿด ๋•Œ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ๊ณผ ๊ฐ€์šฉ์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ํ๋ฅผ ์‚ฌ์šฉํ•˜ ๋Š” ๊ฒƒ์ด๋‹ค.
  • 45. Queue ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ๋“ค์–ด์˜ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์€ ์‹œ์Šคํ…œ์ด๋ผ๋„ ๋ฐ์ด ํ„ฐ ์–‘์ด ์ ๋‹ค๋ฉด ๋ณ„ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ๋ณด๋‹ค ๋” ๋งŽ์€ ์š”์ฒญ์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด, ๊ฐ ํด ๋ผ์ด์–ธํŠธ๋Š” ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋™๊ธฐ์ ์ธ ํ–‰๋™์€ ํด๋ผ์ด์–ธํŠธ์˜ ์„ฑ๋Šฅ์„ ์‹ฌ๊ฐํ•˜๊ฒŒ ์ €ํ•˜์‹œํ‚จ๋‹ค.
  • 46. Queue ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊ณผ ์„œ๋น„์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ผ ์‚ฌ์ด์— ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ๋กœ ์ž‘์—… ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋‚œ ๋‹ค์Œ์—๋Š” ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋Œ€์‹  ํ์— ์š”์ฒญ์ด ์ž˜ ์Œ“์˜€๋‹ค๋Š” ์‘๋‹ต(acknowledgement)๋งŒ ๋ฐ›๋Š”๋‹ค. ํ์˜ ์žฅ์ ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค๋Š” ๋ฐ์— ์žˆ๋‹ค.
  • 47. OR

Editor's Notes

  • #4: ๊ฐ€์šฉ์„ฑ(Availability): ์›น ์‚ฌ์ดํŠธ์˜ ๊ฐ€์šฉ์„ฑ์€ ๋งŽ์€ ํšŒ์‚ฌ์˜ ๋ช…์„ฑ๊ณผ ๊ธฐ๋Šฅ์— ์ ˆ๋Œ€์ ์œผ๋กœ ์ค‘์š”ํ•œ ๊ฒƒ์ด๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ๋†’์€ ๊ฐ€์šฉ์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•ด, ์ค‘์š”ํ•œ ์ปดํฌ๋„ŒํŠธ์˜ ์ด์ค‘ํ™”์™€ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๋ณต๊ตฌ ๋ฐฉ๋ฒ•, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ผ๋ถ€๋งŒ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ „๋ฉด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ตฌ์„ฑ(graceful degradation)์— ๋Œ€ํ•œ ๊ณ ๋ ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์„ฑ๋Šฅ(Performance): ๋Œ€๋ถ€๋ถ„์˜ ์›น ์‚ฌ์ดํŠธ์—์„œ ์„ฑ๋Šฅ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ณ ๋ ค์‚ฌํ•ญ์ด๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„๊ณผ ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ๋ฅผ ์œ„ํ•ด์„œ ์ตœ์ ํ™”๋œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค. ์‹ ๋ขฐ์„ฑ(Reliability): ํ•ญ์ƒ ๋˜‘๊ฐ™์€ ์š”์ฒญ์—๋Š” ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค. (์ •ํ•ฉ์„ฑ) ์‹œ์Šคํ…œ์ด ํ•ญ์ƒ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ๋‚˜๋ฉด ์—…๋ฐ์ดํŠธ๋œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ํ™•์žฅ์„ฑ(Scalability): ๋Œ€๊ทœ๋ชจ์˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋ผ๋ฉด ๊ทœ๋ชจ ์ž์ฒด๋Š” ํ™•์žฅ์„ฑ์—์„œ ๊ณ ๋ คํ•ด์•ผ ํ•  ํ•˜๋‚˜์˜ ์ธก๋ฉด์— ๋ถˆ๊ณผํ•˜๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋” ๋งŽ์€ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋…ธ๋ ฅ์ด๋‹ค. ๊ด€๋ฆฌ์„ฑ(Manageability): ์‰ฝ๊ฒŒ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์€ ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๊ณ ๋ ค ์‚ฌํ•ญ์ด๋‹ค. ์‹œ์Šคํ…œ์˜ ๊ด€๋ฆฌ์„ฑ์ด๋ž€ ์šด์šฉ(์œ ์ง€์™€ ์—…๋ฐ์ดํŠธ)์˜ ํ™•์žฅ์„ฑ๊ณผ ๊ฐ™์€ ๋ง์ด๋‹ค. ๊ด€๋ฆฌ์„ฑ์ด ์ข‹์•„์ง€๋ ค๋ฉด ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๋ถ„์„์ด ์šฉ์ดํ•ด์•ผ ํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—…๋ฐ์ดํŠธ์™€ ์ˆ˜์ •, ์‹œ์Šคํ…œ ์šด์šฉ ์ž์ฒด๊ฐ€ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค ๋น„์šฉ(Cost): ๋น„์šฉ์€ ์ค‘์š”ํ•œ ์š”์†Œ๋‹ค์‹œ์Šคํ…œ์„ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋น„์šฉ ๋˜ํ•œ ์ค‘์š”ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋น„์šฉ์—๋Š” ์‹œ์Šคํ…œ์ด ๋นŒ๋“œํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„, ์‹œ์Šคํ…œ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐ ๋“œ๋Š” ์šด์šฉ ๋…ธ๋ ฅ์˜ ์–‘, ๋ชจ๋“  ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ ํ•„์š”ํ•œ ๊ต์œก ๋น„์šฉ๊นŒ์ง€ ํฌํ•จ๋œ๋‹ค. ์ฆ‰ ๋น„์šฉ์€ ์‹œ์Šคํ…œ ์†Œ์œ ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋น„์šฉ์ด๋‹ค.
  • #6: ๋ชจ๋“  ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ํ•ต์‹ฌ ์‚ฌํ•ญ์ธ '์„œ๋น„์Šค๋“ค', '์ด์ค‘ํ™”', '๋ถ„ํ• ', '์˜ˆ์™ธ ์ฒ˜๋ฆฌ'๋ฅผ ๋‹ค๋ฃฌ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌํ•ญ ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ๋Š” ์•ž์—์„œ ๊ณ ๋ คํ•œ ์‚ฌํ•ญ์— ๊ธฐ๋ฐ˜ํ•œ ์„ ํƒ๊ณผ ํ•ฉ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • #8: ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ… ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ณ ๋ คํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์ธก๋ฉด์ด ์žˆ๋‹ค.
  • #13: ํ™•์žฅ์„ฑ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•  ๋•Œ ๊ฐ๊ฐ์˜ ๋ช…ํ™•ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ์‹œ์Šคํ…œ์„ SOA(Service-Oriented Architecture)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. SOA์—์„œ๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ๊ธฐ๋Šฅ๋ณ„๋กœ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ์„œ๋น„์Šค์—์„œ ๊ณต๊ฐœํ•˜๋Š” API ํ˜•ํƒœ์ธ ์ถ”์ƒํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์‹œ์Šคํ…œ์„ ์ƒํ˜ธ ๋ณด์™„์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์‹œ์Šคํ…œ์„ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ถ”์ƒํ™”๋Š” ์„œ๋น„์Šค์™€ ์„œ๋น„์Šค๊ฐ€ ์ฒ˜ํ•œ ํ™˜๊ฒฝ ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค์™€ ์„œ๋น„์Šค ์‚ฌ์šฉ์ž ์‚ฌ์ด์˜ ๋ช…ํ™•ํ•œ ๊ด€๊ณ„๋ฅผ ์ˆ˜๋ฆฝํ•˜๋Š” ๋ฐ์— ๋„์›€์ด ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ช…ํ™•ํ•œ ๊ธฐ์ˆ ์€ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๋ฐ๋„ ๋„์›€์ด ๋˜์ง€๋งŒ, ๊ฐ๊ฐ์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ์‹œํ‚ค๋Š” ๊ฒƒ์—๋„ ํšจ๊ณผ์ ์ด๋‹ค.
  • #22: ๋น ๋ฅด๊ณ  ํ™•์žฅ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋นŒ๋”ฉ ๋ธ”๋ก
  • #25: ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์—๋Š” ์บ์‹œ, ํ”„๋ฝ์‹œ, ์ธ๋ฑ์Šค, ๊ทธ๋ฆฌ๊ณ  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ, ํ ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ฐฉ๋ฒ•์ด ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค.
  • #30: ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋กœ๋Š” ์ •์  ํŒŒ์ผ์„ ์บ์‹œ์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ๋‹ค