Home > Archive > CS_archive > ๐Ÿ’พ [CS] ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์˜ ํฐ ๊ทธ๋ฆผ

๐Ÿ’พ [CS] ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์˜ ํฐ ๊ทธ๋ฆผ
CS

์ปดํ“จํ„ฐ ๊ตฌ์กฐ์˜ ํฐ ๊ทธ๋ฆผ

์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผ ํ•  ์ปดํ“จํ„ฐ ๊ตฌ์กฐ ์ง€์‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.

  1. ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด
  2. ์ปดํ“จํ„ฐ์˜ ๋„ค ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ถ€ํ’ˆ

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด

  1. ๋ฐ์ดํ„ฐ
    • ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ˆซ์ž, ๋ฌธ์ž, ์ด๋ฏธ์ง€, ๋™์˜์ƒ๊ณผ ๊ฐ™์€ ์ •์ ์ธ ์ •๋ณด
  2. ๋ช…๋ น์–ด
    • ์ปดํ“จํ„ฐ๋ฅผ ์‹ค์ง์ ์œผ๋กœ ์ž‘๋™ ์‹œํ‚ค๋Š” ์ค‘์š”ํ•œ ์ •๋ณด
    • ๋ฐ์ดํ„ฐ ์—†์ด๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋Š” ์ •๋ณด ๋ฉ์–ด๋ฆฌ
    • โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์›€์ง์ด๊ณ  ์ปดํ“จํ„ฐ๋ฅผ ์ž‘๋™ ์‹œํ‚ค๋Š” ์žฅ๋ณดโ€

โ€œ์ฆ‰, ๋ช…๋ น์–ด๋Š” ์ปดํ“จํ„ฐ๋ฅผ ์ž‘๋™์‹œํ‚ค๋Š” ์ •๋ณด์ด๊ณ , ๋ฐ์ดํ„ฐ๋Š” ๋ช…๋ น์–ด๋ฅผ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ์ผ์ข…์˜ ์žฌ๋ฃŒ์ž…๋‹ˆ๋‹ค.โ€

  • ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์€ โ€˜๋ช…๋ น์–ด๋“ค์˜ ๋ชจ์Œโ€™์œผ๋กœ ์ •์˜๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ ๋ช…๋ น์–ด๋Š” ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐ ์žˆ์–ด ๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋” ์ค‘์š”ํ•œ ๊ฐœ๋….

์ปดํ“จํ„ฐ์˜ 4๊ฐ€์ง€ ํ•ต์‹ฌ ๋ถ€ํ’ˆ.

  1. ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(Central Programming Unit, CPU)
    • ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ
    • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ด๊ณ , ์ฝ์–ด ๋“ค์ธ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ , ์‹คํ–‰ํ•˜๋Š” ๋ถ€ํ’ˆ์ž…๋‹ˆ๋‹ค.
    • CPU ๋‚ด๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์„ธ ๊ฐ€์ง€๋Š” ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(ALU: Arithmetic Logic Unit), ๋ ˆ์ง€์Šคํ„ฐ(register), ์ œ์–ด์žฅ์น˜(CU: Control Unit) ์ž…๋‹ˆ๋‹ค.
      • ALU: ๊ณ„์‚ฐ๊ธฐ, ๊ณ„์‚ฐ๋งŒ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๋ถ€ํ’ˆ, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ณ„์‚ฐ์€ ALU๊ฐ€ ๋„๋งก์•„ ์ˆ˜ํ–‰
      • ๋ ˆ์ง€์Šคํ„ฐ: CPU ๋‚ด๋ถ€์˜ ์ž‘์€ ์ž„์‹œ ์ €์žฅ ์žฅ์น˜, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ’๋“ค์„ ์ž„์‹œ๋กœ ์ €์žฅ, CPU ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ด๋ฆ„๊ณผ ์—ญํ• ์„ ๊ฐ€์ง
      • ์ œ์–ด์žฅ์น˜: ์ œ์–ด ์‹ ํ˜ธ(Control Signal)๋ผ๋Š” ์ „๊ธฐ ์‹ ํ˜ธ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๋Š” ์žฅ์น˜.
        • ์ œ์–ด ์‹ ํ˜ธ๋ž€ ์ปดํ“จํ„ฐ ๋ถ€ํ’ˆ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์ „๊ธฐ ์‹ ํ˜ธ
          • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ’์„ ์ฝ๊ณ  ์‹ถ์„ ๋• ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ–ฅํ•ด โ€œ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐโ€๋ผ๋Š” ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.
          • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ค ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋• ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ–ฅํ•ด โ€œ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐโ€๋ผ๋Š” ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.
  2. ์ฃผ๊ธฐ์–ต์žฅ์น˜(Main memory, ๋ฉ”๋ชจ๋ฆฌ)
    • ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ถ€ํ’ˆ.
    • ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ’์˜ ์œ„์น˜๋Š” ์ฃผ์†Œ๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(secondary storage)
    • ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํฌ๊ณ  ์ „์›์ด ๊บผ์ ธ๋„ ์ €์žฅ๋œ ๋‚ด์šฉ์„ ์žƒ์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณด์กฐํ•  ์ €์žฅ ์žฅ์น˜
    • ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋Š” โ€˜๋ณด๊ด€ํ• โ€™ ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ์ข‹๋‹ค.
  4. ์ž…์ถœ๋ ฅ์žฅ์น˜(input/output(I/O) device)
    • ๋งˆ์ดํฌ, ์Šคํ”ผ์ปค, ํ”„๋ฆฐํ„ฐ, ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ์ฒ˜๋Ÿผ ์ปดํ“จํ„ฐ ์™ธ๋ถ€์— ์—ฐ๊ฒฐ๋˜์–ด ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์™€ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์žฅ์น˜๋ฅผ ์˜๋ฏธ.
    • โ€˜์ปดํ“จํ„ฐ ์ฃผ๋ณ€์— ๋ถ™์–ด ์žˆ๋Š” ์žฅ์น˜โ€™๋ผ๋Š” ์˜๋ฏธ์—์„œ โ€œ์ฃผ๋ณ€์žฅ์น˜(peripheral device)โ€๋ผ ํ†ต์นญํ•˜๊ธฐ๋„ ํ•จ.

