[์ž๋ฃŒ๊ตฌ์กฐ] 5๊ฐ• - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

2025. 9. 4. 19:09ยท๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ

โœ… 1. ๋ฆฌ์ŠคํŠธ์˜ ๊ฐœ๋…

(1) ๋ฐฐ์—ด์˜ ์ •์˜

  • ๋ฐฐ์—ด์€ ํ•˜๋“œ์›จ์–ด ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ์™€ ๋™์ผํ•จ ( ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ ๊ณต๊ฐ„์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋จ. )
  • ์›์†Œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ, DDR)์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜๋ฅผ '์ˆœ์„œ'์ ์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ํŠน์ง•
  • ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์ €์žฅ๋˜๋Š” '์›์†Œ๊ฐ’์˜ ๋ฌผ๋ฆฌ์  ์ˆœ์„œ'

(2) ๋ฆฌ์ŠคํŠธ์˜ ์˜๋ฏธ

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

(3) ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

  • ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•: ์›์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„๊ณผ ๋‹ค์Œ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์„ ํ•จ๊ป˜ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•: ๋ฐฐ์—ด์„ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
  • ์ฆ‰, ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋งŒ ์œ ์ง€ํ•ด์ฃผ๋ฉด ๋˜๋Š”๊ฒƒ์ด ๋ฆฌ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•จ.

โœ… 2. ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„

(1) ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„

  • ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์ธ ์ˆœ์ฐจ์  ์ฃผ์†Œ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

(2) ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๋ฌธ์ œ์ 

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

โœ… 3. ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„

ํฌ์ธํ„ฐ๋ฅผ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ํ•„์š”ํ•จ

์ž‘์€ ์ˆ˜์˜ ๋ฐ์ดํ„ฐ์—์„œ ํฌ์ธํ„ฐ๋ฅผ ์“ฐ๋ฉด ๋‚ญ๋น„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.

(1) ๋…ธ๋“œ์˜ ๊ตฌ์กฐ

  • ๋…ธ๋“œ(node): ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๊ฐ’(๋ฐ์ดํ„ฐ) + ๋‹ค์Œ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ •๋ณด(ํฌ์ธํ„ฐ) ๊ฐ€ ํ•ฉ์ณ์ ธ์„œ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๋œ๋‹ค.
  • ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ ์š”์†Œ(์›์†Œ๊ฐ’)์™€ ๋ฆฌ์ŠคํŠธ์˜ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์ง€์‹œํ•˜๋Š” ํฌ์ธํ„ฐ(์ฃผ์†Œ, ๋งํฌ)๋กœ ๊ตฌ์„ฑ๋จ -> ์œ„์—” ๊ฐ’ ์•„๋ž˜์—” ์ฃผ์†Œ

(2) ๋…ธ๋“œ์˜ ๊ตฌ์กฐ ๋ฐ ์—ฐ๊ฒฐ

  • ํ•ด๋‹น ๋…ธ๋“œ ํ•˜๋‚˜์—๋Š” ์—ฐ๊ฒฐ ๋œ ๋…ธ๋“œ ๋‹ค์Œ ๋…ธ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

(3) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋…ผ๋ฆฌ์  ์ˆœ์„œ์™€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ํ‘œํ˜„

  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ ๊ตฌ์„ฑ์€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ์ฃผ์†Œ๊ฐ’์€ ๋ณธ์ธ์˜ ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ์—ฐ๊ฒฐ ๋œ ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์ด๋‹ค.
  • C/C++์€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋…ธ๋“œ๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•จ.
  • Java๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ(์ฐธ์กฐ) ๋ฅผ ์ €์žฅํ•˜๊ณ  JVM์ด ์ด๋ฅผ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋งคํ•‘์„ ํ•œ๋‹ค.
  • ํ•˜์ง€๋งŒ JVM๋„ ๊ฒฐ๊ตญ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐ์„ ํ•˜๋ฉฐ, ์‹ค์ œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” JVM์ด ์•Œ์•„์„œ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ฒŒ ๋จ. ์ถ”์ƒํ™” ๋А๋‚Œ

โœ… 4. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜

(1) ๋ฆฌ์ŠคํŠธ์˜ ์ƒ์„ฑ

  • C ์–ธ์–ด์—์„œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

(2) ํฌ์ธํ„ฐ์˜ ํ• ๋‹น๊ณผ ๋ฐ˜ํ™˜ ์˜ˆ

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›๊ณ  ํฌ์ธํ„ฐ๋ฅผ ์ง€์ •๋ฐ›๊ณ  ๊ฐ’์„ ํ• ๋‹น๋ฐ›๋Š” ๊ณผ์ •์ด๋‹ค.

