Life is Game๐ŸŽฎ

๋ฒŒ์Šค(Verse, V) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์†Œ๊ฐœ

ํ—ค์Šค๋” 2024. 9. 29. 23:34

์˜ค๋Š˜์€ ์–ธ๋ฆฌ์–ผ ์—”์ง„์˜ ๊ฐœ๋ฐœ์‚ฌ์ธ ์—ํ”ฝ ๊ฒŒ์ž„์ฆˆ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๊พธ์ค€ํžˆ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ธ ๋ฒŒ์Šค(Verse, V)์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.




 

Verse๋ž€?


์—ํ”ฝ๊ฒŒ์ž„์ฆˆ๊ฐ€ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ํฌํŠธ๋‚˜์ดํŠธ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

 

ํฌํŠธ๋‚˜์ดํŠธ ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ( Unreal Editor for Fortnite, ์ดํ•˜ UEFN)๋ž€ ์—ํ”ฝ ๊ฒŒ์ž„์ฆˆ์˜ ์ธ๊ธฐ ๊ฒŒ์ž„ 'ํฌํŠธ๋‚˜์ดํŠธ'๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฝ˜ํ…์ธ  ์ œ์ž‘ ํˆด์ž…๋‹ˆ๋‹ค. ํฌํŠธ๋‚˜์ดํŠธ์˜ ์ƒˆ๋กœ์šด ๋งต์ด๋‚˜ ๊ฒŒ์ž„ ๋ชจ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋‚˜ ์ฝ˜ํ…์ธ  ์ œ์ž‘์ž์—๊ฒŒ ์œ ์šฉํ•œ ๋„๊ตฌ๋กœ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

Verse๋ผ๋Š” ๋ช…์นญ์ด ๋ฉ”ํƒ€๋ฒ„์Šค(Meta"Verse")์—์„œ ๋”ฐ์˜จ ๊ฒƒ์ธ ๋งŒํผ, ๋ฉ”ํƒ€๋ฒ„์Šค๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ดˆ๊ธฐ ๋ชฉํ‘œ๊ฐ€ ์„ค์ •๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š” ํ•ด๋‹น ์–ธ์–ด๋ฅผ ํ†ตํ•ด ์—ํ”ฝ ๊ฒŒ์ž„์ฆˆ์˜ ๋Œ€ํ‘œ ๊ฒŒ์ž„ ์ค‘ ํ•˜๋‚˜์ธ ํฌํŠธ๋‚˜์ดํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ, ์ฝ˜ํ…์ธ ์™€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”์‹œํ‚ด์œผ๋กœ์„œ ํฌํŠธ๋‚˜์ดํŠธ IP๋ฅผ ๊ฐ•ํ™”์‹œํ‚ค๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“œ๋„ค์š”๐Ÿค”.

 

์•„์ง ์–ธ๋ฆฌ์–ผ ์—”์ง„ ์ •์‹ ์—…๋ฐ์ดํŠธ ์ ์šฉ ์‹œ๊ธฐ๋Š” ์ •ํ•ด์ง€์ง€ ์•Š์•˜์ง€๋งŒ, ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋ฉด์„œ ๋Šฆ๋”๋ผ๋„ ์–ธ๋ฆฌ์–ผ ์—”์ง„ 6.0 ์ •์‹ ๋ฒ„์ „์— ์—…๋ฐ์ดํŠธ๋  ์˜ˆ์ •์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ฌํ•ด(2024) 4์›”์— ์–ธ๋ฆฌ์–ผ ์—”์ง„์ด 5.4 ver๊นŒ์ง€ ๋‚˜์™”๊ณ , ์˜ฌํ•ด 12์›” ์ฆˆ์Œ์— 5.5 ver์ด ๋‚˜์˜ฌ ์˜ˆ์ •์ด๋‹ˆ, ์•„๋งˆ 1~2๋…„ ์•ˆ์— ๋ฒŒ์Šค ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. (๊ด€๊ณ„์ž๋Š” ์•„๋‹ˆ๋ผ ํ™•์‹ค์น˜ ์•Š์Œ)

 

