저번 주에 프로젝트 진행하면서 겪었던 View와 Controller 분리에 대해 이야기해보고자 합니다.
MVC 디자인 패턴의 이야기입니다. 최근에 더 다양한 디자인 패턴이 있고 더 개선된 디자인 패턴도 많이 있지만 기본적으로 UI를 만들 때, 조금씩 고려하는 패턴입니다.
딱 이 패턴대로 개발한다기보다는 Model, View, Controller를 구분해서 코드 관리와 코드의 재사용성을 높이자정도 수준입니다만...
저번 주에 인벤토리 기능을 만들면서 실질적인 인벤토리 데이터를 관리하는 스크립트에 인벤토리를 UI에 보여주는 것까지 같이 구현하였습니다. 인벤토리 잘 작동한다고 좋아하던 찰나, 전투 씬에서는 인벤토리를 UI로 보여주지는 않는단 사실이 생각났습니다.
UI로 보여주지 않는 씬에다가 이 스크립트를 적용하면 UI에 인벤토리를 보여주기 위해 선언해주었던 필드와 만들어둔 메서드들은 다 쓸데없이 공간만 차지하게 되는 것이죠. '아차!'싶어서 바로 UI를 보여주는 부분을 따로 스크립트로 만들기 시작하였고, 다행히 금방 분리하였습니다.
어느 씬에서든 인벤토리 데이터만 사용하는 곳에서는 데이터만 사용할 수 있고 UI와 데이터가 모두 필요한 곳에서는 모두 잘 사용할 수 있도록 구현이 잘 되었습니다.
코드의 분리는 중요하다는 것을 또 깨닫게 되었습니다...