(3) ํฌ์ธํ„ฐ์˜ ํ• ๋‹น๊ณผ ๋ฐ˜ํ™˜์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ

  • p_a ์™€ p_b ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ๊ฐ ์ž๋ฃŒํ˜• ๋ฐ”์ดํŠธ ํฌ๊ธฐ์— ๋งž๊ฒŒ ํ• ๋‹น์„ ๋ฐ›์€ ๋ชจ์Šต์ด๋‹ค.
  • ๊ฐ๊ฐ ์ฃผ์†Œ๊ฐ’์„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๊ฐ’์ด ์žˆ๊ณ , ์—ฐ๊ฒฐ ๋œ ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

โœ… 5. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ

(1) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ๋…ธ๋“œ์˜ ์‚ญ์ œ

  • link ์˜ ์ˆซ์ž๋Š” ๋‹ค์Œ ๋…ธ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์ด๋‹ค.

 

  • ์‚ญ์ œ ๋  ๋…ธ๋“œ์˜ link ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ „ ๋…ธ๋“œ์˜ link ๊ฐ’์„ ์‚ญ์ œ ๋  ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์ฃผ๋ฉด ์‚ญ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

[ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์‚ญ์ œ ์—ฐ์‚ฐ ๋‹จ๊ณ„ ]

  • ์‚ญ์ œํ•  ๋…ธ๋“œ์˜ ์„ ํ–‰ ๋…ธ๋“œ์˜ ๋งํฌ ํ•„๋“œ๋ฅผ ์‚ญ์ œํ•  ๋…ธ๋“œ์˜ ํ›„ํ–‰ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.
  • ์‚ญ์ œํ•  ๋…ธ๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ( ์šด์˜์ฒด์ œ์—๊ฒŒ ๋„˜๊น€์œผ๋กœ์จ ํ•ด๋‹น ๋ถ€๋ถ„์€ ์‚ญ์ œ ๋˜๋ฉฐ, ๋‹ค๋ฅธ ์˜์—ญ์œผ๋กœ ์”Œ์ž„ )

(2) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ๋…ธ๋“œ์˜ ์‚ฝ์ž…

  • ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’ 6000์„ ๊ฐ–๋Š” ๋…ธ๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ณ  ๊ฐ€์ •

 

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

[ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์‚ฝ์ž… ์—ฐ์‚ฐ ๋‹จ๊ณ„ ]

  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๊ณ  ์‚ฝ์ž…ํ•  ๋‚ด์šฉ์„ ์ €์žฅํ•˜์—ฌ ์‚ฝ์ž…ํ•  x ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • x ๋…ธ๋“œ์˜ ๋งํฌ๋ถ€๋ถ„์ด ํ›„ํ–‰ ๋…ธ๋“œ๊ฐ€ ๋  j ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.
  • ์‚ฝ์ž…๋  x ๋…ธ๋“œ์˜ ์„ ํ–‰ ๋…ธ๋“œ๊ฐ€ ๋  i ๋…ธ๋“œ์˜ ๋งํฌ ํ•„๋“œ๊ฐ€ x ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.

โœ… 6. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์—ฐ์‚ฐ

(1) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ƒ์„ฑ

  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ƒ์„ฑ ์—ฐ์‚ฐ์„ ์˜๋ฏธํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ์ฒ˜์Œ์—” head ์— ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง„ ํ˜•ํƒœ๋กœ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ์ดํ›„ ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ํ—ค๋“œ์—์„œ data ์™€ link ๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.
  • ์ฒ˜์Œ ๋งŒ๋“ค์–ด์ง€๋ฉด head ๋…ธ๋“œ๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ head ๊ฐ€ ๊ฐ€์ง€๋Š” ์ฃผ์†Œ๊ฐ’์€ NULL ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