โ€œ์ฃผ์†Œโ€

  • ์ปดํ“จํ„ฐ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์† ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ˆ๋œ ์œ„์น˜์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ €์žฅ๋œ ๊ฐ’์— ๋น ๋ฅด๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์†Œ(address)๋ผ๋Š” ๊ฐœ๋…์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ฃผ์†Œ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์›ํ•˜๋Š” ์œ„์น˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ธ๋ณด๋“œ์™€ ์‹œ์Šคํ…œ ๋ฒ„์Šค

  1. ๋ฉ”์ธ๋ณด๋“œ
    • ๋งˆ๋”๋ณด๋“œ(mother board)๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
    • ๋ฉ”์ธ๋ณด๋“œ์—๋Š” ์•ž์—์„œ ์†Œ๊ฐœํ•œ ๋ถ€ํ’ˆ์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ ๋ถ€ํ’ˆ์„ ๋ถ€์ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šฌ๋ก๊ณผ ์—ฐ๊ฒฐ ๋‹จ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฉ”์ธ ๋ณด๋“œ์— ์—ฐ๋ ฅ๋œ ๋ถ€ํ’ˆ๋“ค์€ ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์ธ๋ณด๋“œ ๋‚ด๋ถ€์— โ€œ๋ฒ„์Šค(bus)โ€๋ผ๋Š” ํ†ต๋กœ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  2. ์‹œ์Šคํ…œ ๋ฒ„์Šค(system bus)
    • ์—ฌ๋Ÿฌ ๋ฒ„์Šค ๊ฐ€์šด๋ฐ ์ปดํ“จํ„ฐ์˜ ๋„ค ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ถ€ํ’ˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฒ„์Šค์ž…๋‹ˆ๋‹ค.
    • ์ฃผ์†Œ ๋ฒ„์Šค, ๋ฐ์ดํ„ฐ ๋ฒ„์Šค, ์ œ์–ด ๋ฒ„์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ฃผ์†Œ ๋ฒ„์Šค(address bus): ์ฃผ์†Œ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ†ต๋กœ
      • ๋ฐ์ดํ„ฐ ๋ฒ„์Šค(data bus): ๋ช…๋ น์–ด๋กธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ํ†ต๋กœ
      • ์ œ์–ด ๋ฒ„์Šค(control bus): ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ํ†ต๋กœ

ํ‚ค์›Œ๋“œ๋กœ ์ •๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํฌ์ธํŠธ

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

Q1. โ€œ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ, iOS ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋‚˜์š”?โ€

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋‚˜ ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฐ”์ดํŠธ ๋˜๋Š” ์›Œ๋“œ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ ์œ ํ•œ ์ฃผ์†Œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด CPU์™€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํžˆ ์ฐพ์•„ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

Q2. โ€œ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ, Java ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋‚˜์š”?โ€

โ€œ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ํŠน์ • ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ์ด ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋‚˜ ๋ช…๋ น์–ด๋ฅผ ์ •ํ™•ํžˆ ์ฐพ์•„๋‚ด์–ด ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ โ€˜์šฐํŽธ ์ฃผ์†Œโ€™์™€ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

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

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