Xtring's Blog

๐Ÿค˜๐Ÿป Welcome to my Tech Blog

์ปคํ”Œ๋ง๊ณผ ์ปค๋„ค์ด์„ ์Šค

2022-01-03

์•„ํ‚คํ…ํŠธ๋Š” ์šด์˜ ์•„ํ‚คํ…์ฒ˜ ํŠน์„ฑ์„ ๋”ฐ์ ธ๋ณด๊ณ  ์•„ํ‚คํ…์ฒ˜ ํŠน์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค ์™ธ๋ถ€์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž˜ ์‚ดํŽด์•ผ ํ•œ๋‹ค. -> ์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์ด๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์ •์˜๋จ

์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์ปค๋„ค์ด์„ ์Šค๋ผ๋Š” ํ•ต์‹ฌ ๋ฉ”ํŠธ๋ฆญ์„ ์ดํ•ดํ•ด์•ผํ•จ

7.1 ์ปคํ”Œ๋ง๊ณผ ์ปค๋„ค์ด์„ ์Šค

์ปค๋„ค์ด์„ ์Šค

๋‘ ์ปดํฌ๋„ŒํŠธ ์ค‘ ํ•œ์ชฝ์ด ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ชฝ๋„ ๋ณ€๊ฒฝํ•ด์•ผ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์ •ํ•ฉ์„ฑ์ด ๋งž๋Š”๋‹ค๋ฉด ์ด๋“ค์€ ์ปค๋„ค์ด์„ ์Šค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ปค๋„ค์ด์„ ์Šค๋ฅผ

  • ์ •์  ์ปค๋„ค์ด์„ ์Šค
  • ๋™์  ์ปค๋„ค์ด์„ ์Šค ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์„ ์ •์˜ํ•˜๋ ค๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด(wired)์žˆ๋Š”์ง€ ์ธก์ •ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

์ •์  ์ปค๋„ค์ด์„ ์Šค

  • ์ •์  ์ฝ”๋“œ ๋ถ„์„์œผ๋กœ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Œ

๋™์  ์ปค๋„ค์ด์„ ์Šค

  • ๋Ÿฐํƒ€์ž„ ๋™์ž‘์— ๊ด€๋ จ
  • ๋™๊ธฐ, ๋น„๋™๊ธฐ ๋‘ ์ข…๋ฅ˜
    • ๋™๊ธฐ: ๋ถ„์‚ฐ ์„œ๋น„์Šค๋ผ๋ฆฌ ํ˜ธ์ถœ ์‹œ ํ˜ธ์ถœ๋ถ€(caller)๋Š” ํ”ผํ˜ธ์ถœ๋ถ€(callee)์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ ค์•ผํ•œ๋‹ค.
    • ๋น„๋™๊ธฐ: ํŒŒ์ด์–ด ์•ค๋“œ ํฌ๊ฒŸ(fire-and-forget) ๋ฐฉ์‹์ด๋ฏ€๋กœ ์šด์˜ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋‘ ์„œ๋น„์Šค๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

7.2 ์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€๊ณผ ์„ธ๋ถ„๋„

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„œ๋กœ ์—ฎ๋Š” ๊ฒƒ์€ ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์˜ ์ปคํ”Œ๋ง๋งŒ์ด ์•„๋‹ˆ๋‹ค. ๋งŽ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐœ๋…์ด ์˜๋ฏธ์ƒ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ ํŒŒํŠธ๋ฅผ ํ•œ๋ฐ ์—ฎ์–ด ๊ธฐ๋Šฅ์ ์œผ๋กœ ์‘์ง‘๋˜์–ด(functional cohesion)์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์ œ๊ฐ€ ๋  ๋งŒํ•œ ์ปคํ”Œ๋ง ์ง€์ ์„ ๋ชจ๋‘ ์‚ดํŽด์•ผ ํ•œ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€

๋†’์€ ๊ธฐ๋Šฅ ์‘์ง‘๋„(high functional cohesion)์™€ ๋™๊ธฐ์  ์ปค๋„ค์ด์„ ์Šค(synchronous connascence)๋ฅผ ๊ฐ€์ง„, ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ(independently deployable) ์•„ํ‹ฐํŒฉํŠธ

๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ

  • ์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์€ ์•„ํ‚คํ…์ฒ˜์˜ ๋‹ค๋ฅธ ํŒŒํŠธ์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™๋˜๋Š” ๋ชจ๋“  ํ•„์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จํ•œ๋‹ค.

๋†’์€ ๊ธฐ๋Šฅ ์‘์ง‘๋„

  • ์‘์ง‘๋„๋Š” ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„์— ๋”ฐ๋ผ ๊ตฌํ˜„๋œ ์ฝ”๋“œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ๊ธฐ๋Šฅ ์‘์ง‘๋„๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์€ ์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์ด ๋ชฉ์ ์— ๋งž๋Š” ๋ญ”๊ฐ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป

๋™๊ธฐ์  ์ปค๋„ค์ด์„ ์Šค

  • ๋™๊ธฐ์  ์ปค๋„ค์ด์„ ์Šค๋Š” ์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€์„ ํ˜•์„ฑํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ˜ํ…์ŠคํŠธ ๋‚ด๋ถ€ ๋˜๋Š” ๋ถ„์‚ฐ ์„œ๋น„์Šค ๊ฐ„์˜ ๋™๊ธฐ ํ˜ธ์ถœ์„ ์˜๋ฏธ

๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„์˜ ๊ฒฝ๊ณ„ ์ฝ˜ํ…์ŠคํŠธ ๊ฐ ์—”ํ‹ฐํ‹ฐ๋Š” ๋กœ์ปฌ ์ฝ˜ํ…์ŠคํŠธ ๋‚ด๋ถ€์—์„œ ๊ฐ€์žฅ ์ž˜ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์กฐ์ง ์ „์ฒด๊ฐ€ ํ•จ๊ป˜ ์“ฐ๋Š” ํ†ตํ•ฉ Customer ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋Œ€์‹ , ๊ฐ ๋ฌธ์ œ ๋„๋ฉ”์ธ์— ์ž์ฒด ํด๋ž˜์Šค๋ฅผ ๋‘๊ณ  ์ฐจ์ด์ ์€ ๊ทธ๊ฒƒ์„ ํ†ตํ•ฉํ•˜๋Š” ์ง€์ ์—์„œ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฒฝ๊ณ„ ์ฝ˜ํ…์ŠคํŠธ์˜ ๊ฐœ๋…์ด๋‹ค.

์•„ํ‚คํ…์ฒ˜ ํ€€ํ…€ ๊ฐœ๋…์€ ์•„ํ‚คํ…์ฒ˜ ํŠน์„ฑ์˜ ์ƒˆ๋กœ์šด ๋ฒ”์œ„๋ฅผ ์ œ์‹œํ•œ๋‹ค. ์ค‘์š”ํ•œ ์šด์˜ ๊ด€์‹ฌ์‚ฌ์— ๋Œ€ํ•ด ๋ฒ”์œ„๋ฅผ ์ขํ˜€๋ณด๋ฉด ์ค‘์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜์—ฌ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.