๋ณธ๋ฌธ์œผ๋กœ ์ด๋™

curses

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „.

curses
๊ฐœ๋ฐœ์ž์ผ„ ์•„๋†€๋“œ
์ข…๋ฅ˜์œ„์ ฏ ํˆดํ‚ท

curses๋Š” ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜ ์ฒด์ œ๋ฅผ ์œ„ํ•œ ํ„ฐ๋ฏธ๋„ ์ œ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•˜๋‚˜๋กœ, ํ…์ŠคํŠธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(TUI) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ๊ตฌ์„ฑ์„ ๊ฐ€๋Šฅ์ผ€ ํ•œ๋‹ค.

์ด ์ด๋ฆ„์€ "์ปค์„œ ์ตœ์ ํ™”"(cursor optimization)์—์„œ ๋”ฐ์˜จ ๊ฒƒ์ด๋‹ค. ๋ฌธ์ž ์…€ ํ„ฐ๋ฏธ๋„(VT100 ๋”ฐ์œ„) ์ƒ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ช…๋ น๋“ค์ด ๋ชจ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.[1]

๊ฐœ์š”

[ํŽธ์ง‘]

curses API๋Š” ์ผ๋ถ€ ์žฅ์†Œ์—์„œ ๊ธฐ์ˆ ๋œ๋‹ค.[2] ๋Œ€๋ถ€๋ถ„์˜ curses ๊ตฌํ˜„๋ฌผ๋“ค์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์˜ ๊ธฐ๋Šฅ์„ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•œ๋‹ค. PDCurses์™€ ๊ฐ™์€ ์ผ๋ถ€ ๊ตฌํ˜„๋ฌผ๋“ค์€ ํ„ฐ๋ฏธ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹Œ ํŠน๋ณ„ํ•œ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ตฌํ˜„๋ฌผ๋“ค์€ terminfo์„ ์ด์šฉํ•˜๋ฉฐ ์ผ๋ถ€๋Š” termcap์„ ์ด์šฉํ•œ๋‹ค. curses๋Š” ๋ชจ๋“  ์…€ ํ„ฐ๋ฏธ๋„๊ณผ์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ๊ณผ ๋‹จ์ˆœ์„ฑ์˜ ์ด์ ์ด ์žˆ๋‹ค. ๋น„ํŠธ๋งต ๊ทธ๋ž˜ํ”ฝ์ด๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ธ€๊ผด์ด ํ•„์š” ์—†๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ curses๋ฅผ ์ด์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„๋ฌผ์€ X ํˆดํ‚ท์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ํ›จ์”ฌ ๋” ๋‹จ์ˆœํ•˜๊ณ  ๋” ๋น ๋ฅด๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ curses์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • ํ„ฐ๋ฏธ๋„ ํ˜•ํƒœ๋งŒ์„ ์œ„ํ•ด ๊ธฐ๋กํ•˜์ง€ ์•Š๊ณ ๋„ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹œ์Šคํ…œ์„ ์‹คํ–‰ํ•˜๋Š” curses ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ„ฐ๋ฏธ๋„ ํ˜•ํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์œ ํšจ ์ œ์–ด ๋ฌธ์ž๋ฅผ ์ „์†กํ•œ๋‹ค.

์Šคํฌ๋ฆฐ์ƒท

[ํŽธ์ง‘]

์•„๋ž˜๋Š” curses์˜ ์ผ๋ฐ˜์ ์ธ ์˜ˆ๋“ค์„ ๋‚˜์—ดํ•œ ๊ฒƒ์ด๋‹ค. (์ƒ‰์„ ์ง€์›ํ•˜๋Š” ํ„ฐ๋ฏธ๋„ ์ฐฝ) ๋‰ด์Šค๋ฆฌ๋” tin๊ณผ CD ์ฒ˜๋ฆฌ ์ œํ’ˆ์— ์“ฐ์ธ๋‹ค.

๊ฐ์ฃผ

[ํŽธ์ง‘]
  1. โ†‘ Thomas E. Dickey. โ€œNCURSES - Frequently Asked Questionsโ€.
  2. โ†‘ John Strang, Programming with curses, O'Reilly, ISBNย 0-937175-02-1

์™ธ๋ถ€ ๋งํฌ

[ํŽธ์ง‘]