Skip to content

Commit 5cf2a4b

Browse files
committed
[Blog] Minor edits for readability
1 parent 901b0a7 commit 5cf2a4b

1 file changed

Lines changed: 20 additions & 9 deletions

File tree

โ€Ž_posts/2025-06-29-geon-trip-pldi.mdโ€Ž

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,19 @@ Lean์€ ๋‰ด๋กœ์‹ฌ๋ณผ๋ฆญ AI ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ๋„๊ตฌ๋กœ๋„ ํ™œ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
4949
# ์šฐ๋ฆฌ ์—ฐ๊ตฌ์˜ ์ตœ์ „์„ : ์ •์  ๋ถ„์„(Static Analysis) ๋ถ„์•ผ ํƒ๊ตฌ
5050
์ •์  ๋ถ„์„์˜ ์ด๋ก ๊ณผ ์‘์šฉ์˜ ๋Œ€๊ฐ€๋“ค์ด ํ•œ์ž๋ฆฌ์— ๋ชจ์ธ SOAP (State Of the Art in Program Analysis) ์›Œํฌ์ƒต์— ๊ฐ„ ๊ฑด ํฐ ํ–‰์šด์ด์—ˆ๋‹ค. ๊ฐœ์ค‘ ์ธ๊ณต์‹ ๊ฒฝ๋ง์˜ ์•ˆ์ „์„ฑ์„ ๋”ฐ์ง€๊ธฐ ์œ„ํ•œ ์ •์  ๋ถ„์„ (?)๊ณผ, ์‹ค์šฉ์  ์ •์  ๋ถ„์„์„ ์œ„ํ•œ ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์ด ํŠนํžˆ ์ธ์ƒ์ ์ด์—ˆ๋‹ค.
5151
## Static Analysis from Code Graphs to Neural Networks - Experiences and Opportunities<sup>[3](#static)</sup>
52-
์‹ ๊ฒฝ๋ง์ด ์ž‘์€ ์ž…๋ ฅ ๋ณ€ํ™” (perturbation)์—๋„ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ์ทจ์•ฝ์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜ํ•™์  ๊ฒ€์ฆ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ–ˆ๋‹ค. ํ•ต์‹ฌ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ $$x$$์— ๋Œ€ํ•ด, ๊ทธ ๊ทผ๋ฐฉ $$||x'-x||\le \epsilon$$์˜ ๋ชจ๋“  ์ž…๋ ฅ $$x'$$์—์„œ๋„ ์ถœ๋ ฅ ๋ ˆ์ด๋ธ”์ด ํ•ญ์ƒ ๊ฐ™์Œ์„ ๋ณด์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ „์ฒด ์ž…๋ ฅ ๊ณต๊ฐ„์„ ์ž˜๊ฒŒ ๋‚˜๋ˆ„๋Š” branch-and-bound ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ์ž…๋ ฅ ๊ณต๊ฐ„์„ ๋‚˜๋ˆˆ (branch) ๋’ค, ๊ฐ ๋ถ€๋ถ„๊ณต๊ฐ„์˜ ์ถœ๋ ฅ ๋ฒ”์œ„๋ฅผ ๊ทผ์‚ฌ์น˜๋กœ ๊ณ„์‚ฐ (bound)ํ•ด, ์ด ๋ฒ”์œ„๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ๋ผ๋ฒจ์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ํ•ด๋‹น ์˜์—ญ์€ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํŒ์ •ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ก€๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ๋” ์„ธ๋ถ„ํ™”ํ•ด ๋” ์ •๋ฐ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ตœ๊ทผ ๋ฐœํ‘œ์—์„œ๋Š” ์ด๋•Œ ๋ฐ˜๋ก€๊ฐ€ ์กด์žฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ๊ณต๊ฐ„์„ ํƒ์ƒ‰ํ•ด ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ์ „๋žต๋„ ์ œ์‹œ๋˜์—ˆ๋‹ค.
52+
์‹ ๊ฒฝ๋ง์ด ์ž‘์€ ์ž…๋ ฅ ๋ณ€ํ™” (perturbation)์—๋„ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ์ทจ์•ฝ์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜ํ•™์  ๊ฒ€์ฆ ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ–ˆ๋‹ค. ํ•ต์‹ฌ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ $$x$$์— ๋Œ€ํ•ด, ๊ทธ ๊ทผ๋ฐฉ $$||x'-x||\le \epsilon$$์˜ ๋ชจ๋“  ์ž…๋ ฅ $$x'$$์—์„œ๋„ ์ถœ๋ ฅ ๋ ˆ์ด๋ธ”์ด ํ•ญ์ƒ ๊ฐ™์Œ์„ ๋ณด์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
53+
54+
์—ฌ๊ธฐ์—๋Š” ์ „์ฒด ์ž…๋ ฅ ๊ณต๊ฐ„์„ ์ž˜๊ฒŒ ๋‚˜๋ˆ„๋Š” branch-and-bound ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ์ž…๋ ฅ ๊ณต๊ฐ„์„ ๋‚˜๋ˆˆ (branch) ๋’ค, ๊ฐ ๋ถ€๋ถ„๊ณต๊ฐ„์˜ ์ถœ๋ ฅ ๋ฒ”์œ„๋ฅผ ๊ทผ์‚ฌ์น˜๋กœ ๊ณ„์‚ฐ (bound)ํ•ด, ์ด ๋ฒ”์œ„๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ๋ผ๋ฒจ์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ํ•ด๋‹น ์˜์—ญ์€ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํŒ์ •ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ก€๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ๋” ์„ธ๋ถ„ํ™”ํ•ด ๋” ์ •๋ฐ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ตœ๊ทผ ๋ฐœํ‘œ์—์„œ๋Š” ์ด๋•Œ ๋ฐ˜๋ก€๊ฐ€ ์กด์žฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ๊ณต๊ฐ„์„ ํƒ์ƒ‰ํ•ด ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ์ „๋žต๋„ ์ œ์‹œ๋˜์—ˆ๋‹ค.
5355

5456
์ด๋ฏธ ์•Œ๋˜ ์ •์ ๋ถ„์„, ์ฆ‰ ์š”์•ฝ ํ•ด์„ (abstract interpretation)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ๊ฐˆ๋ฃจ์•„ ์—ฐ๊ฒฐ (Galois connection)์„ ์ด๋ก ์  ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ€์ง€๋˜ ์ •์ ๋ถ„์„์ด ์•„๋‹ˆ๋ผ์„œ ํฅ๋ฏธ๋ฅผ ๋Œ์—ˆ๋‹ค. ๋ฐ˜๋ก€์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ์ˆ ์€ ์‹ค์ˆ˜ ์ง‘ํ•ฉ ๋‚ด์—์„œ ์œ ๊ณ„ ์ˆ˜์—ด์€ ์ˆ˜๋ ดํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ฐ€์ง„๋‹ค๋Š” Bolzano-Weierstrass ์ •๋ฆฌ์˜ ์ฆ๋ช… ๊ณผ์ •๊ณผ ์œ ์‚ฌํ–ˆ๋‹ค.
5557
## Building X-Ray for enterprise-scale software<sup>[4](#xray)</sup>
5658
Beacon์„ ๊ฐœ๋ฐœํ•œ ํ™์ฝฉ๊ณผ๊ธฐ๋Œ€ Charles Zhang ๊ต์ˆ˜๋‹˜์˜ ๋ฐœํ‘œ๋Š”, ๋Œ€๊ทœ๋ชจ ๊ธฐ์—…์šฉ (์—”ํ„ฐํ”„๋ผ์ด์ฆˆ) ์†Œํ”„ํŠธ์›จ์–ด์— ์ •์  ๋ถ„์„์„ ์ ์šฉํ•˜๋ ค๋Š” ๋‹ค๋…„๊ฐ„์˜ ์—ฐ๊ตฌ ์„ฑ๊ณผ๋ฅผ ์ง‘์•ฝํ•œ ์„ธ์…˜์ด์—ˆ๋‹ค. ๊ต์ˆ˜๋‹˜์€ ์•ˆ์ „์„ฑ (soundness)์€ ํ˜„์‹ค ํ™˜๊ฒฝ์—์„  ์ง€๋‚˜์น˜๊ฒŒ ๋ณด์ˆ˜์ ์ด๊ณ , ์ •ํ™•๋„ (precision)๋Š” ๋†’์ด๊ธฐ ์–ด๋ ค์šด ์ƒํ™ฉ์—์„œ, ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ฒฝ๋กœ ๋ฏผ๊ฐ (path-sensitive) ๋ถ„์„์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•ด ์™”๋‹ค.
5759

5860
ํŠนํžˆ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๊ฐœ๋…์€ '๊ฒฝ๊ณ„ ๋ฌธ์ œ (boundary problem)'์˜€๋‹ค. ์ด๋Š” ์ •์  ๋ถ„์„์ด๋‚˜ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLM) ๋‹จ๋…์œผ๋กœ๋Š” ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šด, ๋ถˆ์™„์ „ํ•œ ์ฝ”๋“œ, ๊นŠ์€ ๋ฐ˜๋ณต๋ฌธ, ๋ถˆ๋ช…ํ™•ํ•œ API ์‚ฌ์šฉ ๋“ฑ์„ ๋งํ•œ๋‹ค. ๊ต์ˆ˜๋‹˜ ์—ฐ๊ตฌํŒ€์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ •์  ๋ถ„์„๊ณผ LLM์˜ ์—ญํ•  ๋ถ„๋‹ด์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ œ์–ด/๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ถ”์ ๊ณผ ๋„๋‹ฌ์„ฑ ๋ถ„์„์€ ์ •์  ๋ถ„์„์ด ๋งก๊ณ , API ๋ณ„๋ช… (alias) ๊ด€๊ณ„ ์ถ”๋ก ์ด๋‚˜ ์˜๋ฏธ ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜ ํ•ด์„์€ LLM์ด ๋‹ด๋‹นํ•˜๋Š” ์‹์ด๋‹ค.
5961

