notcurses v1.4.x ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ฒ์ ์ด ์ถ์๋์์ต๋๋ค. โ์ ์ค์ ๊ณ์๋ฉ๋๋ค! ์ฐํ! ์ฐํฑ!โ
Notcurses๋ ์ต์ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ํ TUI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ ์ฃผ๊ฐ ์๋ ๋ฌธ์ ๊ทธ๋๋ก ๋ฒ์ญ๋์์ต๋๋ค. C++ ์์ ํค๋๋ฅผ ์ฌ์ฉํ์ฌ C๋ก ์์ฑ๋์์ต๋๋ค. ๋ํผ ์ฌ์ฉ ๊ฐ๋ฅ ๋ น, C + + ะธ Python.
์ ์: ์ต์ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ์ ๋ณต์กํ TUI๋ฅผ ๋จ์ํํ๊ณ ๋ฐ์ ์์๊ณผ ์ ๋์ฝ๋๋ฅผ ์ต๋ํ ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Curse์ ์์๋ ๋ง์ ์์ ์ notcurses๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค(๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง).
๊ทธ๋ ์ง ์์ ๊ฒ: X/Open ์ ์ฃผ์ ํธํ ๊ฐ๋ฅํ ๊ตฌํ ๋๋ ๊ธฐ์กด ์์คํ ์ ncurses๋ฅผ ๋์ฒดํฉ๋๋ค.
Notcurses๋ ๋จ์ผ UNIX ์ฌ์์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ X/Open Curses API๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ด ์ฌ์์ ์ค๋ ์ ๋ถํฐ ์ฌ์ฉ๋์์ผ๋ฉฐ ์๋ฅผ ๋ค์ด ์ธ๋ฑ์ฑ๋์ง ์์ 24๋นํธ ์์๊ณผ ๊ฐ์ ํฐ๋ฏธ๋ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ notcurses๋ ์ ์ฃผ๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค. ํด๋์ฑ์ด ๋จ์ด์ง๋ฉฐ ํ์คํ ๋ ์ ์ ์์ ํ๋์จ์ด์์ ํ
์คํธ๋์์ต๋๋ค.
๊ฐ๋ฅํ ๋๋ง๋ค notcurses๋ ncurses์ ํจ๊ป ์ ๊ณต๋๋ terminfo ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์์ฑ์์ ํฐ ์ด์ ์ ์ป์ต๋๋ค.
Notcurses๋ ์ํฌ์คํ
์ด์
, ํด๋ํฐ, ๋
ธํธ๋ถ ๋ฐ ํ๋ธ๋ฆฟ์์ ์ฌ์ฉ์์ ์ํธ ์์ฉํ ์ ์๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด ๋นํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
-
๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์ค๋ ๋ ์์ ์ฑ๊ณผ ํจ์จ์ ์ธ ์ฌ์ฉ์ ์ฒ์๋ถํฐ ์ค๊ณ ๊ณ ๋ ค์ฌํญ์ด์์ต๋๋ค.
-
X/Open์ ๋นํด ํ์์ด ๋ ์ ๊ตฌ์ฑ๋ API:
-
๋ด๋ณด๋ธ ์๋ณ์์๋ ๋ค์์คํ์ด์ค ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๋์ฌ๊ฐ ๋ถ์ต๋๋ค.
-
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ฒด ํ์ผ์ ์ต์ํ์ ๋ฌธ์ ์งํฉ์ ๋ด๋ณด๋ ๋๋ค. ์ค์ ๋ก ์ ์ ์ฝ๋๋ ์ค ํค๋์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ปดํ์ผ๋ฌ๋ฅผ ๋ ์ฝ๊ฒ ์ต์ ํํ๊ณ ๋ก๋ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
-
-
๋ชจ๋ API๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์ฉ ๋ฌธ์ ์งํฉ(์ ๋์ฝ๋)์ ์ง์ํฉ๋๋ค. ์ API๋ ๋ค์ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ ๋์ฝ๋์ ํ์ฅ ๋ฌธ์์ ํด๋ฌ์คํฐ.
-
์ด๋ฏธ์ง, ๊ธ๊ผด, ๋น๋์ค, ๊ณ ๋๋น ํ ์คํธ, ์คํ๋ผ์ดํธ ๋ฐ ํฌ๋ช ์์ญ์ ํฌํจํ ์๊ฐ์ ๊ธฐ๋ฅ์ ๋๋ค. ๋ชจ๋ API๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ๋ฏธ๋์์ ํ์์ ๋ฐ๋ผ ์์ํ๋๋ 24๋นํธ ์์์ ์ง์ํฉ๋๋ค.
-
Apache2 ๋ผ์ด์ผ์ค์ ๋ฌ๋ฆฌ ๋๋ผ๋ง ncurses ๋ผ์ด์ผ์ค์ธ ์ฌ๋ฌ ํ์์์ (ํ์๋ "MIT-X11์ ์ฌ๊ตฌ์ฑ"์ผ๋ก ์์ฝ๋ฉ๋๋ค).
์ด์ ์ ์ฃผ์ ๋ฆด๋ฆฌ์ค์ธ 1.1.0 ์ดํ๋ก ์๋ง์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
-
์ฝ๊ธฐ ๋ฌธ์์ด์ ์ฐ๊ฒฐ๋ ์์ ํ์ ๋ฌธ์์ด์ ์ ๋ ฅํ๊ธฐ ์ํ ์ฝ๊ธฐ ์์ ฏ
-
ํ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ , ๊ด๋ฆฌํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์คํธ๋ฆฌ๋ฐํ๊ธฐ ์ํ ํ์ ํ๋ก์ธ์ค ์์ ฏ์ ๋๋ค.
-
Linux 5.3+์์๋ ์๋ก์ด clone3+pidfd ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ฒฝ์ ์กฐ๊ฑด ์์ด ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
-
์์์ ํ์ผ ์ค๋ช ์๋ฅผ ํ๋ ์ธ(ํ์ ํ๋ก์ธ์ค๊ฐ ๋น๋๋ ํ๋ ์ธ)์ผ๋ก ์คํธ๋ฆฌ๋ฐํ๊ธฐ ์ํ Fdplane ์์ ฏ์ ๋๋ค. ๋ ๋ค ์ฝ๋ฐฑ์ ํตํด ํ ์คํธ ์คํ์ผ์ ์ง์ ํ๊ฑฐ๋ ์กฐ์ํ ์ ์์ต๋๋ค.
-
ํ๋ฉด ํ์ ๋ฐ ์๊ฐ ํจ๊ณผ. ๋ฉ๋ชจ๋ฆฌ์์ ์๊ฐํ๋ฅผ ๋ก๋ํ๋ ์ค์ ๋๋ค. ๋ฌด์์ RGBA/BGRx ๋ธ๋ฆฌํ .
-
๋ฉ๋ด๋ ์๋จ ๋ฐ ํ๋จ ํ๋ฉด ์ค ํ๋(๋๋ ๋ ๋ค)์ ๋ฐฐ์น๋ ์ ์์ต๋๋ค.
-
์ง์ ๋ชจ๋๊ฐ ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค.
-
ํด๋ฆฌํ, ๊ทธ๋ผ๋์ธํธ ๋ฐ ๊ณ ๋๋น ํ ์คํธ.
-
์๋ก ํ ํธ๋ฆฌ์ค๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
-
Marek Habersack์ C++ ๋ํผ์๋ ์ด์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(ํ์ํ ๊ฒฝ์ฐ).
-
Python ๋ฐ Rust FFI๊ฐ ์ ๋ฐ์ดํธ๋๊ณ ํ ์คํธ๋์์ต๋๋ค.
์์ฑ์์ ์๊ฒฌ์ด ํฌํจ๋ ๋น๋์ค ๋ฐ๋ชจ
์ฑ
โํดํน ๋ ํ๋๋! ์ ์์ Notcourses์ ํจ๊ป
์ถ์ฒ : linux.org.ru