Back to : cs-adventure
Contents

Subgraph Isomorphism ๋ฌธ์ œ ์†Œ๊ฐœ

Subgraph Isomorphism์ด๋ž€, ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„ $q$์™€ ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„ $G$๊ฐ€ ์ฃผ์–ด์ง€๋Š” ์ƒํ™ฉ์—์„œ, $G$๊ฐ€ $q$์™€ isomorphicํ•œ subgraph๋ฅผ ๊ฐ–๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” NP-Complete์ž„์ด ์ฆ๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. NP-Complete๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ๋…ผ์˜์— ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์ง€๋งŒ, ์ž ๊น ์ƒ๊ฐํ•ด ๋ณด๋ฉด, Clique Problem (Subgraph Isomorphism์—์„œ, $q$๊ฐ€ ์ •์  $n$๊ฐœ์งœ๋ฆฌ ์™„์ „๊ทธ๋ž˜ํ”„ $K_n$์œผ๋กœ ํ•œ์ •๋˜๋Š” ๋ฒ„์ „) ๋ณด๋‹ค๋Š” ์ ์–ด๋„ ์–ด๋ ค์šด ๋ฌธ์ œ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Clique ๋ฌธ์ œ๋Š” Karp๊ฐ€ NP-Complete๋ผ๋Š” ๊ฐœ๋…์„ ์ •์˜ํ•˜๊ณ  ์ฆ๋ช…ํ–ˆ์„ ๋•Œ ๋‚˜์˜จ 21๊ฐœ์˜ ์˜ค๋ฆฌ์ง€๋„ํ•œ NP-Complete ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ, General SAT๋กœ๋ถ€ํ„ฐ ํ™˜์›๋˜๋ฏ€๋กœ NP-Complete์ž…๋‹ˆ๋‹ค.1

์šฐ๋ฆฌ๋Š” Subgraph์— ๊ด€ํ•œ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋ฉด์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด Embedding์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
Vertex Labeled graph $G, q$๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•จ์ˆ˜ $f : V_q \to V_G$๊ฐ€ ์กด์žฌํ•˜์—ฌ, $q$์—์„œ edge $(u_1, u_2)$์— ๋Œ€ํ•ด ํ•ญ์ƒ $G$์—์„œ edge $(v_1 = f(u_1), v_2 = f(u_2))$ ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๋•Œ, ์ด๋ฅผ Embedding ์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, Labeled graph์ด๋ฏ€๋กœ $q$์—์„œ $u$์˜ label๊ณผ $G$์—์„œ $f(u)$์˜ label์ด ํ•ญ์ƒ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ํŽธ์˜์ƒ $u_1 \dots u_n$์€ $q$์˜, $v_1 \dots v_n$์€ $G$์˜ vertex๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์“ฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•˜์ง€๋งŒ ์ข€๋” Application ์Šค๋Ÿฌ์šด ๋ฌธ์ œ ๋‘ ๊ฐœ์ธ Subgraph search์™€ matching์€, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

  • Subgraph Search๋ž€, ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„๊ฐ€ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ $G_1, G_2, \dots G_n$์˜ ์ง‘ํ•ฉ์ด ์ฃผ์–ด์ง€๊ณ , $q$์˜ embedding์„ ๊ฐ–๋Š” ๊ทธ๋ž˜ํ”„๋“ค์„ ๋ชจ๋‘ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
  • Subgraph Matching์ด๋ž€, ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„๊ฐ€ ํ•˜๋‚˜ ์ฃผ์–ด์ง€๊ณ , ์ฟผ๋ฆฌ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ ธ์„œ, ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์—์„œ $q$์˜ embedding์„ ๋ชจ๋‘ (๋˜๋Š” ์ข€๋” ํ˜„์‹ค์ ์œผ๋กœ, ๊ฐ€๋Šฅํ•œํ•œ ๋งŽ์ด) ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ฆ‰, subgraph matching์„ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๊ฒŒ embedding์„ ํ•˜๋‚˜ ์ฐพ๊ณ  return true ํ•˜๋„๋ก ํ•˜๋ฉด, subgraph isomorphism์ด ๋˜๊ณ , ๋‹ค์‹œ ์ด๊ฒƒ์„ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜๋ฉด subgraph search๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š”, ์„ธ ๋ฌธ์ œ ๋ชจ๋‘๋ฅผ ๋Œ€์ถฉ Subgraph Isomorphism์ด๋ผ๊ณ  ํ‰์น˜๊ณ  ๋งฅ๋ฝ์ƒ ์ดํ•ดํ•˜๊ธฐ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Subgraph Isomorphism Algorithms

