์นด์‚ฐ๋“œ๋ผ. ์˜ค๋ผํด๋งŒ ์•Œ๋ฉด ์ฃฝ์ง€ ์•Š๋Š” ๋ฒ•

ํ—ค์ด ํ•˜๋ธŒ๋ฅด.

์ œ ์ด๋ฆ„์€ Misha Butrimov์ž…๋‹ˆ๋‹ค. Cassandra์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ด์•ผ๊ธฐ๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ ‘ํ•ด ๋ณธ ์ ์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์•Œ์•„์•ผ ํ•  ๋งŽ์€ ๊ตฌํ˜„ ๊ธฐ๋Šฅ๊ณผ ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Oracle์ด๋‚˜ ๋‹ค๋ฅธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์™ธ์— ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ณธ ์ ์ด ์—†๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ๋‹น์‹ ์˜ ์ƒ๋ช…์„ ๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์นด์‚ฐ๋“œ๋ผ์˜ ์ข‹์€ ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‹จ์ผ ์žฅ์•  ์ง€์  ์—†์ด ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋„๋ก ์„ค๊ณ„๋œ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ช‡ ํ…Œ๋ผ๋ฐ”์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ„๋‹จํžˆ ๋ง์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ํ™•์žฅํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํด๋Ÿฌ์Šคํ„ฐ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋œ RPS๋ฅผ ๋Š˜๋ฆฌ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํด๋Ÿฌ์Šคํ„ฐ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์นด์‚ฐ๋“œ๋ผ. ์˜ค๋ผํด๋งŒ ์•Œ๋ฉด ์ฃฝ์ง€ ์•Š๋Š” ๋ฒ•

๊ทธ ์‚ฌ๋žŒ์ด ๋˜ ์ž˜ํ•˜๋Š” ๊ฒŒ ๋ญ์•ผ? ๋งŽ์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŽ์ด๋Š” ์–ผ๋งˆ์ธ๊ฐ€์š”? ์ดˆ๋‹น 10, 20, 30, 40๊ฐœ์˜ ์š”์ฒญ์€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋…น์Œ ์š”์ฒญ๋„ ์ดˆ๋‹น 100๋งŒ ๊ฑด์ž…๋‹ˆ๋‹ค. ์ดˆ๋‹น 2๋งŒ ๊ฑด์˜ ์š”์ฒญ์„ ๋ณด๊ด€ํ•œ๋‹ค๊ณ  ํ•˜๋Š” ํšŒ์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์„ ๋ฏฟ์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์›์น™์ ์œผ๋กœ Cassandra๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์™€ ํ•œ ๊ฐ€์ง€ ํฐ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ˜€ ์œ ์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•ด ๋ณด์ธ๋‹ค๊ณ  ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ•œ๋ฒˆ์€ ๋™๋ฃŒ๊ฐ€ ๋‚˜์—๊ฒŒ ์™€์„œ ์ด๋ ‡๊ฒŒ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. โ€œ์—ฌ๊ธฐ CQL Cassandra ์ฟผ๋ฆฌ ์–ธ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์—๋Š” select ๋ฌธ์ด ์žˆ๊ณ  where, and๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ์ง€๋ฅผ ์“ฐ๋Š”๋ฐ ์ž˜ ์•ˆ ๋ผ์š”. ์™œ?". Cassandra๋ฅผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์€ ํญ๋ ฅ์ ์ธ ์ž์‚ด์„ ์ €์ง€๋ฅด๋Š” ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๊ฒƒ์„ ํ™๋ณดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์—์„œ๋Š” ๊ธˆ์ง€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋ญ”๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์„ ๋””์ž์ธํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ ๊ฐ์ด ์šฐ๋ฆฌ์—๊ฒŒ ์™€์„œ ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œTV ์‹œ๋ฆฌ์ฆˆ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ๋ ˆ์‹œํ”ผ ๋””๋ ‰ํ† ๋ฆฌ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜์ž. ๊ฑฐ๊ธฐ์—๋Š” ์Œ์‹ ์š”๋ฆฌ๋‚˜ TV ์‹œ๋ฆฌ์ฆˆ์™€ ๋ฐฐ์šฐ ๋ชฉ๋ก์ด ์žˆ์„ ๊ฑฐ์˜ˆ์š”.โ€ ์šฐ๋ฆฌ๋Š” ๊ธฐ์œ ๋งˆ์Œ์œผ๋กœ โ€œ๊ฐ€์ž!โ€๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. XNUMX๋ฐ”์ดํŠธ์™€ ๋ช‡ ๊ฐœ์˜ ๊ธฐํ˜ธ๋งŒ ์ „์†กํ•˜๋ฉด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณ ๊ฐ์ด ์™€์„œ ์ฃผ๋ถ€๋“ค๋„ ๋ฐ˜๋Œ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•  ๋•Œ๊นŒ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ œํ’ˆ ๋ชฉ๋ก์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์–ด๋–ค ์š”๋ฆฌ๋ฅผ ์š”๋ฆฌํ•˜๊ณ  ์‹ถ์€์ง€ ์•Œ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ฃฝ์€.

์ด๋Š” Cassandra๊ฐ€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ํ‚ค ๊ฐ’์„ ์ œ๊ณตํ•˜๊ณ  ๋„“์€ ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Java ๋˜๋Š” Kotlin์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Map<RowKey, SortedMap<ColumnKey, ColumnValue>>

์ฆ‰, ์ •๋ ฌ๋œ ์ง€๋„๋„ ํฌํ•จํ•˜๋Š” ์ง€๋„์ž…๋‹ˆ๋‹ค. ์ด ๋งต์˜ ์ฒซ ๋ฒˆ์งธ ํ‚ค๋Š” ๋ถ„ํ•  ํ‚ค์ธ ํ–‰ ํ‚ค ๋˜๋Š” ํŒŒํ‹ฐ์…˜ ํ‚ค์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ์ •๋ ฌ๋œ ๋งต์˜ ํ‚ค์ธ ๋‘ ๋ฒˆ์งธ ํ‚ค๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ„ํฌ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š”๋‹ค๋ฉด (๊ทธ๋Ÿฐ๋ฐ ์ฒœ, ์ด์ฒœ, ๋‹ค์„ฏ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ์›ํ•˜๋Š”๋งŒํผ) ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฐฐํฌ์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ˆ˜ํ•™ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ์ˆซ์ž, ์–ด๋–ค ๋ฒ”์œ„์— ์†ํ•˜๋Š” ๊ธด int์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๋ฒ”์œ„๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋ฉฐ, ๋‘ ๋ฒˆ์งธ๋Š” ๋‘ ๋ฒˆ์งธ, n๋ฒˆ์งธ๋Š” n๋ฒˆ์งธ๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์นด์‚ฐ๋“œ๋ผ. ์˜ค๋ผํด๋งŒ ์•Œ๋ฉด ์ฃฝ์ง€ ์•Š๋Š” ๋ฒ•

์ด ์ˆซ์ž๋Š” ํŒŒํ‹ฐ์…˜ ํ‚ค๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์— ์ ์šฉ๋˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋Š” Primary key ์ง€์‹œ๋ฌธ์— ์ง€์ •๋˜๋Š” ์—ด์ด๋ฉฐ, ๋งต์˜ ์ฒซ ๋ฒˆ์งธ์ด์ž ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ‚ค๊ฐ€ ๋  ์—ด์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋…ธ๋“œ๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. SQL๊ณผ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ Cassandra์—์„œ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

CREATE TABLE users (
	user_id uu id,
	name text,
	year int,
	salary float,
	PRIMARY KEY(user_id)

)

์ด ๊ฒฝ์šฐ ๊ธฐ๋ณธ ํ‚ค๋Š” ํ•˜๋‚˜์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๋ถ„ํ•  ํ‚ค์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์˜ ์„ฑ๊ณผ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ผ๋ถ€๋Š” ํ•œ ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜๊ณ , ์ผ๋ถ€๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ, ์ผ๋ถ€๋Š” ์„ธ ๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋งต์ด๋ผ๊ณ ๋„ ์•Œ๋ ค์ง„ ์ผ๋ฐ˜ ํ•ด์‹œ ํ…Œ์ด๋ธ”, Python์—์„œ๋Š” ์‚ฌ์ „์ด๋ผ๊ณ ๋„ ์•Œ๋ ค์ ธ ์žˆ๊ฑฐ๋‚˜ ๋ชจ๋“  ๊ฐ’์„ ์ฝ๊ณ  ํ‚ค๋กœ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ Key ๊ฐ’ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์นด์‚ฐ๋“œ๋ผ. ์˜ค๋ผํด๋งŒ ์•Œ๋ฉด ์ฃฝ์ง€ ์•Š๋Š” ๋ฒ•

์„ ํƒ: ํ—ˆ์šฉ ํ•„ํ„ฐ๋ง์ด ์ „์ฒด ๊ฒ€์‚ฌ๋กœ ์ „ํ™˜๋˜๋Š” ๊ฒฝ์šฐ ๋˜๋Š” ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ์‚ฌํ•ญ

๋ช‡ ๊ฐ€์ง€ ์„ ํƒ ๋ฌธ์„ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. select * from users where, userid = . ์ด๋Š” Oracle๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. select๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ์—ฐ๋„์˜ ์‚ฌ์šฉ์ž๋ฅผ ์„ ํƒํ•˜๋ฉด Cassandra๋Š” ์š”์ฒญ์„ ์ดํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ์ถœ์ƒ ์—ฐ๋„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•˜๋Š”์ง€ ์ „ํ˜€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค๋กœ ํ‘œ์‹œ๋œ ์—ด์ด ํ•˜๋‚˜๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ๋…€๋Š” โ€œ์ข‹์•„์š”. ์•„์ง ์ด ์š”์ฒญ์„ ์ดํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์š”. ํ—ˆ์šฉ ํ•„ํ„ฐ๋ง์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”." ์ง€์‹œ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ˆœ๊ฐ„ ๋”์ฐํ•œ ์ผ์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 4๋งŒ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ ํ•„ํ„ฐ๋ง์€ Cassandra๊ฐ€ ๋ชจ๋“  ๋…ธ๋“œ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(์ด ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ)์—์„œ ์ด ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ ๋‹ค์Œ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ง€์‹œ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ „์ฒด ์Šค์บ”๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ๊ฑฐ์˜ ๋งŒ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ID๋ณ„๋กœ ์‚ฌ์šฉ์ž๋งŒ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ด๊ฒƒ์œผ๋กœ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋กœ๋Š” ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์„ ํƒ์— ๋‹ค๋ฅธ ์ œํ•œ์„ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋ชจ๋‘ ๋ถ„ํ•  ํ‚ค๊ฐ€ ์žˆ๋Š” ๋งต์ด์ง€๋งŒ ๊ทธ ๋‚ด๋ถ€์—๋Š” ์ •๋ ฌ๋œ ๋งต์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ํŠธ๋ฆฌ์ด๋ฉฐ, ๋น„๊ต๊ธฐ๋Š” ๊ฐ„๋‹จํžˆ ํ˜ธ์ถœ๋˜์–ด ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ํŠน์ • ์—ด ์ง‘ํ•ฉ์„ ์ „๋‹ฌํ•˜๊ณ  ์—ด ๋ชฉ๋ก์œผ๋กœ๋„ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

CREATE TABLE users_by_year_salary_id (
	user_id uuid,
	name text,
	year int,
	salary float,
	PRIMARY KEY((year), salary, user_id)

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

์ •๋ ฌ์„ ์„ค์ •ํ•˜๊ณ  ์ œํ•œ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ •๋ ฌ ์ˆœ์„œ(๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ ๋“ฑ)๋Š” ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋™์‹œ์— ์„ค์ •๋˜๋ฉฐ ๋‚˜์ค‘์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฐฉ๋ฒ•๊ณผ ์ €์žฅ ๋ฐฉ๋ฒ•์„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค๋‚˜ ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ์ „์†กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ํ•ญ๋ชฉ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์นด์‚ฐ๋“œ๋ผ. ์˜ค๋ผํด๋งŒ ์•Œ๋ฉด ์ฃฝ์ง€ ์•Š๋Š” ๋ฒ•

์šฐ๋ฆฌ๋Š” ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉ์ž๋กœ ์ฑ„์› ๊ณ  ๊ทธ๋“ค์ด ์ฒ˜์Œ์—๋Š” ์ƒ๋…„์›”์ผ๋ณ„๋กœ ๋ง์— ๋“ค์–ด๊ฐ„ ๋‹ค์Œ ๊ธ‰์—ฌ์™€ ์‚ฌ์šฉ์ž ID๋ณ„๋กœ ๊ฐ ๋…ธ๋“œ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ œํ•œ์„ ์ ์šฉํ•˜์—ฌ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์ผํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค where, and, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ํ™•๋ณดํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ •์ƒ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ‚ค์˜ ์ผ๋ถ€์™€ ๋œ ์ค‘์š”ํ•œ ํ‚ค๋งŒ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด Cassandra๋Š” ๋งต์—์„œ null ๋น„๊ต๊ธฐ์— ๋Œ€ํ•œ ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ์ด ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ์ฆ‰์‹œ ๋ถˆํ‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๋ฐฉ๊ธˆ ์ •ํ•ด์กŒ์–ด - ๊ทธ๊ฐ€ ๋ˆ„์›Œ ์žˆ๋Š” ๊ณณ์ด์š”. ์ด ๋…ธ๋“œ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๊ฐ€์ ธ์™€์„œ ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋…ธ๋“œ ๋‚ด ์ „์ฒด ๊ฒ€์ƒ‰๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ์ด๋Š” ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ถˆํ™•์‹คํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

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

์šฐ๋ฆฌ๋Š” ๊ท€ํ•˜์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ชจ๋“  ๊ฒƒ์„ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์‹ ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์‹ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŽธ๋ฆฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ „์ฒด ์Šค์บ”์ด ์‹คํŒจํ•˜๊ณ  Cassandra๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์–ด๋–ค ์ด์ ๋„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋น„์ •๊ทœํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •๊ทœ ํ˜•์‹์„ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ๋” ์ด์ƒ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 100๋ฒˆ ๋ฌผ๊ฑด์„ ๋‚ด๋ ค๋†“์œผ๋ฉด 100๋ฒˆ ๋ˆ„์›Œ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฉˆ์ถ”๋Š” ๊ฒƒ๋ณด๋‹ค ์—ฌ์ „ํžˆ ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค.

ํŒŒํ‹ฐ์…”๋‹์šฉ ํ‚ค๋ฅผ ์„ ํƒํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ‚ค์˜ ํ•ด์‹œ๊ฐ€ ํ•˜๋‚˜์˜ ์ข์€ ๋ฒ”์œ„์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์œ„ ์˜ˆ์—์„œ ํƒœ์–ด๋‚œ ์—ฐ๋„๋Š” ๋‚˜์œ ์˜ˆ์ด๋‹ค. ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ์ถœ์ƒ์—ฐ๋„๋ณ„๋กœ ์ •๊ทœ ๋ถ„ํฌ๋˜์–ด ์žˆ์œผ๋ฉด ์ข‹๊ณ , 5ํ•™๋…„ ํ•™์ƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…”๋‹์ด ๊ทธ๋ฆฌ ์ข‹์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Clustering Key ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ Sorting์„ XNUMXํšŒ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์„ ๋‹ค๋ฅธ ํ‚ค๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 100๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค๋ฉด 100๊ฐœ์˜ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€