
์ค๋์ ์ธ๋ฆฌ์ผ ์์ง์ ๊ฐ๋ฐ์ฌ์ธ ์ํฝ ๊ฒ์์ฆ์์ ๊ฐ๋ฐํ๊ณ ๊พธ์คํ ์
๋ฐ์ดํธํ๊ณ ์๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ธ ๋ฒ์ค(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("๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉ๋์์ต๋๋ค.")
}
}
์๋ ๊ฒ ์ ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ๋ค์.
๋ง๋ฌด๋ฆฌ.
์ค๋์, ์ํฝ ๊ฒ์์ฆ์์ ๊ฐ๋ฐํ ๋ฒ์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํด ์์๋ดค์ต๋๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด, ์ถํ ๋ฒ์ค ์ธ์ด์ ๋ค๋ฅธ ๊ธฐ๋ฅ๊ณผ ๋ฌธ๋ฒ์ ๋ํด ์๊ฐํ๋ ๊ธ์ ๊ฐ์ ธ์ค๋๋ก ํ๊ฒ ์ต๋๋ค. ์ค๋๋ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
'Life is Game๐ฎ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
<์ธ๋ฆฌ์ผ ์์ง 5.5 ์ถ์ ์จ๋น๋: ํ๋ก๊ทธ๋๋ฐ ํธโ > (3) | 2024.11.26 |
---|---|
(๋ฉํฐ๋ฅผ ์ํ) ๊ฒ์ ๊ธฐํ ๊ธธ๋ผ์ก์ด (0) | 2024.11.06 |
์ธ๋ฆฌ์ผ ์์ง 5.4์ ํ์ฌ๋ AI ๊ธฐ๋ฅ ์ดํด๋ณด๊ธฐ (์ด๋ฒ ๋ฒ์ ์ ์๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ ์๊ฐํด๋๋ฆผ!) (0) | 2024.08.25 |
ChatGPT ๊ธฐ๋ฐ ์ฑ๋ด ์ ์ with Unity (0) | 2024.01.07 |
UE ๋ธ๋ฃจํ๋ฆฐํธ๋? (1) | 2023.11.26 |