60-
์‚ฌ๋ก€๋กœ๋Š”, ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํด๋ž˜์Šค ๊ณ„์ธต, ๋ชจ๋“ˆํƒ€์ž… (signature), ์„ค๋ช…, ๊ฐ’ ์ด๋ฆ„ ๋“ฑ์„ ๋น„๊ตํ•ด API ๊ฐ„์˜ ๋ณ„๋ช… ๊ด€๊ณ„๋ฅผ ์ถ”๋ก ํ•˜๋Š” ์—ฐ๊ตฌ, ์ •์  ๋ถ„์„์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ (ISR) ํ•จ์ˆ˜๋ฅผ ์‹๋ณ„ํ•œ ๋’ค LLM์ด ๋ฐ๋“œ๋ฝ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒ€ํ† ํ•˜๋Š” ์—ฐ๊ตฌ, ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น/ํ•ด์ œ ํ•จ์ˆ˜๋ฅผ ๊ฐ์‹ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์Œˆ (wrapper) ํ•จ์ˆ˜๋ฅผ ์ฐพ๋Š” ๊ตฌ์กฐ๊ฐ€ ์†Œ๊ฐœ๋˜์—ˆ๋‹ค. ์ด ์ค‘ ๋งˆ์ง€๋ง‰์€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ํ†ตํ•œ ์ถ”๋ก ์„ LLM์ด, ๋„๋‹ฌ์„ฑ ๋ถ„์„ ๋“ฑ์„ ์ •์  ๋ถ„์„์ด ๋งก๋Š” ๋ฐฉ์‹์ด๋‹ค. ์šฐ๋ฆฌ ์—ฐ๊ตฌ์‹ค์—์„œ๋„ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์Œˆ ํ•จ์ˆ˜๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ์œ ์‚ฌํ•œ ์ฃผ์ œ๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ์—,
62+
์‚ฌ๋ก€๋กœ๋Š”, ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํด๋ž˜์Šค ๊ณ„์ธต, ๋ชจ๋“ˆํƒ€์ž… (signature), ์„ค๋ช…, ๊ฐ’ ์ด๋ฆ„ ๋“ฑ์„ ๋น„๊ตํ•ด API ๊ฐ„์˜ ๋ณ„๋ช… ๊ด€๊ณ„๋ฅผ ์ถ”๋ก ํ•˜๋Š” ์—ฐ๊ตฌ, ์ •์  ๋ถ„์„์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ (ISR) ํ•จ์ˆ˜๋ฅผ ์‹๋ณ„ํ•œ ๋’ค LLM์ด ๋ฐ๋“œ๋ฝ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒ€ํ† ํ•˜๋Š” ์—ฐ๊ตฌ, ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น/ํ•ด์ œ ํ•จ์ˆ˜๋ฅผ ๊ฐ์‹ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์Œˆ (wrapper) ํ•จ์ˆ˜๋ฅผ ์ฐพ๋Š” ๊ตฌ์กฐ๊ฐ€ ์†Œ๊ฐœ๋˜์—ˆ๋‹ค. ์ด ์ค‘ ๋งˆ์ง€๋ง‰์€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ํ†ตํ•œ ์ถ”๋ก ์„ LLM์ด, ๋„๋‹ฌ์„ฑ ๋ถ„์„ ๋“ฑ์„ ์ •์  ๋ถ„์„์ด ๋งก๋Š” ๋ฐฉ์‹์ด๋‹ค.
63+
64+
์šฐ๋ฆฌ ์—ฐ๊ตฌ์‹ค์—์„œ๋„ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์Œˆ ํ•จ์ˆ˜๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ์œ ์‚ฌํ•œ ์ฃผ์ œ๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ์—,
6165
์—ฐ์‚ฌ๋‹˜๊ป˜ ํ•ด๋‹น ์—ฐ๊ตฌ์˜ ์—ฐ๊ตฌ ๋ชฉ์ ์„ ์—ฌ์ญค๋ณด์•˜๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์Œˆ ํ•จ์ˆ˜๋ฅผ ์ฐพ๋Š” ์ด์œ ๋Š”, sanitizing ๊ณผ์ •์—์„œ ์ผ์–ด๋‚˜๋Š” ์‹ค์ˆ˜๋‚˜ double free ๊ฐ™์€ ๊ฒฐํ•จ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•จ์ด๋ผ๊ณ  ํ•œ๋‹ค.
6266
์šฐ๋ฆฌ ์—ฐ๊ตฌ์‹ค์˜ ์ ‘๊ทผ ๋ชฉ์ ๊ณผ๋Š” ๋‹ค๋ฅด์ง€๋งŒ, ์—ฐ๊ตฌ ์ž์ฒด๋Š” ์œ ์‚ฌํ•˜๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ์ง„ํ–‰ํ•˜๋Š” ๋…ผ์˜๊ฐ€ ์„ธ๊ณ„์ ์ธ ์ˆ˜์ค€๊ณผ ๋งž๋‹ฟ์•„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์‹ค๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
6367

