Skip to content

wnghdcjfe/csnote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

61 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

csnote

๋ฉด์ ‘์„ ์œ„ํ•œ ์ „๊ณต์ง€์‹ CS๋…ธํŠธ์˜ ์ €์žฅ์†Œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  • ebook์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€๋ฒˆํ˜ธ๊ฐ€ ๋‹จ๋ง๊ธฐ๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์˜ ๊ธฐ์ค€์€ ์ธ์‡„๋ณธ 1์‡„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ง์”€์„ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ 5์‡„๊นŒ์ง€ ์•„๋ž˜์˜ ๋‚ด์šฉ์ด ๋ชจ๋‘ ๋ฐ˜์˜๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”ํ›„ ๋ฐ˜์˜๋˜๋Š” ์‚ฌํ•ญ์€ [new] ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค.

์˜คํƒˆ์ž ๋ฐ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

1์‡„์™€๋Š” ๋‹ฌ๋ฆฌ ๋‹ฌ๋ผ์ง„ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ฑ๊ธ€ํ†ค ์ฝ”๋“œ ์ˆ˜์ •[new]

ch1/2.js ๋งํฌ

ํŒฉํ† ๋ฆฌํŒจํ„ด ์ฝ”๋“œ ์ˆ˜์ •[new]

ch1/5.js ๋งํฌ

ํŒฉํ† ๋ฆฌํŒจํ„ด ์ฝ”๋“œ ์ˆ˜์ •[new]

ch1/6.java ๋งํฌ

143, 148, 150, 182 ํŽ˜์ด์ง€

before

SDD

after

SSD

17 ํŽ˜์ด์ง€

before

์‹ฑ๊ธ€ํ†คํŒจํ„ด์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

after

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(singleton pattern)์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐœ๋ณ„์ ์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ์ง์„ ๋งŒ๋“œ๋Š”๋ฐ ์“ฐ์ด๋ฉฐ ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

18 ํŽ˜์ด์ง€

before

์•ž์˜ ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด obj์™€ obj2๋Š” ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

after

์•ž์˜ ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด obj์™€ obj2๋Š” ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ๋˜ํ•œ new Object๋ผ๋Š” ํด๋ž˜์Šค์—์„œ ๋‚˜์˜จ ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋‹ˆ ์–ด๋Š์ •๋„ ์‹ฑ๊ธ€ํ†คํŒจํ„ด์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ ์‹ค์ œ ์‹ฑ๊ธ€ํ†คํŒจํ„ด์€ ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

20 ํŽ˜์ด์ง€

before

public static synchronized Singleton getInstance()

after

public static Singleton getInstance()

before

์ž๋ฐ”๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

after

์ž๋ฐ”๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค‘์ฒฉ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ž…๋‹ˆ๋‹ค. ๋” ๊นŠ๊ฒŒ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„์€ ํ•„์ž์˜ ์œ ํˆฌ๋ธŒ ์ฑ„๋„์ธ ํฐ๋Œ์˜ ํ„ฐ์ „ - 'JAVA๋กœ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋Š” 7๊ฐ€์ง€ ๋ฐฉ๋ฒ•' ์˜์ƒ์„ ์ฐธ๊ณ  ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

24 ํŽ˜์ด์ง€

before

์˜์กด์„ฑ ์ฃผ์ž…์€ ์˜์กด์„ฑ ์ฃผ์ž…์›์น™์„ ์ง€ํ‚ค๋ฉฐ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฉฐ ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

  • ์ƒ์œ„ ๋ชจ๋“ˆ์€ ํ•˜์œ„ ๋ชจ๋“ˆ์—์„œ ์–ด๋– ํ•œ ๊ฒƒ๋„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋•Œ ์ถ”์ƒํ™”๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์˜์กดํ•˜์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

after

์˜์กด์„ฑ ์ฃผ์ž… ์›์น™

์˜์กด์„ฑ ์ฃผ์ž…์€ "์ƒ์œ„ ๋ชจ๋“ˆ์€ ํ•˜์œ„ ๋ชจ๋“ˆ์—์„œ ์–ด๋– ํ•œ ๊ฒƒ๋„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‘˜ ๋‹ค ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ ํ•˜๋ฉฐ, ์ด ๋•Œ ์ถ”์ƒํ™”๋Š” ์„ธ๋ถ€์‚ฌํ•ญ์— ์˜์กดํ•˜์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค." ๋ผ๋Š” ์˜์กด์„ฑ ์ฃผ์ž…์›์น™์„ ์ง€์ผœ์ฃผ๋ฉด์„œ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

27 ํŽ˜์ด์ง€

before

๋˜ํ•œ, CoffeeFactory๋ฅผ ๋ณด๋ฉด static์œผ๋กœ createCoffee() ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์“ฐ๋ฉด ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์—†์ด ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค์— ๋ฌถ์ด์ง€ ์•Š์œผ๋ฉฐ ํด๋ž˜์Šค ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ ์Šต๋‹ˆ๋‹ค.

after

๋˜ํ•œ, CoffeeFactory ํด๋ž˜์Šค๋ฅผ ๋ณด๋ฉด static ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด createCoffee() ๋ฉ”์„œ๋“œ๋ฅผ ์ •์ ๋ฉ”์„œ๋“œ๋กœ ์„ ์–ธํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์ •์ ๋ฉ”์„œ๋“œ๋กœ ์ •์˜ํ•˜๊ฒŒ ๋˜๋ฉด ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•œ๋ฒˆ๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

29 ํŽ˜์ด์ง€[new]

before

์ง€๊ธˆ๋ณด๋ฉด if ... ๋งคํ•‘ํ•ด์„œ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

after

์•ž์˜ ์ฝ”๋“œ๋Š” CoffeeFactory ๋ฐ‘์— Coffee ํด๋ž˜์Šค๋ฅผ ๋†“๊ณ  ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” Latte, Espresso ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

before

์ƒ์ˆ˜์˜ ์ง‘ํ•ฉ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž…์ด๋‹ค. ์ƒ์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ ๋“ฑ์„ ์ง‘์–ด๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•  ๋•Œ ํ•ด๋‹น ์ง‘ํ•ฉ์— ๊ด€ํ•œ ๋กœ์ง ์ˆ˜์ • ์‹œ ์ด ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง ์‹œ ๊ฐ•์ ์ด ์ƒ๊ธด๋‹ค.

after

