Skip to content

Latest commit

ย 

History

History
46 lines (36 loc) ยท 3.11 KB

Chapter13.md

File metadata and controls

46 lines (36 loc) ยท 3.11 KB

Chapter 13 ๋™์‹œ์„ฑ

  1. ๋™์‹œ์„ฑ์ด ํ•„์š”ํ•œ ์ด์œ ?
  • ๋™์‹œ์„ฑ์€ ๋ฌด์—‡๊ณผ ์–ธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ „๋žต์ด๋‹ค. ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์€ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ, ์‘๋‹ต ์‹œ๊ฐ„ ๋“ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
  1. ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ๋ฏธ์‹ 
  • ๋™์‹œ์„ฑ์€ ํ•ญ์ƒ ์„ฑ๋Šฅ์„ ๋†’์—ฌ์ค€๋‹ค.
  • ๋™์‹œ์„ฑ์„ ๊ตฌํ˜„ํ•ด๋„ ์„ค๊ณ„๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์›น ๋˜๋Š” EJB ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋™์‹œ์„ฑ์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  1. ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ํƒ€๋‹นํ•œ ์ƒ๊ฐ
  • ๋™์‹œ์„ฑ์€ ๋‹ค์†Œ ๋ถ€ํ•˜๋ฅผ ์œ ๋ฐœํ•œ๋‹ค.
  • ๋™์‹œ์„ฑ์€ ๋ณต์žกํ•˜๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์‹œ์„ฑ ๋ฒ„๊ทธ๋Š” ์žฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ๋™์‹œ์„ฑ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ํ”ํžˆ ๊ทผ๋ณธ์ ์ธ ์„ค๊ณ„์ „๋žต์„ ์žฌ๊ณ ํ•ด์•ผ ํ•œ๋‹ค.
  1. ๋™์‹œ์„ฑ ๋ฐฉ์–ด ์›์น™
  • ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ => ๋™์‹œ์„ฑ ์ฝ”๋“œ๋Š” ๊ทธ ํ•˜๋‚˜๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์–ด๋ ต๋‹ค. ๋‹ค๋ฅธ ์ฝ”๋“œ์™€ ๋ถ„๋ฆฌํ•˜๋ผ.
  • ๋”ฐ๋ฆ„ ์ •๋ฆฌ => ์ž๋ฃŒ๋ฅผ ์บก์Šํ™”ํ•˜๋ผ. ๊ณต์œ  ์ž๋ฃŒ๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์—ฌ๋ผ.
  • ๋”ฐ๋ฆ„ ์ •๋ฆฌ => ์ž๋ฃŒ ์‚ฌ๋ณธ์„ ์‚ฌ์šฉํ•˜๋ผ(?)
  • ๋”ฐ๋ฆ„ ์ •๋ฆฌ => ๋…์ž์ ์ธ ์Šค๋ ˆ๋“œ๋กœ, ๊ฐ€๋Šฅํ•˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์—์„œ, ๋Œ๋ ค๋„ ๊ดœ์ฐฎ๋„๋ก ์ž๋ฃŒ๋ฅผ ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜๋ผ.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋ผ => ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฒ€ํ† ํ•˜๋ผ. ์ž๋ฐ”์—์„œ๋Š” java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks๋ฅผ ์ตํ˜€๋ผ.
  1. ์‹คํ–‰ ๋ชจ๋ธ์„ ์ดํ•ดํ•˜๋ผ
  • ์ƒ์‚ฐ์ž-์†Œ๋น„์ž => ์ƒ์‚ฐ์ž, ์†Œ๋น„์ž๊ฐ€ ์„œ๋กœ์—๊ฒŒ ์‹œ๊ทธ๋„์„ ์ž˜ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ์‹ ๊ฒฝ์“ด๋‹ค.
  • ์ฝ๊ธฐ-์“ฐ๊ธฐ => ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ, ์ฒ˜๋ฆฌ์œจ๊ณผ ๊ธฐ์•„ ์‚ฌ์ด์˜ ์ ์ ˆํ•œ ๊ท ํ˜•์žก๊ธฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  1. ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ์˜์กด์„ฑ์„ ์ดํ•ดํ•˜๋ผ
  • ๊ณต์œ  ๊ฐ์ฒด ํ•˜๋‚˜์—๋Š” ๋ฉ”์„œ๋“œ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋ผ.
  1. ๋™๊ธฐํ™” ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ
  • synchronized ๋ฌธ์„ ๋‚จ๋ฐœํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ฐ”๋žŒ์ง ํ•˜์ง€ ์•Š์ง€๋งŒ ์ž„๊ณ„์˜์—ญ์€ ๋ฐ˜๋“œ์‹œ ๋ณดํ˜ธํ•˜์ž.
  1. ์˜ฌ๋ฐ”๋ฅธ ์ข…๋ฃŒ ์ฝ”๋“œ๋Š” ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ๊ณ ๋ฏผํ•˜๊ณ  ๋™์ž‘ํ•˜๊ฒŒ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•˜๋ผ. ์ƒ๊ฐ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์šฐ๋ฏ€๋กœ ์ด๋ฏธ ๋‚˜์˜จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฒ€ํ† ํ•˜๋ผ.
  1. ์Šค๋ ˆ๋“œ ์ฝ”๋“œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ
  • ๋ฌธ์ œ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ. ํ”„๋กœ๊ทธ๋žจ ์„ค์ •๊ณผ ์‹œ์Šคํ…œ ์„ค์ •๊ณผ ๋ถ€ํ•˜๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ์ž์ฃผ ๋Œ๋ ค๋ผ. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์›์ธ์„ ์ถ”์ ํ•˜๋ผ. ๋‹ค์‹œ ๋Œ๋ ธ๋”๋‹ˆ ํ†ต๊ณผํ•˜๋”๋ผ๋Š” ์ด์œ ๋กœ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๋ฉด ์ ˆ๋Œ€๋กœ ์•ˆ๋œ๋‹ค.
  • ์‹œ์Šคํ…œ ์‹คํŒจ๋ฅผ โ€˜์ผํšŒ์„ฑโ€™์ด๋ผ ์น˜๋ถ€ํ•˜์ง€ ๋งˆ๋ผ.
  • ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ ๋ฐ–์—์„œ ์ƒ๊ธฐ๋Š” ๋ฒ„๊ทธ์™€ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์ƒ๊ธฐ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋™์‹œ์— ๋””๋ฒ„๊น…ํ•˜์ง€ ๋งˆ๋ผ. ๋จผ์ € ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ ๋ฐ–์—์„œ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฐ”๋กœ ๋Œ๋ ค๋ผ.
  • ๋‹ค์–‘ํ•œ ์„ค์ •์—์„œ ์‹คํ–‰ํ•  ๋ชฉ์ ์œผ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์— ์‰ฝ๊ฒŒ ๋ผ์›Œ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ.
  • ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๋ฆฌ๊ณ  ์ž์ฃผ ๋ชจ๋“  ๋ชฉํ‘œ ํ”Œ๋žซํผ์—์„œ ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๋ผ.
  • ๋ณด์กฐ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” โ€˜์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ธฐโ€™ , โ€˜์ž๋™ํ™”โ€™ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋ฅผ ํ”๋“ค์–ด ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ด๋ผ.
  1. ๊ฒฐ๋ก 
  • ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์ฝ”๋“œ๋Š” ๊ฐ๋ณ„ํžˆ ๊นจ๋—ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํ•œ๋‹ค.