์ด๋Ÿฐ ์–ด๋ ค์šด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์—๋Š” ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ์˜ ์ œ์•ฝ ์žˆ๋Š” ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด์„œ, ๊ทธ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ’€๊ณ ์ž ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ์œผ๋กœ๋Š” Chromatic Number๊ฐ€ $k$ ์ดํ•˜์ธ ๊ทธ๋ž˜ํ”„, ํ‰๋ฉด ๊ทธ๋ž˜ํ”„, Sparseํ•œ ๊ทธ๋ž˜ํ”„ ๋“ฑ์— ๋Œ€ํ•ด ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉํ–ฅ์˜ ์—ฐ๊ตฌ๋Š” ์ฃผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹คํ•ญ ์‹œ๊ฐ„ ๋น„์Šทํ•˜๊ฒŒ ์ค„์–ด๋“ค๋ฉฐ (NP-Completeํ•œ ๋ฌธ์ œ์˜ ์ผ๋ถ€๊ธด ํ•˜์ง€๋งŒ, ์ถ”๊ฐ€์ ์ธ ์กฐ๊ฑด์„ ์ œ์•ฝํ–ˆ์œผ๋ฏ€๋กœ ์ด๊ฒŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค) ์ˆ˜ํ•™์ ์œผ๋กœ ์—„๋ฐ€ํ•˜๊ฒŒ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • Randomized ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ตœ์ ํ™” ํ˜•ํƒœ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค์–ด์„œ, expected time complexity๋ฅผ ์ค„์ด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์ธ Case์— ๋Œ€ํ•ด, ํœด๋ฆฌ์Šคํ‹ฑํ•˜๊ฒŒ ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐพ๊ณ , ์ด๋ฅผ ํฐ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•ด ์‹คํ—˜์„ ํ†ตํ•ด ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2020๋…„ 2ํ•™๊ธฐ์— ์ธํ„ด์‹ญ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ฃผ๋กœ 3๋ฒˆ์— ํ•ด๋‹นํ•˜๋Š” ์ชฝ์„ ๊ณต๋ถ€ํ–ˆ๋Š”๋ฐ, Sub-iso์—์„œ 2๋ฒˆ์€ ์–ด๋–ค ์‹์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๊ณ  (๋ณธ์  ์—†์Šต๋‹ˆ๋‹ค) 1๋ฒˆ์€ ์—ฌ๋Ÿฌ ์žฌ๋ฏธ์žˆ๋Š” ๊ฒฐ๊ณผ๋“ค์ด ์žˆ์ง€๋งŒ ์•„์ง ์ž์„ธํžˆ ์ฝ์–ด๋ณด์ง€๋Š” ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ 3๋ฒˆ ์ ‘๊ทผ์—๋Š” ๋‹ค์‹œ ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€ ์ ‘๊ทผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Ullmann (1976) ์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” Backtracking ๊ธฐ๋ฐ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค.
  • Artificial Intelligence ์ชฝ์—์„œ๋„ ์ด ๋ฌธ์ œ๋ฅผ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•˜๊ฒŒ ๋ณด๊ณ  ์žˆ์–ด์„œ, ์ด์ชฝ์˜ ์ ‘๊ทผ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Graph ์œ„์—์„œ ๋ญ”๊ฐ€๋ฅผ ์—ด์‹ฌํžˆ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • Contraint Programming ์ด๋ผ๋Š” ์‹ ๊ธฐํ•œ ๋ฐฉ๋ฒ•๋ก ์— ๊ธฐ๋ฐ˜ํ•˜๋Š” ์ ‘๊ทผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด์ชฝ์„ ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ, ์ด๋ก ์ ์œผ๋กœ ์ƒ๋‹นํžˆ ์žฌ๋ฐŒ๋Š” ๋‚ด์šฉ๋“ค์ด ๋งŽ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

2๋ฒˆ์€ ์ฃผ๋กœ Graph mining ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ์•ฝ๊ฐ„ ๋ฐฉํ–ฅ์„ฑ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, 1๋ฒˆ๊ณผ 3๋ฒˆ์„ ์‹ค์งˆ์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ ์ธ ์ ‘๊ทผ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3๋ฒˆ์˜ ํ˜„์žฌ SOTA๋Š” Glasgow๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๊ณ , 1๋ฒˆ์˜ ๊ฒฝ์šฐ CFL-Match๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ์ ์œผ๋กœ CECI, DAF ๋“ฑ์ด ์—ฐ๊ตฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Backtracking Algorithms

CFL-Match, CECI, DAF๋ฅผ ๋น„๋กฏํ•˜์—ฌ ๋งŽ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์ด ํฌ๊ฒŒ 3๋‹จ๊ณ„๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Filtering - Matching order generation - Backtracking์ธ๋ฐ, ๊ฐ๊ฐ์ด ์–ด๋–ค ๋А๋‚Œ์ธ์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Filtering