(2) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ฝ์ž…

  • ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒฝ์šฐ์ด๋‹ค.
  • ์ฆ‰, New Node ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ๋‚ด๋ถ€ ๋ฐ์ด๋กœ๋Š” x , link ๋กœ๋Š” NULL ์ธ ์ƒˆ๋กœ์šด ๋…ธ๋“œ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž… ํ•  ๋•Œ ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ์—๋Š” NewNode๋ฅผ ๋งŒ๋“ค๊ณ  ์ œ์ผ ์•ž์ธ head ์˜ link ์— ํ›„ํ–‰ ๋…ธ๋“œ์ธ ์•ž์—์„œ ๋งŒ๋“  NewNode ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋ฐ”๋กœ ๋ฆฌํ„ด์„ ํ•˜๊ฒŒ ๋˜๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ๋กœ head ๋…ธ๋“œ๊ฐ€ NULL ์ธ ๊ฒฝ์šฐ ํ›„ํ–‰ ๋…ธ๋“œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ๋Š” ๋นˆ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ฆ‰, ์ด ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด head ๋…ธ๋“œ์˜ ์ฐธ์กฐ ์ฃผ์†Œ๊ฐ’์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

[ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋’ค์— ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด ๋…ธ๋“œ ์‚ฝ์ž… ์—ฐ์‚ฐ ]

  • ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” NewNode ๊ฐ€ ์žˆ๋‹ค๋ฉด, LastNode ๋ฅผ ์ฐพ์•„์„œ ํ•ด๋‹น LastNode ์˜ link ๋ถ€๋ถ„์— NewNode ์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ๊ฒŒ๋จ.
  • ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ๋Š” while ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์กฐ๊ฑด์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ์กฐ๊ฑด์€ LastNode ๋Š” ํ•ญ์ƒ link ๊ฐ€ ๋ฌด์กฐ๊ฑด NULL ์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— NULL ๋…ธ๋“œ๋ฅผ ํƒ€๊ณ  ๊ฐ€๋ฉด์„œ NULL ์ธ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํŒŒ์•…์„ ํ•˜๊ฒŒ ๋œ ํ›„, ์žˆ๋‹ค๋ฉด ๊ทธ๊ณณ์„ LastNode ๋กœ ๋ณด๊ณ  ๊ทธ ๊ณณ์— ๋งŒ๋“ค์–ด์ง„ ํ›„ํ–‰ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

[ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ํŠน์ • ๋…ธ๋“œ ๋’ค์— ์ƒˆ ๋…ธ๋“œ์˜ ์‚ฝ์ž… ์—ฐ์‚ฐ ]

    • ํŠน์ • ๋…ธ๋“œ ๋’ค์— ์ƒˆ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž… ํ•  ๋•Œ ์ด ํŠน์ • ๋…ธ๋“œ๋Š” prevNode ๋กœ ๋ถˆ๋ฆฐ๋‹ค.

  • ์œ„์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•˜๋ฉด ํ•ด๋‹น ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • prevNode ๋’ค์— NewNode ๋ฅผ ๋„ฃ์„ ๋• prevNode ์™€ ์—ฐ๊ฒฐ ๋œ ๊ธฐ์กด ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์„ NewNode ์˜ link ์— ๋„ฃ์–ด์ฃผ๊ฒŒ ๋จ.
  • ์ดํ›„, prevNode ์˜ link ๊ฐ’์„ NewNode ์˜ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์คŒ์œผ๋กœ์จ, ์ค‘๊ฐ„์— ๊ปด๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋จ.

  • ์ดํ›„, ๊ฒฐ๊ณผ๋Š” ์ด๋Ÿฐ ๋ชจ์Šต์ด ๋  ์ˆ˜ ์žˆ์Œ.

(3) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‚ญ์ œ ์—ฐ์‚ฐ

[ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ ์‚ญ์ œ ์—ฐ์‚ฐ ]

  • ์กฐ๊ฑด๋ฌธ ์ฒซ ๋ฒˆ์งธ๋ฅผ ๋ณด๋ฉด head ์˜ link ๊ฐ’์ด NULL ์ฆ‰, ๊ณต๋ฐฑ ๋ฆฌ์ŠคํŠธ์ธ ๊ฒฝ์šฐ: ์‚ญ์ œ ํ•  ๊ฒƒ์ด ์—†์œผ๋ฏ€๋กœ ์—ฐ์‚ฐ์ด ์ค‘๋‹จ์ด ๋œ๋‹ค.
  • ๋ฆฌ์ŠคํŠธ์— ๋…ธ๋“œ๊ฐ€ ํ•œ ๊ฐœ์ธ ๊ฒฝ์šฐ: head ์˜ link ๊ฐ’์„ NULL๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์•Œ์•„์„œ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋ฉฐ, ์šด์˜์ฒด์ œ๊ฐ€ ๋‚ ๋ ค์คŒ.
  • ์ฆ‰, ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” head ์˜ ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋จ.

  • ๋ฆฌ์ŠคํŠธ์— ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ: prevNode ์™€ delNode ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, link ๊ฐ’์ด NULL ์ธ ๊ฒฝ์šฐ๋ฅผ ์ฐพ์„ ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด์„œ prevNode ์™€ delNode ๋ฅผ ํ•œ์นธ์”ฉ ๋’ค๋กœ ๊ฐ€๊ฒŒ ํ•œ๋‹ค. ์ฐพ์œผ๋ฉด ๊ทธ๋•Œ prevNode์˜ link ๊ฐ’์„ NULL ๋กœ ๋ฐ”๊พธ๋ฉด์„œ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋ฉฐ ์‚ญ์ œ๊ฐ€ ๋˜๋Š” ์—ฐ์‚ฐ์ž„.

