소켓 통신을 하고, RS232 통신으로 서브모듈을 제어하는 GUI 프로그램을 MVC 로 디자인 가능할까요?
글쓴이: 7287army / 작성시간: 목, 2014/01/16 - 5:25오후
사용자에게 GUI를 제공을 하고 선택되는 메뉴에 따라서 상위(서버급) 프로그램과 소켓통신을 하거나,
Slave로 RS232 방식으로(별도의 프로토콜로 통신) 연결 되어 있는 모듈을 제어 하는 프로그램을 개발 중에 있습니다.
언어는 VS C++로 개발할 예정인데, 아무리 생각해도 MVC 적용이 나오지가 않습니다.
소켓 통신/모듈 통신 기능이 Model에 해당할지, 아니면 control로 가져가야 하는지..
혹은 별도의 프로세스로 구성을 해야 할지 감이 안잡힙니다.
고수님들 조언 부탁드립니다
Forums:
model : logic view : output
model : logic
view : output interface
controller : input interface
고로, 통신 모듈만 봤을 때
socket receive : controller
socket send : view
입니다.
Interface1(GUI)
Interface2(Comm)
Logic
이렇게 구분하면 되겠네요.
그리고 MVC라고 해서 딱딱 나눠지는게 아닙니다.
각각의 MVC 안에서도 MVC로 나눠집니다.
왜냐하면 각 모듈은 인터페이스 in/out과 로직을 거의 언제나 가지기 때문입니다.
제가 보기엔.
UI가 존재하고 사용자 입력이 있으니 이건 그냥 기존대로 뷰랑 컨트롤러가 되면 될것 같고
나머지는 그냥 모델에서. 내부 통신 자체가 유저의 요청에 의해 이루어지는 것이니 말이죠. 통신을 하는 것 자체가 로직인 걸로 보입니다.
해당 프로그램이 외부 통신을 통해 마치 사용자가 제어하는것처럼 동작한다든지 하는 게 아니므로 별 문제 없어보입니다.
이렇게 하면 UI나 유저 입력이 없어도 통신로직만 따로 테스트할 수 있겠죠. 자동화 테스트도 간단히 구현가능하고.. 이게 MVC의 장점 중에 하나라고 알고 있습니다.
그리고 그 모델 안에서 또 다른 패턴을 사용하여 통신 구현을 할 수 있겠고..
결국 패턴이라는게 정답이 있는 게 아니니 몇가지 정리해 보시고 그중에 구현이나 이해가 편한쪽으로 정하면 될것 같네요.
--
댓글 달기