Filtering์ด๋ž€, ๋„์ €ํžˆ ๋งค์นญ์ด ์•ˆ๋˜๋Š” ์ ๋“ค์„ ๋จผ์ € ์ณ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋•Œ Candidate Vertex Set์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•˜๋Š”๋ฐ, $q$์˜ ์ •์  $u$์— ๋Œ€ํ•ด $u$๊ฐ€ ๋งคํ•‘๋  ์ˆ˜ ์žˆ๋Š” $G$์˜ vertex๋“ค์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Label์ด ๋‹ค๋ฅธ ์ •์ ์€ ์•„์˜ˆ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ์˜ˆ์‹œ๋กœ๋Š”, $q$์—์„œ 1๋ฒˆ ์ •์ ์œผ๋กœ๋ถ€ํ„ฐ label์ด $a$์ธ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๊ฐ„์„ ์ด ์žˆ๋Š” ์ƒํ™ฉ์„ ์ƒ๊ฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $G$์˜ ์ •์  10๋ฒˆ์— ๋Œ€ํ•ด, 10๋ฒˆ ์ •์ ์˜ neighbor๋“ค ์ค‘ label์ด $a$์ธ ์ •์ ์ด ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด, $u_1$ ์„ $v_{10}$์œผ๋กœ ๋งค์นญํ•˜๋Š” ๋งคํ•‘์€ ์กด์žฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์ ๋“ค์„ ์ตœ๋Œ€ํ•œ ๊ฐ•ํ•˜๊ฒŒ ํ•„ํ„ฐ๋งํ•ด์„œ ์ œ๊ฑฐํ•˜๋ฉด, ๋ฐฑํŠธ๋ž˜ํ‚นํ•  ๋Œ€์ƒ์ด ์ค„์–ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ Candidate vertex set์€ $u_i$๊ฐ€ ๋งคํ•‘๋  ์ˆ˜ ์žˆ๋Š” $v_j$ ๋“ค์˜ ์ง‘ํ•ฉ $C_i$๋ฅผ ๋งํ•˜๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ์„œ๋Š” ์ด ๊ณผ์ •์„ ์ข€๋” ์ž˜ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ด๋ฆ„์ด ๋‹ฌ๋ผ์ง€๊ธฐ๋„ ํ•˜์ง€๋งŒ ๋Œ€๋žต์ ์œผ๋กœ๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

Matching Order

๋ฌธ์ œ์˜ ํŠน์ง• ์ƒ, ์–ด๋–ค ์ˆœ์„œ๋กœ ์ •์ ๋“ค์„ matchingํ•ด ๋‚˜๊ฐ€๋Š”์ง€๋Š” search space๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ์†๋„๋ฅผ ์ขŒ์šฐํ•˜๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. Backtracking์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด matching order๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ดํ›„ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆœ์„œ (์ •์˜์ƒ $q_V$์˜ permutation) ๋ฅผ matching order๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งˆ๋‹ค ๋‹ค๋ฅธ matching order๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Backtracking

๋ฐฑํŠธ๋ž˜ํ‚น์€ ๋‹จ์ˆœํžˆ ํ•˜๋ฉด ๋˜์ง€๋งŒ, ์ด ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์œ„ํ•ด์„œ๋Š” extendableํ•œ candidate๋ฅผ ์žก์•„์•ผ ํ•˜๋Š”๋ฐโ€ฆ

  1. ํ˜„์žฌ์˜ partial embedding $M$์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ ์ ๋“ค์€ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ 
  2. ์ง€๊ธˆ ๋‚ด๊ฐ€ $u$๋ฅผ ๋ณด๊ณ  ์žˆ๋‹ค๋ฉด, $u$์˜ neighbor๋“ค ์ค‘ $M$์—์„œ ์ด๋ฏธ ๋งคํ•‘๋œ ์ •์ ๋“ค์— ๋Œ€ํ•ด, ๊ทธ ์ •์ ๋“ค ๋ชจ๋‘์™€ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, $u_3$์ด $u_1$, $u_2$ ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ , $u_1, u_2$๋ฅผ ๊ฐ๊ฐ $v_a, v_b$์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด, $u_3$์€ ์ ์–ด๋„ $v_a, v_b$์™€ ์—ฐ๊ฒฐ๋œ ์ ๋“ค ์ค‘์— ๊ณจ๋ผ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋‘๊ฐ€์ง€๊ฐ€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ถ”๊ฐ€๋กœ DAF์˜ ๊ฒฝ์šฐ Failing set๊ณผ ๊ฐ™์€ ์ตœ์ ํ™” ๊ธฐ๋ฒ•๋“ค์„ ์ œ์‹œํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

References / Papers

  • Sun, S., & Luo, Q. (2020). In-Memory Subgraph Matching: An In-depth Study. Proceedings of the ACM SIGMOD International Conference on Management of Data, 1083โ€“1098. https://doi.org/10.1145/3318464.3380581 : Subgraph Isomorphism ๋ฐฉ๋ฒ•๋“ค์„ ๋น„๊ตํ•˜๊ณ , ์ด๋“ค์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์—ฌ ํ†ต์ผ๋œ ํ”„๋ ˆ์ž„์›Œํฌ ์œ„์—์„œ ์‹คํ—˜ํ•œ ๋…ผ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ๊ฑฐ์˜ ์ด ๋…ผ๋ฌธ์— ๊ธฐ๋ฐ˜ํ•œ ์ •๋ฆฌ ํฌ์ŠคํŒ…์ธ๋ฐ, ๋…ผ๋ฌธ์˜ ๋ฉ”์ธ์ธ ์‹คํ—˜ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ๋ถ„๋ฅ˜ํ•ด๋†“์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  1. ์ด๋ถ€๋ถ„์˜ ์ฆ๋ช…์€ ์ด ๊ธ€์˜ Scope๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค.ย โ†ฉ