์ƒ์ˆ˜์˜ ์ง‘ํ•ฉ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž…์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›”, ์ผ, ์ƒ‰์ƒ ๋“ฑ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๋‹ด๋Š”๋‹ค. ์ž๋ฐ”์—์„œ์˜ Enum์€ ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ๋” ํ™œ์šฉ๋˜์–ด ์“ฐ์ด๋ฉฐ ์ƒ์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฉ”์„œ๋“œ๋ฅผ ์ง‘์–ด๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. Enum์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์ˆ˜์ง‘ํ•ฉ์„ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•  ๋•Œ ์ƒ์ˆ˜์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๋กœ์ง ์ˆ˜์ • ์‹œ ์ด ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ์žฅ์ , ๋ณธ์งˆ์ ์œผ๋กœ ์Šค๋ ˆ๋“œ์„ธ์ดํ”„(thread safe)ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ๋งŒ๋“ค ๋•Œ ๋„์›€์ด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ enum์œผ๋กœ ๋งŒ๋“œ๋Š” ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ํ•„์ž์˜ ์œ ํˆฌ๋ธŒ ์ฑ„๋„, ํฐ๋Œ์˜ ํ„ฐ์ „ - 'JAVA๋กœ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋Š” 7๊ฐ€์ง€ ๋ฐฉ๋ฒ•' ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

40 ํŽ˜์ด์ง€

before

ํ”„๋ก์‹œ ๊ฐ์ฒด์˜ target ๋™์ž‘์„ ๊ฐ€๋กœ์ฑ„์„œ ์ •์˜ํ•  ๋™์ž‘๋“ค์ด ์ •ํ•ด์ ธ ์žˆ๋Š” ํ•จ์ˆ˜

after

target ๋™์ž‘์„ ๊ฐ€๋กœ์ฑ„๊ณ  ์–ด๋– ํ•œ ๋™์ž‘์„ ํ•  ๊ฒƒ์ธ์ง€๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜

40 ํŽ˜์ด์ง€

before

new Proxy๋กœ ์„ ์–ธํ•œ ๊ฐ์ฒด์˜ a์™€ b๋ผ๋Š” ์†์„ฑ์— ํŠน์ • ๋ฌธ์ž์—ด์„ ๋‹ด์•„์„œ handler์— โ€œname์ด ๋ผ๋Š” ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” a์™€ b๋ผ๋Š” ๊ฒƒ์„ ํ•ฉ์ณ์„œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด๋ผ.โ€๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ ‡๊ฒŒ p๋ผ๋Š” ๋ณ€์ˆ˜์— name์ด๋ผ๋Š” ์†์„ฑ์„ ์„ ์–ธํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ๋„ p.name์œผ๋กœ name ์†์„ฑ์— ์ ‘๊ทผ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๊ทธ ๋ถ€๋ถ„์„ ๊ฐ€๋กœ์ฑ„ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

after

new Proxy()๋กœ a์™€ b ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์™€ handler ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ๊ณ  p๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ›„ p์˜ name ์†์„ฑ์„ ์ฐธ์กฐํ•˜๋‹ˆ a์™€ b๋ผ๋Š” ์†์„ฑ๋ฐ–์— ์—†๋Š” ๊ฐ์ฒด๊ฐ€ handler์˜ โ€œname์ด๋ผ๋Š” ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ a์™€ b๋ฅผ ํ•ฉ์ณ์„œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๋ผโ€ ๋Š” ๋กœ์ง์— ๋”ฐ๋ผ ์–ด๋– ํ•œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ name ์†์„ฑ ๋“ฑ ์–ด๋– ํ•œ ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ ๊ทธ ๋ถ€๋ถ„์„ ๊ฐ€๋กœ์ฑ„์„œ ์–ด๋– ํ•œ ๋กœ์ง์„ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ํ”„๋ก์‹œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

44 ํŽ˜์ด์ง€[new]

before ๋Œ€์ƒ ๊ฐ์ฒด ์•ž๋‹จ์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ๋””์ž์ธํŒจํ„ด์ž…๋‹ˆ๋‹ค.

after ํ•ด๋‹น ์ ‘๊ทผ์„ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•˜๋Š” ๊ณ„์ธต์ด ์žˆ๋Š” ๋””์ž์ธํŒจํ„ด์ž…๋‹ˆ๋‹ค.

45 ํŽ˜์ด์ง€

before

์ด๋ฅผ ํ†ตํ•ด ์ต๋ช… ์‚ฌ ์šฉ์ž์˜ ์ง์ ‘์ ์ธ ์„œ๋ฒ„๋กœ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๊ณ  ๊ฐ„์ ‘์ ์œผ๋กœ ํ•œ ๋‹จ๊ณ„๋ฅผ ๋” ๊ฑฐ์นจ์œผ๋กœ์จ ๋ณด์•ˆ์„ฑ ์„ ๋”์šฑ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

after

์ด๋ฅผ ํ†ตํ•ด ์ต๋ช… ์‚ฌ์šฉ์ž์˜ ์ง์ ‘์ ์ธ ์„œ๋ฒ„๋กœ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๊ณ  ๊ฐ„์ ‘์ ์œผ๋กœ ํ•œ ๋‹จ๊ณ„๋ฅผ ๋” ๊ฑฐ์น˜๊ฒŒ ๋งŒ๋“ฆ์œผ๋กœ์จ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

46 ํŽ˜์ด์ง€

before

CDN ๋ง๊ณ ๋„ CloudFlare๋ฅผ ํ†ตํ•ด ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ DDOS ๊ณต๊ฒฉ ๋ฐฉ์–ด, HTTPS ๊ตฌ์ถ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์€ ์›น ์„œ๋ฒ„ ์•ž๋‹จ์— ๋‘์–ด โ€˜ํ”„๋ก์‹œ ์„œ๋ฒ„โ€™๋กœ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

after

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

49 ํŽ˜์ด์ง€

before