@@ -72,7 +76,9 @@ KAT ์„ธ์…˜์ด ๋”ฐ๋กœ ์žˆ์„ ๋งŒํผ ์ด๋ฒˆ PLDI์—์„œ ์ฃผ๋ชฉ๋ฐ›์•˜์ง€๋งŒ, ์„ธ์…˜
7276

7377
์ด ์˜คํ† ๋งˆํƒ€์˜ ํ•ต์‹ฌ์€ ์ƒํƒœ๋ฅผ ๋‹จ์ˆœํ•œ ์ง‘ํ•ฉ์ด ์•„๋‹ˆ๋ผ ์ค‘๋ณต์ง‘ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ์˜คํ† ๋งˆํƒ€ ์œ„๋ฅผ ํƒํ—˜ํ•˜๋Š” ํ–‰์œ„์ž (agent)๋“ค์€ ํ™•๋ฅ  ์ƒํƒœ์—์„œ๋Š” ๋ฌด์ž‘์œ„๋กœ ๋‹ค์Œ ์ƒํƒœ๋ฅผ ์„ ํƒํ•˜๊ณ , ๋น„๊ฒฐ์ • ์ƒํƒœ์—์„œ๋Š” ์—ฌ๋Ÿฌ ํ–‰์œ„์ž๋กœ ๋ถ„๊ธฐํ•ด ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. ๋™์ผํ•œ ํ™•๋ฅ  ์ƒํƒœ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋„๋‹ฌํ•œ ์—ฌ๋Ÿฌ ํ–‰์œ„์ž๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋“ค์„ ์ง‘ํ•ฉ์˜ ํ•œ ์›์†Œ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๊ฐ๊ฐ์˜ ํ™•๋ฅ  ์„ ํƒ์ด ๋…๋ฆฝ์ ์ด์ง€ ์•Š๊ฒŒ ๋˜์–ด ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค. ์ค‘๋ณต์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ–‰์œ„์ž๋“ค์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์–ด, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋‚œ์ˆ˜ (random bit)๋ฅผ ๋ถ€์—ฌํ•ด ํ™•๋ฅ  ์„ ํƒ์˜ ๋…๋ฆฝ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
7478

75-
์ด๋ ‡๊ฒŒ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋‹ค ๋”ฐ์ ธ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด โ€˜์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก  (angelic nondeterminism)โ€™์ด๋‹ค. ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋‹ค ๋”ฐ์ ธ๋ณด๊ธฐ ๋•Œ๋ฌธ์— `if`, `while` ๊ฐ™์€ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค. ๋‹ค๋งŒ ๋ฐœํ‘œ์—์„œ ์•„์‰ฌ์› ๋˜ ์ ์€, ์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก ์„ ์ด์šฉํ•ด KAT์˜ ์ฃผ์š” ํ™œ์šฉ ๋ถ„์•ผ์ธ ์ตœ์ ํ™” ๊ฒ€์ฆ์ด๋‚˜ ํ”„๋กœ๊ทธ๋žจ ๋ถ„์„์ด ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ์ž˜ ์ƒ์ƒํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก ์„ ๊ฒ€์ƒ‰ํ•ด ๋ณด๋ฉด, ๋น„๊ฒฐ์ •๋ก ์ด ํ•ญ์ƒ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ์— ๋„๋‹ฌํ•˜๋„๋ก ๋ˆˆ์น˜๊ป ์ž‘๋™ํ•˜๋Š” ์‹คํ–‰์ด๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ, ๊ทธ๊ฒƒ๊ณผ ๋ฐœํ‘œ์˜ ์ •์˜๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€๋„ ๊ถ๊ธˆํ–ˆ๋‹ค. ๋ฐœํ‘œ์žฅ์—์„œ๋„ '์ฒœ์‚ฌ์  ์„ ํƒ'์ด ์œ„ํ—˜ํ•˜์ง€ ์•Š์€์ง€, ์–ด๋””์— ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์งˆ๋ฌธ์ด ๋‚˜์™”์ง€๋งŒ, ์•„์ง ํ™œ์šฉ ๋ถ„์•ผ๋ฅผ ๊ฐœ์ฒ™ํ•˜์ง„ ์•Š์•˜๊ณ  ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ค‘์ด๋ผ๋Š” ๋‹ต์ด ๋Œ์•„์™”๋‹ค.
79+
์ด๋ ‡๊ฒŒ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋‹ค ๋”ฐ์ ธ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด โ€˜์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก  (angelic nondeterminism)โ€™์ด๋‹ค. ๋ชจ๋“  ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋‹ค ๋”ฐ์ ธ๋ณด๊ธฐ ๋•Œ๋ฌธ์— `if`, `while` ๊ฐ™์€ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค.
80+
81+
๋‹ค๋งŒ ๋ฐœํ‘œ์—์„œ ์•„์‰ฌ์› ๋˜ ์ ์€, ์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก ์„ ์ด์šฉํ•ด KAT์˜ ์ฃผ์š” ํ™œ์šฉ ๋ถ„์•ผ์ธ ์ตœ์ ํ™” ๊ฒ€์ฆ์ด๋‚˜ ํ”„๋กœ๊ทธ๋žจ ๋ถ„์„์ด ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ์ž˜ ์ƒ์ƒํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์ฒœ์‚ฌ์  ๋น„๊ฒฐ์ •๋ก ์„ ๊ฒ€์ƒ‰ํ•ด ๋ณด๋ฉด, ๋น„๊ฒฐ์ •๋ก ์ด ํ•ญ์ƒ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ์— ๋„๋‹ฌํ•˜๋„๋ก ๋ˆˆ์น˜๊ป ์ž‘๋™ํ•˜๋Š” ์‹คํ–‰์ด๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ, ๊ทธ๊ฒƒ๊ณผ ๋ฐœํ‘œ์˜ ์ •์˜๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€๋„ ๊ถ๊ธˆํ–ˆ๋‹ค. ๋ฐœํ‘œ์žฅ์—์„œ๋„ '์ฒœ์‚ฌ์  ์„ ํƒ'์ด ์œ„ํ—˜ํ•˜์ง€ ์•Š์€์ง€, ์–ด๋””์— ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์งˆ๋ฌธ์ด ๋‚˜์™”์ง€๋งŒ, ์•„์ง ํ™œ์šฉ ๋ถ„์•ผ๋ฅผ ๊ฐœ์ฒ™ํ•˜์ง„ ์•Š์•˜๊ณ  ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ค‘์ด๋ผ๋Š” ๋‹ต์ด ๋Œ์•„์™”๋‹ค.
7682