์–ธ๋ฆฌ์–ผ ์—”์ง„์„ ๋‹ค๋ฃจ๋ ค๋ฉด C++์€ ํ•„์ˆ˜์ธ๋ฐ, ๋งŒ์•ฝ ์—ฌ๊ธฐ์— ์•ˆ์ •ํ™”๋œ ๋ฒŒ์Šค ์–ธ์–ด๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๋ฉด? ๊ฐœ๋ฐœ์ž์™€ ์•„ํ‹ฐ์ŠคํŠธ๋“ค์—๊ฒŒ ํ›จ์”ฌ ๊ฐ„ํŽธํ•œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ๋ณด๋ฉด, ํ™•์‹คํžˆ ํŒŒ๊ธ‰๋ ฅ์ด ํด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. C++์€ ์•„๋ฌด๋ž˜๋„ ์˜ฌํ•ด 3์›”์— ๋ฏธ๊ตญ ๋ฐ”์ด๋“  ํ–‰์ •๋ถ€์—์„œ ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ๋ฌธ์ œ๋กœ IT๊ธฐ์—…์— C์™€ C++ ์‚ฌ์šฉ ์ž์ œ๋ฅผ ์ด‰๊ตฌํ•˜๋Š” ๋ณด๊ณ ์„œ ๋•Œ๋ฌธ์ธ์ง€... ๊ทธ ํ›„๋กœ ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์ด C++์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ •์„ฑ ์šฐ๋ ค๊ฐ€ ์ปค์กŒ๊ณ , C++ ์ž…์žฅ์—์„œ๋Š” ๋Ÿฌ์ŠคํŠธ๋‚˜ ํŒŒ์ด์ฌ ๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ์˜ ๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ์„ ์œ„ํ˜‘๋ฐ›๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ฌดํŠผ, ๋ชฉํ‘œํ•œ๋Œ€๋กœ ๋ฒŒ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์–ธ๋ฆฌ์–ผ ์—”์ง„๊ณผ ํƒ€ ์—”์ง„ ๋ฐ ๋‹ค๋ฅธ ๋ถ„์•ผ์—๋„ ์ œํ•œ์—†์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์–ผ๋ฅธ ์˜ค๋ฉด ์ข‹๊ฒ ๋„ค์š”.

 

 

 

Verse Reference.


 

 

 

Verse ์–ธ์–ด์˜ ์„ค๊ณ„ ๋ชฉํ‘œ์™€ ์ฃผ์š” ๊ธฐ๋Šฅ


๋‹ค์Œ์€ ๋ฌธ์„œ์—์„œ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋Š” ๋ฒŒ์Šค์˜ ์„ค๊ณ„ ๋ชฉํ‘œ์™€ ์ฃผ์š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์„ค๊ณ„ ๋ชฉํ‘œ
1. ๊ฐ„๋‹จ(Simple): ์ดˆ์‹ฌ์ž ํ”„๋กœ๊ทธ๋ž˜๋จธ๋„ ์‰ฝ๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„.
2. ์ผ๋ฐ˜์ (General): ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
3. ์ƒ์‚ฐ์ (Productive): ํŒ€ ๋‹จ์œ„๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐ˜๋ณต ๋ฐ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ๋†’์€ ์ƒ์‚ฐ์„ฑ์„ ์ œ๊ณต.
4. ์ •์ ์œผ๋กœ ๊ฒ€์ฆ(Statically verified): ์ปดํŒŒ์ผ ์‹œ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ์žก์•„๋ƒ„.
5. ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ(Performant): ๋ฆฌ์–ผํƒ€์ž„, ์˜คํ”ˆ ์›”๋“œ, ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ ํ•ฉ.
6. ์™„์ „(Complete): ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›.
7. ์œ ํ–‰์„ ํƒ€์ง€ ์•Š๋„๋ก(Timeless): ๊ธฐ์กด ์–ธ์–ด์˜ ๊ธฐ๋Šฅ์— ์–ฝ๋งค์ด์ง€ ์•Š๊ณ  ํ˜„๋Œ€ ๋ฐ ๋ฏธ๋ž˜์˜ ์š”๊ตฌ์— ๋งž์ถฐ ์„ค๊ณ„.
์ฃผ์š” ๊ธฐ๋Šฅ
1. ๊ฐ•ํƒ€์ž…(Strongly typed): ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๊ณ  ์ •์  ์ฒดํฌ๋ฅผ ์ง€์›.
2. ๋‹ค์ค‘ ํŒจ๋Ÿฌ๋‹ค์ž„(Multi-paradigm): ํ•จ์ˆ˜ํ˜•, ๊ฐ์ฒด ์ง€ํ–ฅ, ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ํ™œ์šฉ.
3. ํ‘œํ˜„์‹ ์ค‘์‹ฌ: ๋ชจ๋“  ๊ฒƒ์ด ํ‘œํ˜„์‹์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง.
4. ์‹คํŒจ ๊ธฐ๋ฐ˜ ํ๋ฆ„ ์ œ์–ด: ์„ฑ๊ณต ์‹œ ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ  ์‹คํŒจ ์‹œ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ์‹คํŒจ ๊ฐ€๋Šฅ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉ.
5. ์ถ”์ธก ์‹คํ–‰: ์‹คํŒจ ์ปจํ…์ŠคํŠธ์—์„œ ํ‘œํ˜„์‹์„ ์‹คํ–‰ํ•ด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Œ.
6. ๋™์‹œ์„ฑ ์ง€์›: ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ์Šค๋ ˆ๋“œ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋‚ด์žฅ๋œ ๋™์‹œ์„ฑ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.

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

 

 

 