์ฐธ๊ณ ๋กœ 127.0.0.1์ด๋ž€ ๋ฃจํ”„๋ฐฑ IP๋กœ, ๋ณธ์ธ PC์˜ IP๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. localhost๋‚˜ 127.0.0.1์„ ์ž…๋ ฅํ•˜๋ฉด DNS๋ฅผ ํƒ€์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ณธ์ธ PC๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ CORS์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•„์ž๊ฐ€ ๋งŒ๋“  ์˜์ƒ(https://bit.ly/3KfzrBh)์„ ์ฐธ๊ณ ํ•˜ ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ดํ„ฐ๋ ˆ์ดํ„ฐ ํŒจํ„ด(iterator pattern)์€ ์ดํ„ฐ๋ ˆ์ดํ„ฐ(iterator)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜(collection)์˜ ์š”์†Œ๋“ค์— ์ ‘๊ทผํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

after

์ฐธ๊ณ ๋กœ 127.0.0.1์ด๋ž€ ๋ฃจํ”„๋ฐฑ(loopback) IP๋กœ, ๋ณธ์ธ PC ์„œ๋ฒ„์˜ IP๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. localhost๋‚˜ 127.0.0.1์„ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๋ฉด DNS๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ณธ์ธ PC ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. CORS์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•„์ž์˜ ์œ ํˆฌ๋ธŒ ์ฑ„๋„, ํฐ๋Œ์˜ ํ„ฐ์ „ - 'CORS ' ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํŒจํ„ด(iterator pattern)์€ ์ดํ„ฐ๋ ˆ์ดํ„ฐ(iterator)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜(collection)์˜ ์š”์†Œ๋“ค์— ์ ‘๊ทผํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž๋ฃŒํ˜•์˜ ๊ตฌ์กฐ์™€๋Š” ์ƒ๊ด€์—†์ด ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ผ๋Š” ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ˆœํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

50 ํŽ˜์ด์ง€

before

์ด๋ฅผ ํ†ตํ•ด ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž๋ฃŒํ˜•์˜ ๊ตฌ์กฐ์™€๋Š” ์ƒ๊ด€์—†์ด ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ผ๋Š” ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ˆœํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

after

์•ž์˜ ๊ทธ๋ฆผ์€ ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ผ๋Š” ๋˜‘๊ฐ™์€ ๋ฐฐ๋กœ ๋™๊ทธ๋ผ๋ฏธ๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜์ด๋“  ๋งˆ๋ฆ„๋ชจ๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜์ด๋“  ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

52 ํŽ˜์ด์ง€

before

a์™€ b๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์ธ privat ๋ฒ”์œ„๋ฅผ ...(์ƒ๋žต)

after

a์™€ b๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์ด๋ฉฐ private ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. c์™€ d๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์ด๋ฉฐ public ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์œ„์™€ ๊ฐ™์€ ๋…ธ์ถœ๋ชจ๋“ˆํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ๋ฐฉ์‹์œผ๋กœ๋Š” CJS(CommonJS) ๋ชจ๋“ˆ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

54 ํŽ˜์ด์ง€

before

MVC ํŒจํ„ด์˜ ์˜ˆ ๋ฆฌ์•กํŠธ MVC ํŒจํ„ด์„ ์ด์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š” ๋ฆฌ์•กํŠธ(React.js)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. โ€˜๊ฐ€์ƒ DOMโ€™์„ ํ†ตํ•ด ์‹ค์ œ DOM์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ƒํ™”ํ•ด์„œ ์„ฑ๋Šฅ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ์œผ๋กœ๋Š” ๋ถˆ๋ณ€์„ฑ(immutable)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด state๋Š” setState๋ฅผ ํ†ต ํ•ด์„œ๋งŒ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ณ , props๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ์ปดํฌ๋„ŒํŠธ์ธ pureComponent ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์ด ์ ์šฉ๋˜์–ด ์žˆ๊ณ , ์ž์œ ๋„๊ฐ€ ๋†’๊ณ , ๋ฉ”ํƒ€(ํŽ˜์ด์Šค๋ถ)๊ฐ€ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋„ทํ”Œ๋ฆญ์Šค, ํŠธ์œ„ํ„ฐ, ๋“œ๋กญ๋ฐ•์Šค, ์šฐ๋ฒ„, ํŽ˜์ดํŒ”, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ โ€˜๊ฐ€์ƒ DOMโ€™์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•„์ž๊ฐ€ ๋งŒ๋“  ์˜์ƒ(https://bit.ly/3hDX620)์„ ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

after

MVC ํŒจํ„ด์„ ์ด์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ๋Š” ์ž๋ฐ” ์ง„์˜์—์„œ ์œ ๋ช…ํ•œ ์Šคํ”„๋ง(Spring) ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Spring์˜ WEB MVC๋Š” ์›น์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋งŽ์ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด @RequestParam, @RequestHeader, @PathVariable ๋“ฑ์˜ ์• ๋„ˆํ…Œ์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ๊ฐ’๋“ค์„ ์‰ฝ๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž์˜ ์–ด๋– ํ•œ ์š”์ฒญ์ด ์œ ํšจํ•œ ์š”์ฒญ์ธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๊ฑฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์‚ฌ๋ก€ ๊ฐ™์€ ๊ฒƒ์„ ๋ง์ด์ฃ . ๋˜ํ•œ ์žฌ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ, ํ…Œ์ŠคํŠธ, ์‰ฝ๊ฒŒ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋“ฑ์˜ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•„์ž์˜ ์œ ํˆฌ๋ธŒ ์ฑ„๋„, ํฐ๋Œ์˜ ํ„ฐ์ „ - 'Spring๊ณผ MVCํŒจํ„ด' ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋งํฌ

68 ํŽ˜์ด์ง€

before

๋„คํŠธ์›Œํฌ๋ž€ ๋…ธ๋“œ(node)์™€ ๋งํฌ(link)๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ง‘ํ•ฉ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

after

๋„คํŠธ์›Œํฌ๋ž€ ๋…ธ๋“œ(node)์™€ ๋งํฌ(link)๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

69 ํŽ˜์ด์ง€

before

์ฒ˜๋ฆฌ๋Ÿ‰(throughput)์ด๋ž€ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ๋ฐ์ดํ„ฐ์–‘์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์œ„๋กœ๋Š” bps(bits per second)๋ฅผ ์”๋‹ˆ๋‹ค. ์ดˆ๋‹น ์ „์†ก ๋˜๋Š” ์ˆ˜์‹ ๋˜๋Š” ๋น„ํŠธ ์ˆ˜๋ผ๋Š” ์˜๋ฏธ์ž… ๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ์ปค์ง€๋Š” ํŠธ๋ž˜ํ”ฝ, ๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๊ฐ„์˜ ๋Œ€์—ญํญ, ๋„ค ํŠธ์›Œํฌ ์ค‘๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ, ์žฅ์น˜์˜ ํ•˜๋“œ์›จ์–ด ์ŠคํŽ™์— ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋ž€ ๋…ธ๋“œ(node)์™€ ๋งํฌ(link)๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ง‘ํ•ฉ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

after

์ฒ˜๋ฆฌ๋Ÿ‰(throughput)์€ ๋งํฌ ๋‚ด์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋งํ•˜๋ฉฐ ๋ณดํ†ต ์–ผ๋งŒํผ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ–ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค = ๋งŽ์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ฐ€์ง„๋‹ค. ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„๋กœ๋Š” bps(bits per second)๋ฅผ ์”๋‹ˆ๋‹ค. ์ดˆ๋‹น ์ „์†ก ๋˜๋Š” ์ˆ˜์‹ ๋˜๋Š” ๋น„ํŠธ ์ˆ˜๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ์ปค์ง€๋Š” ํŠธ๋ž˜ํ”ฝ, ๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๊ฐ„์˜ ๋Œ€์—ญํญ, ๋„คํŠธ์›Œํฌ ์ค‘๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ, ์žฅ์น˜์˜ ํ•˜๋“œ์›จ์–ด ์ŠคํŽ™์— ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์•ž์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํŠธ๋ž˜ํ”ฝ์ด ์žˆ๋Š”๋ฐ ํŠธ๋ž˜ํ”ฝ์€ ํŠน์ •์‹œ์ ์— ๋งํฌ ๋‚ด์˜ โ€œํ๋ฅด๋Š”โ€ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„์— ์ €์žฅ๋œ ํŒŒ์ผ(๋ฌธ์„œ,์ด๋ฏธ์ง€,๋™์˜์ƒ ๋“ฑ)์„ ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž)๊ฐ€ ๋‹ค์šด๋กœ๋“œ ์‹œ ๋ฐœ์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ˆ„์ ๋Ÿ‰์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์ดํ•ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์กŒ๋‹ค. = ํ๋ฅด๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์กŒ๋‹ค.
  • ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋งŽ์•„์กŒ๋‹ค. = ์ฒ˜๋ฆฌ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์กŒ๋‹ค.

82 ํŽ˜์ด์ง€

before

์ „์†ก(transport) ๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ... (์ƒ๋žต)

after

์ „์†ก(transport) ๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์—ฐ๊ฒฐ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ง€์›, ์‹ ๋ขฐ์„ฑ, ํ๋ฆ„ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธํ„ฐ๋„ท ๊ณ„์ธต ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋  ๋•Œ ์ค‘๊ณ„ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ TCP์™€ UDP๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

91 ํŽ˜์ด์ง€[new]

before

CSMA/CA๋Š” ... (์ƒ๋žต)

after

CSMA/CA๋Š” ๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹  ์ค‘ ํ•˜๋‚˜๋กœ ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์ „์— ๊ฐ€๋Šฅํ•œ ํ•œ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
CSMA/CA๋กœ ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ผ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ค‘์ธ ์ฑ„๋„์ด ์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ์ฑ„๋„์„ ๊ฐ์ง€ํ•˜๋‹ค ์œ ํ›„ ์ƒํƒœ์ธ ์ฑ„๋„์„ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”„๋ ˆ์ž„ ๊ฐ„ ๊ณต๊ฐ„ ์‹œ๊ฐ„์ธ IFS(InterFrame Space)์‹œ๊ฐ„๋งŒํผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. IFS๋Š” ํ”„๋ ˆ์ž„์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •์˜ํ•  ๋•Œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. IFS๊ฐ€ ๋‚ฎ์œผ๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค.
  3. ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ด๊ธฐ์ „ 0 ~ 2^k - 1 ์‚ฌ์ด์—์„œ ๊ฒฐ์ •๋œ ๋žœ๋ค์ƒ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •๋œ ์‹œ๊ฐ„๋งŒํผ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ํ”„๋ ˆ์ž„์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ธ ๋’ค ์ œ๋Œ€๋กœ ์†ก์‹ ์ด ๋˜์—ˆ๊ณ  ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด ๋งˆ์นฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด k = k + 1 ์„ ํ•˜๋ฉฐ ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณตํ•˜๋‹ค k๊ฐ€ ์ •ํ•ด์ง„ Kmax ๋ณด๋‹ค ๋” ์ปค์ง„๋‹ค๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์ „์†ก์€ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. (abort)

99 ํŽ˜์ด์ง€

before

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ๋Š” L7 ์Šค์œ„์น˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ.. (์ƒ๋žต)

after

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ๋Š” L7 ์Šค์œ„์น˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ L4์Šค์œ„์น˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. L4 ์Šค์œ„์น˜๋Š” ์ „์†ก ๊ณ„์ธต

106 ํŽ˜์ด์ง€

before

IP์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๊ณผ์ •์„ ํ™‰๋ฐ”์ดํ™‰... (์ƒ๋žต)

after

IP์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๊ณผ์ •์„ ํ™‰๋ฐ”์ดํ™‰ํ†ต์‹ ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ™‰(hop)์ด๋ž€ ์˜์–ด ๋œป ์ž์ฒด๋กœ๋Š” ๊ฑด๋„ˆ๋›ฐ๋Š” ๋ชจ์Šต์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ†ต์‹ ๋ง์—์„œ ๊ฐ ํŒจํ‚ท์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑด๋„ˆ๊ฐ€๋Š” ๋ชจ์Šต์„ ๋น„์œ ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ž์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ˆ˜๋งŽ์€ ์„œ๋ธŒ๋„คํŠธ์›Œํฌ ์•ˆ์— ์žˆ๋Š” ๋ผ์šฐํ„ฐ์˜ ๋ผ์šฐํŒ…ํ…Œ์ด๋ธ”์˜ IP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๊ณ  ๋˜ ์ „๋‹ฌํ•ด๋‚˜๊ฐ€๋ฉฐ ๋ผ์šฐํŒ…์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ตœ์ข… ๋ชฉ์ ์ง€๊นŒ์ง€ ํŒจํ‚ท์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

before

IPv6๋Š” 64๋น„ํŠธ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ

after

IPv6๋Š” 128๋น„ํŠธ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ

109 ํŽ˜์ด์ง€

before

ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ํ• ๋‹น ๋ฐฉ์‹(CIDR)

after

ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ํ• ๋‹น ๋ฐฉ์‹(classful network addressing)

117 ํŽ˜์ด์ง€

before

ํ•˜์ง€๋งŒ Base64 ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•  ๊ฒฝ์šฐ... (์ƒ๋žต)

after

ํ•˜์ง€๋งŒ Base64 ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•  ๊ฒฝ์šฐ 37% ์ •๋„ ํฌ๊ธฐ๊ฐ€ ๋” ์ปค์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•„์ž๊ฐ€ ๋งŒ๋“  ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

132 ํŽ˜์ด์ง€ Q&A 1๊ฐœ์ถ”๊ฐ€

www.naver.com์„ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

https://www.youtube.com/watch?v=5MM8NDzWHdE ์— ์˜์ƒ์„ ์˜ฌ๋ ค๋†จ์Šต๋‹ˆ๋‹ค.

137 ํŽ˜์ด์ง€

before

1์€ ์œ ์ €๋ชจ๋“œ๋ผ๊ณ  ์„ค์ •๋˜๋ฉฐ, ์œ ์ €๋ชจ๋“œ์ผ ๊ฒฝ์šฐ์—๋Š” ์‹œ์Šคํ…œ์ฝœ์„ ๋ชปํ•˜๊ฒŒ ๋ง‰์•„์„œ ํ•œ์ •๋œ ์ผ๋งŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

after

1์€ ์œ ์ €๋ชจ๋“œ๋ผ๊ณ  ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

143 ํŽ˜์ด์ง€

before

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ : HDD, SDD๋ฅผ ์ผ์ปฌ์œผ๋ฉฐ ํœ˜๋ฐœ์„ฑ, ์†๋„๋‚ฎ์Œ, ๊ธฐ์–ต ์šฉ๋Ÿ‰์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

after

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ : HDD, SDD๋ฅผ ์ผ์ปฌ์œผ๋ฉฐ ๋น„ํœ˜๋ฐœ์„ฑ, ์†๋„๋‚ฎ์Œ, ๊ธฐ์–ต ์šฉ๋Ÿ‰์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

146 ํŽ˜์ด์ง€[new]

before

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

after

์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ๋Œ€ํ‘œ์ ์ธ ์บ์‹œ๋กœ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ž‘์€ ์ €์žฅ์†Œ ์ฟ ํ‚ค, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์„ธ ์…˜ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ์‚ฌ์šฉ์ž์˜ ์ปค์Šคํ…€ํ•œ ์ •๋ณด๋‚˜ ์ธ์ฆ ๋ชจ๋“ˆ ๊ด€๋ จ ์‚ฌํ•ญ๋“ค์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•ด์„œ ์ถ”ํ›„ ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ ์ž์‹ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์•„์ด๋ดํ‹ฐํ‹ฐ๋‚˜ ์ค‘๋ณต ์š”์ฒญ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์“ฐ์ด๋ฉฐ ์˜ค๋ฆฌ์ง„(origin)์— ์ข…์†๋ฉ๋‹ˆ๋‹ค.

147 ํŽ˜์ด์ง€[new]

before

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋งŒ๋ฃŒ๊ธฐํ•œ์ด ์—†๋Š” ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. 10MB๊นŒ์ง€ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ์œ ์ง€๋˜๊ณ  ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ์ €์žฅ, ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

after

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋งŒ๋ฃŒ๊ธฐํ•œ์ด ์—†๋Š” ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. 5MB๊นŒ์ง€ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

149 ํŽ˜์ด์ง€

before

์Šค์™€ํ•‘

๋งŒ์•ฝ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์กด์žฌํ•˜์ง€๋งŒ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์ธ... (์ƒ๋žต)

after

์Šค์™€ํ•‘

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

149 ํŽ˜์ด์ง€[new]

before

  1. CPU๋Š” ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™•์ธ... (์ƒ๋žต)

after

  1. ์–ด๋–ค ๋ช…๋ น์–ด๊ฐ€ ์œ ํšจํ•œ ๊ฐ€์ƒ์ฃผ์†Œ์— ์ ‘๊ทผํ–ˆ์œผ๋‚˜ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋งŒ์•ฝ ์—†๋‹ค๋ฉด ํŠธ๋žฉ์ด ๋ฐœ์ƒ๋˜์–ด ์šด์˜์ฒด์ œ์— ์•Œ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  2. ์šด์˜์ฒด์ œ๋Š” ์‹ค์ œ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ”„๋ ˆ์ž„์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€์ ธ์™€์„œ ํŽ˜์ด์ง€๊ต์ฒด์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ •ํŽ˜์ด์ง€์™€ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. (์ด ๋•Œ ์Šค์™€ํ•‘์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.)
  4. ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ์‹œํ‚จ ํ›„ ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

151 ํŽ˜์ด์ง€

before

PFF(Page Fault Frequency)๋Š” ํŽ˜์ด์ง€ ํดํŠธ ๋นˆ๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒํ•œ์„ ๊ณผ ํ•˜ํ•œ์„ ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ƒํ•œ์„ ์— ๋„๋‹ฌํ•œ๋‹ค๋ฉด ํŽ˜์ด์ง€๋ฅผ ๋Š˜๋ฆฌ๊ณ  ํ•˜ํ•œ์„ ์— ๋„๋‹ฌํ•œ๋‹ค๋ฉด ํŽ˜์ด์ง€๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด์ฃ .

after

PFF(Page Fault Frequency)๋Š” ํŽ˜์ด์ง€ ํดํŠธ ๋นˆ๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒํ•œ์„ ๊ณผ ํ•˜ํ•œ์„ ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ƒํ•œ์„ ์— ๋„๋‹ฌํ•œ๋‹ค๋ฉด ํ”„๋ ˆ์ž„์„ ๋Š˜๋ฆฌ๊ณ  ํ•˜ํ•œ์„ ์— ๋„๋‹ฌํ•œ๋‹ค๋ฉด ํ”„๋ ˆ์ž„์„ ์ค„์ด๋Š” ๊ฒƒ์ด์ฃ .

153 ํŽ˜์ด์ง€

before

ํŽ˜์ด์ง€๋“œ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜(paged segmentation)์€ ๊ณต์œ ๋‚˜ ๋ณด์•ˆ์„ ์˜๋ฏธ ๋‹จ์œ„์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜ ๋ˆ„๊ณ , ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

after

ํŽ˜์ด์ง€๋“œ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜(paged segmentation)์€ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธ ๋‹จ์œ„์ธ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆ  ๊ณต์œ ๋‚˜ ๋ณด์•ˆ ์ธก๋ฉด์— ๊ฐ•์ ์„ ๋‘๊ณ  ์ž„์˜์˜ ๊ธธ์ด๊ฐ€ ์•„๋‹Œ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

154ํŽ˜์ด์ง€[new]

before

recentle

after

recently

166ํŽ˜์ด์ง€[new]

before

์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ๊ฐ•์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

after

์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ๊ฐ•์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์€ ํ•˜๋“œ์›จ์–ด ๊ด€์ ์—์„œ ๋ดค์„ ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์„œ๋กœ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฑ…์—์„œ๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ๊ณผ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ๋น„๊ตํ•˜๊ณ  ์žˆ๊ณ  ๊ทธ ๋‹ค์Œ์œผ๋กœ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†Œํ”„ํŠธ์›จ์–ด ๊ด€์ ์—์„œ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

169ํŽ˜์ด์ง€[new]

before

unamed

after

unnamed

163ํŽ˜์ด์ง€

before

์Šคํƒ

์Šคํƒ์—๋Š” ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ํ•จ์ˆ˜๊ฐ€ ์ €์žฅ๋˜๊ณ  ์ปดํŒŒ์ผ ์‹œ์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉฐ โ€˜๋™์ โ€™์ธ ํŠน ์ง•์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋•Œ ํž™๊ณผ ์Šคํƒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ๊ฒน์น˜๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํž™๊ณผ ์Šคํƒ ์‚ฌ์ด์˜ ๊ณต๊ฐ„์„ ๋น„์›Œ ๋†“ ์Šต๋‹ˆ๋‹ค.

ํž™

ํž™์€ ๋™์  ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ ๋Ÿฐํƒ€์ž„ ์‹œ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒกํ„ฐ ๊ฐ™์€ ๋™์  ๋ฐฐ์—ด์€ ๋‹น์—ฐํžˆ ํž™์— ๋™์  ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ํž™์€ โ€˜๋™์ โ€™์ธ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์˜์—ญ

๋ฐ์ดํ„ฐ ์˜์—ญ์€ ์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๊ณ , ์ •์ ์ธ ํŠน์ง•์„ ๊ฐ–๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋ฉด ์‚ฌ๋ผ์ง€๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์˜์—ญ์€ BSS ์˜์—ญ๊ณผ Data ์˜์—ญ์œผ๋กœ ๋‚˜๋‰˜๊ณ , BSS ์˜์—ญ์€ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ ๊ฐ€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด ์ €์žฅ๋˜๋ฉฐ Data ์˜์—ญ(Data segment)์€ 0์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋“ค์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์˜์—ญ

์ฝ”๋“œ ์˜์—ญ์€ ํ”„๋กœ๊ทธ๋žจ์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ์ด ์˜์—ญ์€ ์ˆ˜ ์ • ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„์–ด๋กœ ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ •์ ์ธ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

after

์Šคํƒ๊ณผ ํž™

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

๋ฐ์ดํ„ฐ ์˜์—ญ๊ณผ ์ฝ”๋“œ ์˜์—ญ

์ด ์˜์—ญ์€ ์ •์ ํ• ๋‹น๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ์ •์ ํ• ๋‹น์€ ์ปดํŒŒ์ผ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์˜์—ญ์€ BSS segment์™€ Data segment, code / text segment ๋กœ ๋‚˜๋‰˜์–ด์„œ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. BSS segment๋Š” ์ „์—ญ๋ณ€์ˆ˜ ๋˜๋Š” static, const๋กœ ์„ ์–ธ๋˜์–ด์žˆ๊ณ  0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๋Š” ์ดˆ๊ธฐํ™”๊ฐ€ ์–ด๋– ํ•œ ๊ฐ’์œผ๋กœ๋„ ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋ณ€์ˆ˜๋“ค์ด ์ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋˜๋ฉฐ Data segment์€ ์ „์—ญ๋ณ€์ˆ˜ ๋˜๋Š” static, const ๋กœ ์„ ์–ธ๋˜์–ด์žˆ๊ณ  0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜๊ฐ€ ์ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. code segment๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

164ํŽ˜์ด์ง€

before

ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์ƒํƒœ : '์ค€๋น„', .... (์ƒ๋žต)

after

ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์ƒํƒœ : '์ค€๋น„', '์ผ์‹œ์ค‘๋‹จ' ๋“ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ์„ ์–ป์€ ์ดํ›„์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ

164ํŽ˜์ด์ง€[new]

before

PCB๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

after

PCB๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋กœ๋“œ์‹œํ‚ค๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

169ํŽ˜์ด์ง€[new]

before

unamed

after

unnamed

173ํŽ˜์ด์ง€

before

๊ณต์œ ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์ˆœ์„œ ๋“ฑ์˜ ์ด์œ ๋กœ ... (์ƒ๋žต)

after

์ž„๊ณ„ ์˜์—ญ

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

174ํŽ˜์ด์ง€

before

๋ฎคํ…์Šค(mutext)๋Š” ๊ณต์œ  ์ž์›์„ ... (์ƒ๋žต)

after

๋ฎคํ…์Šค

๋ฎคํ…์Šค(mutex)๋Š” ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์„ lock()์„ ํ†ตํ•ด ์ž ๊ธˆ ์„ค์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•œ ํ›„์—๋Š” unlock()์„ ํ†ตํ•ด ์ž ๊ธˆํ•ด์ œํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ž ๊ธˆ์ด ์„ค์ •๋˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ์ž ๊ธด ์ฝ”๋“œ ์˜์—ญ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  ํ•ด์ œ๋Š” ๊ทธ์™€ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฎคํ…์Šค๋Š” ์ž ๊ธˆ ๋˜๋Š” ์ž ๊ธˆํ•ด์ œ๋ผ๋Š” ์ƒํƒœ๋งŒ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

174ํŽ˜์ด์ง€[new]

before

์ƒํ˜ธ๋ฐฐ์ œ

ํ•œ์ • ๋Œ€๊ธฐ

์œตํ†ต์„ฑ

ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฉํ•ดํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

after

์ƒํ˜ธ ๋ฐฐ์ œ(mutual exclusion)

ํ•œ์ • ๋Œ€๊ธฐ(bounded waiting)

์œตํ†ต์„ฑ(progress)

๋งŒ์•ฝ ์–ด๋– ํ•œ ํ”„๋กœ์„ธ์Šค๋„ ์ž„๊ณ„์˜์—ญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ž„๊ณ„์˜์—ญ ์™ธ๋ถ€์˜ ์–ด๋– ํ•œ ํ”„๋กœ์„ธ์Šค๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๋•Œ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ ์„œ๋กœ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฎคํ…์Šค

๋ฎคํ…์Šค(mutex)๋Š” ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ  ์ž์›์„ lock()์„ ํ†ตํ•ด ์ž ๊ธˆ ์„ค์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•œ ํ›„์—๋Š” unlock()์„ ํ†ตํ•ด ์ž ๊ธˆํ•ด์ œํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ž ๊ธˆ์ด ์„ค์ •๋˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ์ž ๊ธด ์ฝ”๋“œ ์˜์—ญ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  ํ•ด์ œ๋Š” ๊ทธ์™€ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฎคํ…์Šค๋Š” ์ž ๊ธˆ ๋˜๋Š” ์ž ๊ธˆํ•ด์ œ๋ผ๋Š” ์ƒํƒœ๋งŒ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

175ํŽ˜์ด์ง€

before

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด... (์ƒ๋žต)

after

ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ wait() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ์ž์›์„ ํ•ด์ œํ•˜๋ฉด ์„ธ๋งˆํฌ์–ด์—์„œ signal() ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋งˆํฌ์–ด์—๋Š” ์กฐ๊ฑด ๋ณ€์ˆ˜๊ฐ€ ์—†๊ณ  ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋•Œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์„ธ๋งˆํฌ์–ด ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด

๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด๋Š” 0๊ณผ 1์˜ ๋‘๊ฐ€์ง€ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์„ธ๋งˆํฌ์–ด์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„์˜ ์œ ์‚ฌ์„ฑ์œผ๋กœ ์ธํ•ด ๋ฎคํ…์Šค๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ๋งˆํฌ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋ฎคํ…์Šค๋Š” ์ž ๊ธˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ˜ธ๋ฐฐ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” "์ž ๊ธˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜"์ด๊ณ , ์„ธ๋งˆํฌ์–ด๋Š” ์‹ ํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ˜ธ ๋ฐฐ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” "์‹ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜"์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํœด๋Œ€ํฐ์—์„œ ๋…ธ๋ž˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€ ์นœ๊ตฌ๋กœ๋ถ€ํ„ฐ ์ „ํ™”๊ฐ€ ์˜ค๋ฉด ๋…ธ๋ž˜๊ฐ€ ์ค‘์ง€๋˜๊ณ  ํ†ตํ™” ์ฒ˜๋ฆฌ ์ž‘์—…์— ๊ด€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

179ํŽ˜์ด์ง€[new]

before

๊ธฐ์กด SJF ์Šค์ผ€์ค„๋ง์˜ ๊ฒฝ์šฐ ๊ธด ์‹œ๊ฐ„์„ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ์˜ค๋ž˜๋œ ์ž‘์—…์ผ์ˆ˜๋ก โ€˜์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•(aging)โ€™์„ ํ†ตํ•ด ๋‹จ์ ์„ ๋ณด์™„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค

after

๊ธฐ์กด SJF ์Šค์ผ€์ค„๋ง์˜ ๊ฒฝ์šฐ ๊ธด ์‹œ๊ฐ„์„ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์˜ค๋ž˜๋œ ์ž‘์—…์ผ์ˆ˜๋ก โ€˜์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•(aging)โ€™์„ ํ†ตํ•ด ํ•ด๋‹น ๋‹จ์ ์„ ๋ณด์™„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•ฉ๋‹ˆ๋‹ค.์ฐธ๊ณ ๋กœ ์šฐ์„ ์ˆœ์œ„๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ SJF์™€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ FCFS๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งŒ๋“ค๊ธฐ๋„ ํ•˜๋ฉฐ ์„ ์ ํ˜•, ๋น„์„ ์ ํ˜•์ ์ธ ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

180ํŽ˜์ด์ง€[new]

before

๋ผ์šด๋“œ ๋กœ๋นˆ(RR, Round Robin)์€ ํ˜„๋Œ€ ์ปดํ“จํ„ฐ๊ฐ€ ์“ฐ๋Š” ์Šค์ผ€์ค„๋ง์ธ ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง (priority scheduling)์˜ ์ผ์ข…์œผ๋กœ ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ํ• ๋‹น ์‹œ๊ฐ„์„ ์ฃผ๊ณ  ๊ทธ ์‹œ๊ฐ„ ์•ˆ์— ๋ ๋‚˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์‹œ ์ค€๋น„ ํ(ready queue)์˜ ๋’ค๋กœ ๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

after

๋ผ์šด๋“œ ๋กœ๋นˆ(RR, Round Robin)์€ ํ˜„๋Œ€ ์ปดํ“จํ„ฐ๊ฐ€ ์“ฐ๋Š” ์„ ์ ํ˜• ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šค์ผ€์ค„๋ง ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ํ• ๋‹น ์‹œ๊ฐ„์„ ์ฃผ๊ณ  ๊ทธ ์‹œ๊ฐ„ ์•ˆ์— ๋ ๋‚˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์‹œ ์ค€๋น„ ํ(ready queue)์˜ ๋’ค๋กœ ๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

181ํŽ˜์ด์ง€

before

RB

after

RR

182ํŽ˜์ด์ง€

before

HDD, SDD๋ฅผ ์ผ์ปฌ์œผ๋ฉฐ ํœ˜๋ฐœ์„ฑ,

after

HDD, SDD๋ฅผ ์ผ์ปฌ์œผ๋ฉฐ ๋น„ํœ˜๋ฐœ์„ฑ,

186ํŽ˜์ด์ง€

before

NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋Š”... (์ƒ๋žต)

after

MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋Š” ๋„ํ๋จผํŠธ - ์ปฌ๋ ‰์…˜ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

190ํŽ˜์ด์ง€

  • ํ‘œ 4 - 1 / ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ : ์ตœ๋Œ“๊ฐ’ (๋ถ€ํ˜ธ ์žˆ์Œ) / ์ตœ๋Œ“๊ฐ’ (๋ถ€ํ˜ธ ์—†์Œ)
  • ํ‘œ 4 - 1 / BIGINT : 2^63, 2^63 - 1, 2^64 - 1
  • ์ˆซ์ž 3๊ฐœ๋งˆ๋‹ค , ์ฐํ˜€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ex) 32768 -> 32,768

191ํŽ˜์ด์ง€

before

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •๋œ ํ˜•ํƒœ์— ... (์ƒ๋žต)

after

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— CHAR์˜ ๊ฒฝ์šฐ ์œ ๋™์ ์ด์ง€ ์•Š์€ ๊ธธ์ด๋ฅผ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ํšจ์œจ์ ์ด๋ฉฐ ์œ ๋™์ ์ธ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋Š” VARCHAR๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

191ํŽ˜์ด์ง€

before

CHAR๋Š” ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์„ ์–ธํ•œ ๊ธธ์ด๋กœ ๊ณ ์ •๋˜๋ฉฐ ๊ธธ์ด๋Š” 0์—์„œ 255 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€ ์ง‘๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋•Œ ๋ฌด์กฐ๊ฑด ์„ ์–ธํ•œ ๊ธธ์ด ๊ฐ’์œผ๋กœ โ€˜๊ณ ์ •โ€™ํ•ด์„œ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

after

CHAR๋Š” ๊ณ ์ • ๊ธธ์ด ๋ฌธ์ž์—ด์ด๋ฉฐ ๊ธธ์ด๋Š” 0์—์„œ 255 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋•Œ ๋ฌด์กฐ๊ฑด ์„ ์–ธํ•œ ๊ธธ์ด ๊ฐ’์œผ๋กœ โ€˜๊ณ ์ •โ€™ํ•ด์„œ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CHAR(100)์œผ๋กœ ์„ ์–ธํ•œ ํ›„ 10๊ธ€์ž๋ฅผ ์ €์žฅํ•ด๋„ 100๋ฐ”์ดํŠธ๋กœ ์ €์žฅ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