7783
ํ•œํŽธ, ์ด ์„ธ์…˜์€ ๊ตฌ๋ฌธ ์ค‘์‹ฌ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์–ด๋–ค ๋Œ€์ˆ˜์  ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์—ˆ๊ณ , ๊ทธ ๋ฐฐ๊ฒฝ์— ์˜ˆ์ƒ๋ณด๋‹ค ๋†’์€ ์ˆ˜ํ•™์  ๋‚œ๋„๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ฒด๊ฐํ•  ์ข‹์€ ๊ธฐํšŒ์˜€๋‹ค. KAT๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์—†๋Š” ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ์–ธ์–ด์—๋Š” ์ ์šฉ์ด ์–ด๋ ต์ง€๋งŒ, ์ œ์–ด ํ๋ฆ„์„ ๋‹ค๋ฃจ๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ์‹์ด ํฅ๋ฏธ๋กœ์› ๋‹ค.
7884
## PL + HCI
@@ -105,11 +111,13 @@ KAT ์„ธ์…˜์ด ๋”ฐ๋กœ ์žˆ์„ ๋งŒํผ ์ด๋ฒˆ PLDI์—์„œ ์ฃผ๋ชฉ๋ฐ›์•˜์ง€๋งŒ, ์„ธ์…˜
105111
### Verifying Lock-Free Traversals in Relaxed Memory Separation Logic<sup>[8](#lockfree)</sup>
106112
๋А์Šจํ•œ ๋ฉ”๋ชจ๋ฆฌ (relaxed memory), ๋‹ค๋ฅธ ๋ง๋กœ ์•ฝํ•œ ๋ฉ”๋ชจ๋ฆฌ (weak memory)๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ํ•˜๋“œ์›จ์–ด์˜ ์ตœ์ ํ™”๋กœ ์ธํ•ด ๋ช…๋ น์–ด๊ฐ€ ์žฌ๋ฐฐ์—ด๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ๋กœ, ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๋ชจ๋‘ ์•ˆ์ „ํ•˜๊ฒŒ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋ชจ๋ธ์˜ ํ•ต์‹ฌ ํŠน์ง•์€, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ’์„ ์ฝ์„ ๋•Œ ๋ฐ˜๋“œ์‹œ ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์˜ˆ์ „์— ๊ธฐ๋ก๋œ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ํ—ˆ์šฉํ•˜๋Š” ์ ์ด๋‹ค.
107113

