Python์ GUI ๊ฐ๋ฐ์ ์ํ ํฌ๋ก์ค ํ๋ซํผ ํดํท์ธ Dear PyGui 1.0.0(DPG)์ด ์ถ์๋์์ต๋๋ค. ์ด ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์ ๋ฉํฐ์ค๋ ๋ฉ์ ์ฌ์ฉํ๊ณ GPU ์ธก์ผ๋ก ์์ ์ ์คํ๋ก๋ํ์ฌ ๋ ๋๋ง ์๋๋ฅผ ๋์ด๋ ๊ฒ์ ๋๋ค. 1.0.0 ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๋ชฉํ๋ API๋ฅผ ์์ ํํ๋ ๊ฒ์ ๋๋ค. ํธํ์ฑ์ ๊นจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ด์ ๋ณ๋์ "์คํ์ " ๋ชจ๋์์ ์ ๊ณต๋ฉ๋๋ค.
๊ณ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด DearPyGui ์ฝ๋์ ์ฃผ์ ๋ถ๋ถ์ ๋์ผํ ์์ฑ์๊ฐ ๊ฐ๋ฐํ์ง๋ง C++๋ก ๊ทธ๋ํฝ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ด์ ๋ชจ๋ธ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋ Dear ImGui ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ C++๋ก ์์ฑ๋์์ต๋๋ค. Dear PyGui ์์ค ์ฝ๋๋ MIT ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. Linux, Windows 10 ๋ฐ macOS ํ๋ซํผ์ ๋ํ ์ง์์ ์ ์ธํ์ต๋๋ค.
์ด ํดํท์ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ฒ ์์ฑํ๊ณ ๋์ ์๋ต์ฑ๊ณผ ์ํธ ์์ฉ์ฑ์ ์๊ตฌํ๋ ๊ฒ์, ๊ณผํ ๋ฐ ์์ง๋์ด๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ณต์กํ ํน์ GUI๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์๊ฒ๋ ๊ฐ๋จํ API์ ๋ฒํผ, ์ฌ๋ผ์ด๋, ์ค์์น, ๋ฉ๋ด, ํ ์คํธ ์์, ์ด๋ฏธ์ง ํ์ ๋ฐ ๋ค์ํ ์ฐฝ ๋ ์ด์์ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๊ธฐ์กด ์์ ์ธํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๊ณ ๊ธ ๊ธฐ๋ฅ ์ค์๋ ์ฐจํธ, ๊ทธ๋ํ ๋ฐ ํ ๊ตฌ์ฑ ์ง์์ด ์ฃผ๋ชฉ๋ฉ๋๋ค.
๋ํ ๋ฆฌ์์ค ๋ทฐ์ด ์ธํธ, ๋ ธ๋ ํธ์ง๊ธฐ, ํ ๋ง ๊ฒ์ฌ ์์คํ ๋ฐ 2D ๊ฒ์ ์ ์์ ์ ํฉํ ์์ ํ์ ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์ ๋จ์ํํ๊ธฐ ์ํด ๋๋ฒ๊ฑฐ, ์ฝ๋ ํธ์ง๊ธฐ, ๋ฌธ์ ๋ทฐ์ด ๋ฐ ๋ก๊ทธ ๋ทฐ์ด๋ฅผ ํฌํจํ ์ฌ๋ฌ ์ ํธ๋ฆฌํฐ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
Dear PyGui๋ ์ผ๋ฐ์ ์ธ GUI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ์ API ๋ชจ๋(Retained ๋ชจ๋)๋ฅผ ๊ตฌํํ์ง๋ง IMGUI ๋ชจ๋(Immediate ๋ชจ๋ GUI)์์ ์๋ํ๋ Dear ImGui ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ ๊ตฌํ๋ฉ๋๋ค. Retained ๋ชจ๋๋ ์ฅ๋ฉด์ ์์ฑํ๋ ์์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ์ธ๊ณ๋๋ค๋ ์๋ฏธ์ด๋ฉฐ, Immediate ๋ชจ๋์์๋ ์๊ฐํ ๋ชจ๋ธ์ด ํด๋ผ์ด์ธํธ ์ธก์์ ์ฒ๋ฆฌ๋๊ณ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ต์ข ์ถ๋ ฅ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ ์์ฑ๋ ํ๋ ์์ ํ์ฑํ๊ธฐ ์ํด ๋ชจ๋ ์ธํฐํ์ด์ค ์์๋ฅผ ๊ทธ๋ฆฌ๋ ๋ช ๋ น์ ๋ด๋ฆด ๋๋ง๋ค.
DearPyGui๋ ์์คํ ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์์ ฏ์ ์ฌ์ฉํ์ง ์๊ณ , ํ์ฌ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ OpenGL, OpenGL ES, Metal ๋ฐ DirectX 11 ๊ทธ๋ํฝ API๋ฅผ ํธ์ถํ์ฌ ์์ฒด ์์ ฏ์ ๋ ๋๋งํฉ๋๋ค. ์ ์ฒด์ ์ผ๋ก 70๊ฐ ์ด์์ ๊ธฐ์ฑ ์์ ฏ์ด ์ ๊ณต๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru