GUI 프로그램을 만들 경우에...
GUI 프로그램을 만들 경우에 처음부터 GUI로 만드는 방법과 코어를 CLI로 만들고 GUI를 덮어씌우는 방법의 장단점이 어떻게 될까요? 여기서 만드려는 프로그램은 사용자로부터 데이타를 입력 받아서, 적절히 처리한 후, 그 결과를 출력하는 프로그램입니다.
별로 복잡한 프로그램은 아닙니다. 예를 들면 사용자가 그래프를 마우스 등으로 그리면 그 그래프의 최단 거리를 찾아 주는 것 같은 방식입니다. (진짜로 이 문제를 푸는 것은 아니고, 그냥 예를 든 것입니다.) 굳이 GUI가 필요한 문제는 아닐 수도 있지만, GUI를 지원하는 것이 필요할 것 같습니다.
제가 생각해 본 코어와 GUI를 분리하는 방법의 장점은
1. 코어는 GUI 라이브러리의 라이센스의 영향을 피할 수 있을 것이다(?).
2. 많은 데이타에 대해 batch 실행이 가능하고,
3. 다른 프로그램의 출력과 연동 시키는 것이 가능하다.
4. 뭔가 설계를 고민한 흔적이 있어 보인다(???).
단점은
1. 괜히 프로세스의 수가 늘어난다.
2. 성능의 문제나 신뢰성의 문제가 있을지도 모른다(?).
제 생각의 오류나 빠트린 중요한 장단점은 뭐가 있을까요?
그리고 만약 분리하기로 결정했다면, GUI와 코어를 어떻게 연결시키면 좋을까요?
설마 exec("...")를 쓰는 건 아닐테고, IPC를 써야 할 것 같은데 제대로 써 본 경험이 없습니다.
절대로 자세히 설명해 주실 필요는 없고요, 방향만 가르쳐 주시면 찾아서 공부하겠습니다.
핵심 기능을
핵심 기능을 담당하는 부분을 라이브러리로 빼고, CLI및 GUI용 실행파일은 말그대로 인터페이스만 짜는 방법도 있겠지요.
그러면 언급하신 단점은 없어집니다.
아주 적절한 bottom-up
아주 적절한 bottom-up 이군요.
GUI의 연결은 가능하면 파이프처럼 쉽고 단순한 방법으로 하는게 좋을 것 같습니다.
Qt를 쓴다면 QProcess를 활용해도 되겠군요.
------------------------------
How many legs does a dog have?
------------------------------
How many legs does a dog have?
엔진 부분을 so|dll 로
엔진 부분을 so|dll 로 만들고,
CUI, GUI 로 씌우는건 어떨까요?
아니면 GUI 프로그램이지만 명령줄 실행도 가능한건 어떨까요?
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/
https://xenosi.de/
두 process로 나눈다면,
두 process로 나눈다면, 어느 한 쪽이 문제를 일으켜도, 살아남을 수 있다?는 장점이 있습니다.
상황에 따라 불가능할 수도 있겠지만, GUI가 죽으면, CUI가 다시 살리는 등의 작업을 할 수도 있겠죠.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기