Verse ์–ธ์–ด ์„ธ๋ถ€ ๊ธฐ๋Šฅ๊ณผ ๋ฌธ๋ฒ•


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

 

 

์ปจํŠธ๋กค ํ”Œ๋กœ๋ž€?

์ปจํŠธ๋กค ํ”Œ๋กœ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ธ์ŠคํŠธ๋Ÿญ์…˜(๋ช…๋ น์–ด)์„ ์‹คํ–‰ํ•˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋ณดํ†ต ์ˆœ์ฐจ ์‹คํ–‰ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š”๋ฐ, ์ปจํŠธ๋กค ํ”Œ๋กœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ํ‘œํ˜„์‹์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด if ๋ฐ case ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์Œ์— ์‹คํ–‰๋  ํ‘œํ˜„์‹์„ ๊ฒฐ์ •ํ•˜๊ฑฐ๋‚˜, loop ๋ฐ for๋ฅผ ํ†ตํ•ด ํ‘œํ˜„์‹ ์‹œํ€€์Šค๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ํ•ด๋‹นํ•˜๋Š” ํ‘œํ˜„์‹์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • ํ”„๋กœํŒŒ์ผ
  • Block
  • if
  • case
  • loop์™€ break
  • for
  • defer

 

์œ„ ํ‘œํ˜„์‹๋“ค์˜ ํŠน์ง•์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์š”์•ฝํ•ด๋ณด์ž๋ฉด,

 

์‹คํŒจ ๊ฐ€๋Šฅ ํ‘œํ˜„์‹
๋ฒŒ์Šค์—์„œ๋Š” ์ „ํ†ต์ ์ธ true/false ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์„ฑ๊ณต ์‹œ ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ  ์‹คํŒจ ์‹œ ๊ฐ’์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ์‹คํŒจ ๊ฐ€๋Šฅ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ํ‘œํ˜„์‹์€ ์ฃผ๋กœ if ํ‘œํ˜„์‹ ๋“ฑ ์‹คํŒจ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰๋œ๋‹ค.

result = fetchData() // fetchData๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜, ์‹คํŒจํ•˜๋ฉด null ๋ฐ˜ํ™˜

 

์‹คํŒจ ์ปจํ…์ŠคํŠธ
์‹คํŒจ ๊ฐ€๋Šฅ ํ‘œํ˜„์‹์€ ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์‹คํ–‰๋˜๋ฉฐ, ์‹คํ–‰ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์ด ๋‹ค๋ฅด๊ฒŒ ์ง„ํ–‰๋œ๋‹ค. ์ด๋Š” ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๊ณ , ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•œ๋‹ค.

if (result) {
    // ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ์„ฑ๊ณต
    print("๋ฐ์ดํ„ฐ: " + result)
} else {
    // ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ
    print("๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.")
}

 

์ถ”์ธก ์‹คํ–‰
์‹คํŒจ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์ถ”์ธก ์‹คํ–‰์„ ํ†ตํ•ด ํŠน์ • ์ž‘์—…์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ํ‘œํ˜„์‹์ด ์„ฑ๊ณตํ•˜๋ฉด ํ•ด๋‹น ํ‘œํ˜„์‹์˜ ํšจ๊ณผ๊ฐ€ ์ปค๋ฐ‹๋˜๊ณ , ์‹คํŒจํ•˜๋ฉด ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋กค๋ฐฑ๋œ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

try {
    fetchedData = tryFetchData()
    // ์„ฑ๊ณตํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ปค๋ฐ‹
    commitChanges(fetchedData)
} catch {
    // ์‹คํŒจํ•˜๋ฉด ์•„๋ฌด๋Ÿฐ ๋ณ€๊ฒฝ๋„ ํ•˜์ง€ ์•Š์Œ
    print("๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค.")
}

 

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

transaction {
    change1 = modifyData1()
    change2 = modifyData2()

    if (!change1 || !change2) {
        // ํ•˜๋‚˜๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋กค๋ฐฑ
        rollback()
        print("๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์ด ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค.")
    } else {
        // ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๋ฉด ์ปค๋ฐ‹
        commit()
        print("๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
    }
}

 

์š”๋ ‡๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

 

 

๋งˆ๋ฌด๋ฆฌ.


์˜ค๋Š˜์€, ์—ํ”ฝ ๊ฒŒ์ž„์ฆˆ์—์„œ ๊ฐœ๋ฐœํ•œ ๋ฒŒ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด, ์ถ”ํ›„ ๋ฒŒ์Šค ์–ธ์–ด์˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๊ณผ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๋Š” ๊ธ€์„ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.