211ํŽ˜์ด์ง€ [new]

BEFORE

REPEATABLE_READ

REPEATABLE_READ๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์—† ๋„๋ก ๋ง‰์•„์ฃผ์ง€๋งŒ ์ƒˆ๋กœ์šด ํ–‰์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋ง‰์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ดํ›„์— ์ถ”๊ฐ€๋œ ํ–‰์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

READ_COMMITTED

READ_COMMITTED ๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ฉฐ MySQL8.0, PostgreSQL, SQL Server, ์˜ค๋ผํด์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. READ UNCOMMITTED ์™€ ๋Š” ๋‹ฌ๋ฆฌ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋ฐ‹ ์™„๋ฃŒ๋œ ๋ฐ์ด ํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ์กฐํšŒ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋–ค ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ ๋žœ์žญ์…˜ A๊ฐ€ ์ˆ˜์ •ํ•œ ํ–‰์„ ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๊ฐ™ ์€ ํ–‰์„ ๋‹ค์‹œ ์ฝ์„ ๋•Œ ๋‹ค๋ฅธ ๋‚ด์šฉ์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AFTER

REPEATABLE_READ

REPEATABLE_READ๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์—† ๋„๋ก ๋ง‰์•„์ฃผ์ง€๋งŒ ์ƒˆ๋กœ์šด ํ–‰์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋ง‰์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ดํ›„์— ์ถ”๊ฐ€๋œ ํ–‰์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋Š” MySQL8.0์˜ innoDB ๊ธฐ๋ณธ๊ฐ’์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

