전에 작업하던 C언어 내용과는 별개로 재미를 붙이기 위해서라도 좀 해야 할 거 같아서 추가로 시작해봅니다. ㅇㅂㅇ
일전에 DOS를 사용하던 분들은 아시겠지만, MC(Midnight Commander)라는 것을 이용하여 콘솔 화면에서도 GUI 처럼 화면을 이리저리 보여주고 방향키로 선택 커서를 옮겨 다니고, 화면에 단축키 처리를 할 수 있던 녀석이 기억 나실지 모르겠습니다. 도스 환경에서는 MDrill, 좀 근래에 썼던 사람들은 mdir이라고 아실텐지… (나이 인증 아닙니다.)
이런 비슷한 녀석이요.
당연히 터미널 시스템에서 텍스트 기반으로 쓰던 시스템 환경에서도 화면에 보이는 기술이 중요하다는 것을 알고 있기 때문에, 이런 기반의 기술을 내놓게 됩니다. 바로 Unix System V ver 4.0에 있던 curses라는 기능입니다. 이 기능을 GNU에서 공개해서 어디서든 쓸 수 있도록 한 것이 바로 ncurses입니다.
즉, ncurses 는 콘솔 화면에서 사용자가 이용하기 쉽도록 사용자 친화적인 콘솔 윈도우 화면을 만드는 데 이용되는 라이브러리입니다. 메뉴 바를 제어하거나, 키보드 입력을 돕거나, 윈도우를 띄워주는 그런 기능들을 합니다.
당연히 이런 기능들을 쉽게 이용할 수 있도록 라이브러리화 되어 있고, 함수로도 구현되어 있기 때문에 적절하게 사용하면 됩니다. 그렇다고 해서 뭐 그렇게 큰 환경이 필요한 게 아닙니다. 터미널로 접속 가능한 리눅스만 있으면 충분히 가능합니다.
C언어를 진행하다 보면 지속적으로 물어보는 것이 “이거 어떻게 써요?” 하는 겁니다. 리눅스 시스템 프로그래밍 하는 건 어느 정도 알겠고, 입출력 하는 프로그램이야 당연히 알겠고, 장치 드라이버 짜는 것까지는 알겠는데, 더 이상 어떻게 쓸 곳 없냐고 물어보더군요. 그래서 C 언어를 리눅스에서 프로그래밍하는 것과는 별개의 과정으로 이 과정 또한 조금씩 다뤄보려 합니다. C를 할 줄 안다면 어렵지 않습니다. 오히려 더 좋은 길잡이가 될 수 있으면 좋겠군요.