108-
์Šคํ‚ต๋ฆฌ์ŠคํŠธ (skiplist)๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์ ‘ ๋…ธ๋“œ๋งŒ ๊ฐ€๋ฆฌํ‚ค๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (linked list)์— ์—ฌ๋Ÿฌ ์ธต์˜ ๋„์•ฝ ํฌ์ธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ํƒ์ƒ‰ ์†๋„๋ฅผ ๋†’์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. ํŠน์ • ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๊ทธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ชจ๋“  ํฌ์ธํ„ฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜๊ณ , ๋ช…๋ น์–ด ์žฌ๋ฐฐ์—ด๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์–ด๋–ค ์‹คํ–‰์ด ์•ˆ์ „ํ•˜๋ฉฐ ์–ด๋–ค ์‹คํ–‰์ด ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ •ํ˜•์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ๊นŒ๋‹ค๋กญ๋‹ค. ์ด ์—ฐ๊ตฌ๋Š” ์Šคํ‚ต๋ฆฌ์ŠคํŠธ ์œ„์—์„œ์˜ ๋ฝ ์•ˆ์“ฐ๋Š” (lock-free) ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•ฝํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ ์œ„์—์„œ ์ตœ์ดˆ๋กœ ๊ฐ์žกํžŒ ๊ฒ€์ฆ (formal verification)ํ•œ ์‚ฌ๋ก€์ด๋‹ค. 2024๋…„ ์—ฌ๋ฆ„ SIGPL์—์„œ "์•ฝํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋™์‹œ์„ฑ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒ€์ฆํ•˜๊ธฐ"๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฏธ๋ฆฌ ์†Œ๊ฐœ๋œ ๋ฐ” ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋ฉ‹์ง„ ๋ฐœํ‘œ๋กœ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ์ข‹์•˜๋‹ค.
114+
์Šคํ‚ต๋ฆฌ์ŠคํŠธ (skiplist)๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์ ‘ ๋…ธ๋“œ๋งŒ ๊ฐ€๋ฆฌํ‚ค๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (linked list)์— ์—ฌ๋Ÿฌ ์ธต์˜ ๋„์•ฝ ํฌ์ธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ํƒ์ƒ‰ ์†๋„๋ฅผ ๋†’์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. ํŠน์ • ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๊ทธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ชจ๋“  ํฌ์ธํ„ฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜๊ณ , ๋ช…๋ น์–ด ์žฌ๋ฐฐ์—ด๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์–ด๋–ค ์‹คํ–‰์ด ์•ˆ์ „ํ•˜๋ฉฐ ์–ด๋–ค ์‹คํ–‰์ด ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ •ํ˜•์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ๊นŒ๋‹ค๋กญ๋‹ค.
115+
116+
์ด ์—ฐ๊ตฌ๋Š” ์Šคํ‚ต๋ฆฌ์ŠคํŠธ ์œ„์—์„œ์˜ ๋ฝ ์•ˆ์“ฐ๋Š” (lock-free) ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•ฝํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ ์œ„์—์„œ ์ตœ์ดˆ๋กœ ๊ฐ์žกํžŒ ๊ฒ€์ฆ (formal verification)ํ•œ ์‚ฌ๋ก€์ด๋‹ค. 2024๋…„ ์—ฌ๋ฆ„ SIGPL์—์„œ "์•ฝํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋™์‹œ์„ฑ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒ€์ฆํ•˜๊ธฐ"๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฏธ๋ฆฌ ์†Œ๊ฐœ๋œ ๋ฐ” ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋ฉ‹์ง„ ๋ฐœํ‘œ๋กœ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ์ข‹์•˜๋‹ค.
109117
### Verifying General-Purpose RCU for Reclamation in Relaxed Memory Separation Logic<sup>[9](#rcu)</sup>
110118
RCU (read-copy-update)๋Š” ๋™์‹œ์„ฑ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ๋ฝ์„ ์“ฐ์ง€ ์•Š์•„, ์ฝ๊ธฐ ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋œ ๋™๊ธฐํ™” ๋ฐฉ์‹์ด๋‹ค. ์ฝ๊ณ  ์‹ถ์œผ๋ฉด ๊ทธ๋ƒฅ ์ฝ์œผ๋ฉด ๋˜๊ณ , ์“ฐ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ๊ธฐ์กด ๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด ์ˆ˜์ •ํ•œ ๋’ค, ํฌ์ธํ„ฐ๋งŒ ํ•œ ๋ฒˆ์— ๋ฐ”๊ฟ”์น˜๋ฉด ๋œ๋‹ค. ๋‹ค๋งŒ ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์ œํ•˜๊ธฐ ์ „์—, ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์ง ์ฝ๊ณ  ์žˆ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒŒ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ํก์‚ฌ ์ฐธ์กฐ ํšŸ์ˆ˜ (reference counter)์ฒ˜๋Ÿผ ์ž์‹ ์„ ์ฐธ์กฐํ•˜๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์—ฐ๊ตฌ๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ, ์ด๋Š” ์ˆœ์ฐจ์  ๋ฉ”๋ชจ๋ฆฌ (sequential memory) ๋ชจ๋ธ์—์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ๋‹ค.
111119