READ_COMMITTED

READ_COMMITTED ๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ฉฐ PostgreSQL, SQL Server, ์˜ค๋ผํด์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. READ UNCOMMITTED ์™€ ๋Š” ๋‹ฌ๋ฆฌ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋ฐ‹ ์™„๋ฃŒ๋œ ๋ฐ์ด ํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ์กฐํšŒ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋–ค ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ ๋žœ์žญ์…˜ A๊ฐ€ ์ˆ˜์ •ํ•œ ํ–‰์„ ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๊ฐ™ ์€ ํ–‰์„ ๋‹ค์‹œ ์ฝ์„ ๋•Œ ๋‹ค๋ฅธ ๋‚ด์šฉ์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

234ํŽ˜์ด์ง€[new]

BEFORE

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

AFTER

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

239ํŽ˜์ด์ง€[new]

BEFORE

์—ฌ๊ธฐ์„œ ์„ค๋ช…ํ•˜๋Š” ๋ฐฐ์—ด์€ โ€˜์ •์  ๋ฐฐ์—ดโ€™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํƒ์ƒ‰์— O(1)์ด ๋˜์–ด ๋žœ๋ค ์ ‘๊ทผ(random access)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ์—๋Š” O(n)์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์™€ ์‚ญ์ œ๋ฅผ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ์€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํƒ์ƒ‰์„ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ์€ ๋ฐฐ์—ด๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹ ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์›์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