(4) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ํŠน์ • ๋…ธ๋“œ ๊ฒ€์ƒ‰

  • ๊ฒ€์ƒ‰์€ ์‚ญ์ œ ์—ฐ์‚ฐ์ธ deleteNode ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง„ํ–‰์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๊ธฐ์กด ๋งˆ์ง€๋ง‰ ์‚ญ์ œ ์—ฐ์‚ฐ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ prevNode ์™€ delNode ๋ฅผ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€๋ฉด์„œ ์ค‘๊ฐ„์˜ ์กฐ๊ฑด๋ฌธ์œผ๋กœ data ๊ฐ’์ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” data ๊ฐ’์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ดํ›„, ์•„๋‹ ๊ฒฝ์šฐ์— ๋‹ค์‹œ ๋ฏธ๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ํŠน์ • ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠน์ • ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ ๋˜ํ•œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

  • ์œ„์™€ ๊ฐ™์ด prevNode ์™€ delNode ์ ‘๊ทผ์„ ํ†ตํ•ด ํŠน์ • ๋…ธ๋“œ๋ฅผ ํŒŒ์•… ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๊ฒƒ์€ ๊ฒ€์ƒ‰๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ญ์ œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์„ ํ†ตํ•ด์„œ ํŠน์ • ์œ„์น˜์˜ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‚ญ์ œ๋œ ๋…ธ๋“œ์˜ ์„ ํ–‰ ๋ฐ ํ›„ํ–‰ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

  • prevNode ์˜ link ๋ฅผ ์‚ญ์ œ ํ•  ๋…ธ๋“œ์˜ ํ›„ํ–‰ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜๊ณ , delNode ์˜ ํ›„ํ–‰ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ์„ ๋Š์Œ์œผ๋กœ์จ ์‚ญ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.

'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต > ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ž๋ฃŒ๊ตฌ์กฐ] 7๊ฐ• - ํŠธ๋ฆฌ  (0) 2025.10.14
[์ž๋ฃŒ๊ตฌ์กฐ] 6๊ฐ• - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‘์šฉ  (0) 2025.10.06
[์ž๋ฃŒ๊ตฌ์กฐ] 4๊ฐ• - ํ  (0) 2025.09.02
[์ž๋ฃŒ๊ตฌ์กฐ] 3๊ฐ• - ์Šคํƒ  (2) 2025.08.25
[์ž๋ฃŒ๊ตฌ์กฐ] 2๊ฐ• - ๋ฐฐ์—ด  (3) 2025.08.22
'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ž๋ฃŒ๊ตฌ์กฐ] 7๊ฐ• - ํŠธ๋ฆฌ
  • [์ž๋ฃŒ๊ตฌ์กฐ] 6๊ฐ• - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์‘์šฉ
  • [์ž๋ฃŒ๊ตฌ์กฐ] 4๊ฐ• - ํ
  • [์ž๋ฃŒ๊ตฌ์กฐ] 3๊ฐ• - ์Šคํƒ
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (195) N
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (51) N
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก  (15)
        • ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ (13) N
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
      • ๐Ÿ› ๏ธBackend (68)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โš™๏ธC (12)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (64)
      • ์ •๋ณด (2)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    C์–ธ์–ด
    C
    ์ž…์ถœ๋ ฅ
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ๋ฐฉํ†ต๋Œ€
    spring
    ๋ฐฉ์†ก๋Œ€
    ๋ฐฐ์—ด
    ํ•จ์ˆ˜
    ์ž๋ฐ”
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ํŒŒ์ด์ฌ
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    Python
    ์ปดํŒŒ์ผ๋Ÿฌ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 
    C ์–ธ์–ด
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[์ž๋ฃŒ๊ตฌ์กฐ] 5๊ฐ• - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”