112-
๋А์Šจํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ RCU๋ฅผ ๊ฐ์žกํžŒ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด, ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฐ€์ •์„ ๋„์ž…ํ–ˆ๋‹ค. ์ฒซ์งธ, ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด์ „ ๊ฐ’๊ณผ ํ˜„์žฌ ๊ฐ’์„ ๋™์‹œ์— ์ฐธ์กฐํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, ์ด์ „ ๊ฐ’์˜ ์ฐธ์กฐ๋Š” ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘˜์งธ, ๋ฎคํ…์Šค์™€ ๊ฐ™์€ ๊ณต์œ  ์ž์›์„ ํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์“ฐ๊ณ  ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ฝ๋Š”๋‹ค๋ฉด, ๊ทธ ์ค‘๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ ์žฅ๋ฒฝ (fence)์„ ์‚ฝ์ž…ํ•ด ์ ‘๊ทผ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ์ด ๋‘ ๊ฐ€์ •๋งŒ์œผ๋กœ๋„ ๋А์Šจํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ RCU๋ฅผ ๊ฐ์žกํžŒ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ด ์—ฐ๊ตฌ์˜ ํ•ต์‹ฌ์ด๋‹ค.
120+
์ด ์—ฐ๊ตฌ๋Š” ๋А์Šจํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ RCU๋ฅผ ๊ฐ์žกํžŒ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด, ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฐ€์ •์„ ๋„์ž…ํ–ˆ๋‹ค. ์ฒซ์งธ, ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด์ „ ๊ฐ’๊ณผ ํ˜„์žฌ ๊ฐ’์„ ๋™์‹œ์— ์ฐธ์กฐํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, ์ด์ „ ๊ฐ’์˜ ์ฐธ์กฐ๋Š” ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘˜์งธ, ๋ฎคํ…์Šค์™€ ๊ฐ™์€ ๊ณต์œ  ์ž์›์„ ํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์“ฐ๊ณ  ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ฝ๋Š”๋‹ค๋ฉด, ๊ทธ ์ค‘๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ ์žฅ๋ฒฝ (fence)์„ ์‚ฝ์ž…ํ•ด ์ ‘๊ทผ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ์ด ๋‘ ๊ฐ€์ •๋งŒ์œผ๋กœ๋„ ๋А์Šจํ•œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ RCU๋ฅผ ๊ฐ์žกํžŒ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ด ์—ฐ๊ตฌ์˜ ํ•ต์‹ฌ์ด๋‹ค.
113121

114122
๊ฐ„๋‹จํ•˜๊ณ  ๋ช…์พŒํ•œ ์•„์ด๋””์–ด์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋ณต์žกํ•œ ์‚ฌ๋ก€ ์—ฐ๊ตฌ (case study)์— ๊ธฐ๋ฐ˜ํ•ด ๊ฐ€๋Šฅํ•จ์„ ์ž…์ฆํ•œ ์ ์—์„œ ๋งค์šฐ ์ž˜ ๋œ ์—ฐ๊ตฌ๋ผ๊ณ  ๋А๊ผˆ๋‹ค. ๋ฐœํ‘œ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€ "์™œ ์ด๋Ÿฐ ๊ฐ„๋‹จํ•˜๊ณ  ์ค‘์š”ํ•œ ์•„์ด๋””์–ด๋ฅผ ๊ทธ์ „๊นŒ์ง€ ์•„๋ฌด๋„ ํ•˜์ง€ ์•Š์•˜๋˜ ๊ฑฐ๋ƒ"๊ณ  ๋ฌป์ž, ๋ฐœํ‘œ์ž๋Š” "๋‹จ์ˆœํ•œ ์•„์ด๋””์–ด์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ทธ ์•„๋ž˜์—” ์•„์ฃผ ๋ณต์žกํ•œ ์‚ฌ๋ก€ ๋ถ„์„์ด ์žˆ์—ˆ๋‹ค"๊ณ  ๋‹ตํ–ˆ๋˜ ๊ฒŒ ์ •๋ง ์ธ์ƒ์ ์ด์—ˆ๋‹ค.
115123

@@ -132,9 +140,12 @@ PL ํ•™ํšŒ์˜€๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ. ํ‰์†Œ์— ๊ถ๊ธˆํ–ˆ์ง€๋งŒ ๋ฉ€๊ฒŒ ๋А๊ปด์กŒ๋˜ ํ”„
132140
๊ทธ๋Ÿฐ ์‚ฌ์šฉ๋ฒ•์ด ๋„ˆ๋ฌด ์ƒˆ๋กœ์› ๊ธฐ์— ์ดํ•ด๋ฅผ ๋ชป ํ•ด์„œ ๋“ค์–ด์˜จ ์งˆ๋ฌธ์ด ์žˆ์—ˆ๋‹ค. '์•…๋งˆ์  ์„ ํƒ์€ ๋ญ”์ง€ ์•„๋Š”๋ฐ, ์—ฐ๊ตฌ์—์„œ ๊ตณ์ด ์ฒœ์‚ฌ์ 
133141
์„ ํƒ์„ ์“ธ ์ด์œ ๋Š”?' ๋‚ด์ง€๋Š” '์‘์šฉ ๋ถ„์•ผ๊ฐ€ ์žˆ๋Š”์ง€' ๋“ฑ, ์ฃผ์ œ๊ฐ€ ๋งŽ์ด ์ƒˆ๋กœ์šด ๋ฐœํ‘œ๋“ค์—์„œ๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š” ๊ฑธ ๊ฑฐ๋ฆฌ๋‚Œ์—†์ด ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์œ„๊ธฐ์˜€๋‹ค.
134142