AFTER

์—ฌ๊ธฐ์„œ ์„ค๋ช…ํ•˜๋Š” ๋ฐฐ์—ด์€ โ€˜์ •์  ๋ฐฐ์—ดโ€™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ ‘๊ทผ(์ฐธ์กฐ)์— O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋žœ๋ค ์ ‘๊ทผ(random access)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ์—๋Š” O(n)์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์™€ ์‚ญ์ œ๋ฅผ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ์€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ ‘๊ทผ(์ฐธ์กฐ)์„ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ์€ ๋ฐฐ์—ด๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹ ์Šต๋‹ˆ๋‹ค.

241ํŽ˜์ด์ง€ [new]

BEFORE

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

AFTER

์•ž์˜ ๊ทธ๋ฆผ์—์„œ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด n๋ฒˆ์งธ ์š”์†Œ์˜ ์ ‘๊ทผ(์ฐธ์กฐ)์€ ๋ฐฐ์—ด์€ ๋น ๋ฅด๊ณ  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๋Š๋ฆฌ์ฃ . ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ ๊ทธ์ € ์ƒ์ž ์œ„์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ ‘๊ทผํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ , ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๋งค๋ฒˆ ์ƒ์ž๋ฅผ ์—ด์–ด์•ผ ํ•˜๊ณ  ์ฃผ์–ด์ง„ ์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์—ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ(์ฐธ์กฐ)์˜ ๊ฒฝ์šฐ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ฐธ์กฐ๊ฐ€ ๋งŽ์ด ์ผ์–ด๋‚˜๋Š” ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด์ด ๋น ๋ฅด๊ณ  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๋Š๋ฆฝ๋‹ˆ๋‹ค.

BEFORE

๋งจ ๋’ค๋‚˜ ๋งจ ์•ž์ด ์•„๋‹Œ (vector์„ค๋ช…์ค‘)

AFTER

๋งจ ๋’ค๊ฐ€ ์•„๋‹Œ (vector์„ค๋ช…์ค‘)

242ํŽ˜์ด์ง€ [new]

BEFORE

์ˆ˜์‹ ์ค‘ logn

AFTER

์ˆ˜์‹ ์ค‘ log2n

Releases

No releases published

Packages

No packages published