135-
๋ชจ๋‘๋“ค ์ž์‹ ์˜ ๋ถ„์•ผ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ๋‚จ๋“ค์—๊ฒŒ ์ดํ•ด์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์˜€๋‹ค. ๊ฐ€์žฅ ๋†€๋ž๋˜ ์ ์€ ๋ฐœํ‘œ์—์„œ ๋‚˜์˜ค๋Š” ํ•ต์‹ฌ ์˜ˆ์ œ
136-
(motivating example)๊ฐ€ ๋…ผ๋ฌธ๊ณผ ๊ฒน์น˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹จ ๊ฒƒ์ด๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ธธ๊ณ  ์—„๋ฐ€ํ•œ ์—์ œ๋ฅผ
137-
์ผ๋‹ค๋ฉด ๋ฐœํ‘œ์—์„œ๋Š” ๊ทธ๋‹ค์ง€ ์—„๋ฐ€ํ•˜์ง„ ์•Š์ง€๋งŒ ์–ด๋–ค ๋ถ„์•ผ์˜ ์–ด๋А ๋‚ด์šฉ์„ ๋ฐ”๊พธ์—ˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์ข‹์€ ๋น„์œ ๋ฅผ ๋“ค๊ณ  ์™”๋‹ค.
143+
๋ชจ๋‘๋“ค ์ž์‹ ์˜ ๋ถ„์•ผ๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ๋‚จ๋“ค์—๊ฒŒ ์ดํ•ด์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์˜€๋‹ค.
144+
145+
๊ฐ€์žฅ ๋†€๋ž๋˜ ์ ์€ ๋ฐœํ‘œ์—์„œ ๋‚˜์˜ค๋Š” ํ•ต์‹ฌ ์˜ˆ์ œ (motivating example)๊ฐ€ ๋…ผ๋ฌธ๊ณผ ๊ฒน์น˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹จ ๊ฒƒ์ด๋‹ค.
146+
๋…ผ๋ฌธ์—์„œ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ธธ๊ณ  ์—„๋ฐ€ํ•œ ์—์ œ๋ฅผ ์ผ๋‹ค๋ฉด
147+
๋ฐœํ‘œ์—์„œ๋Š” ๊ทธ๋‹ค์ง€ ์—„๋ฐ€ํ•˜์ง„ ์•Š์ง€๋งŒ ์–ด๋–ค ๋ถ„์•ผ์˜ ์–ด๋А ๋‚ด์šฉ์„ ๋ฐ”๊พธ์—ˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์ข‹์€ ๋น„์œ ๋ฅผ ๋“ค๊ณ  ์™”๋‹ค.
148+
138149
๋˜ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง์ฒ˜๋Ÿผ ์„ฑ๋Šฅ์„ ๋Œ์–ด์˜ฌ๋ฆฐ ์—ฐ๊ตฌ๋ฅผ ํ•˜๋”๋ผ๋„ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์•ž์— ๋†“์ง€ ์•Š๊ณ , ์ตœ๋Œ€ํ•œ ์ž์‹ ์˜ ์—ฐ๊ตฌ ๋ถ„์•ผ์™€
139150
ํ˜„ํ™ฉ์„ ์˜ˆ์ œ ๋“ฑ์œผ๋กœ ์ฃผ์ง€์‹œํ‚จ ๋‹ค์Œ์— ๊ฒฐ๊ณผ๋ฅผ ์‹ค์—ˆ๋‹ค. ์ด๊ฑด ์•„๋ฌด๋ž˜๋„ ์„œ๋กœ ์–ด๋–ค ์—ฐ๊ตฌ๋ฅผ ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ๊ธฐ ์–ด๋ ค์šด ํ•™ํšŒ์˜ ํŠน์„ฑ์ƒ,
140151
์–ป์–ด๊ฐˆ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ๋“  ๊ฐ€๋ฅด์น˜๋ ค ๋…ธ๋ ฅํ•œ ์‚ฐ๋ฌผ์ด์—ˆ๋‹ค.
@@ -163,4 +174,4 @@ PL ํ•™ํšŒ์˜€๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ. ํ‰์†Œ์— ๊ถ๊ธˆํ–ˆ์ง€๋งŒ ๋ฉ€๊ฒŒ ๋А๊ปด์กŒ๋˜ ํ”„
163174

164175
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
165176
<script id="MathJax-script" async
166-
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
177+
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

0 commit comments

Comments
ย (0)