숫자야구를 만들면서 큰 그림 없이 차례차례 기능을 구현하다보니, 생각보다 머릿속에서 프로그램 구조가 잘 안 잡히고 점점 꼬이는 느낌이 들었다. 그래서 도식을 그리면서 구조를 파악해보기로 했다.
처음으로 그린 도식 |
---|
도식을 그려보고나니 class
로 구현된 기능이 무척 많았다. 이 중에는 struct
로 정의해도 충분한 기능들이 대다수였고, 상대적으로 무거운 class
를 쓸 이유가 보이지 않았다. class
정의가 필요한 기능만 남겨두고 나머지는 struct
로 변경하였다.
코드 변경 후 그린 도식 |
---|
그 다음으로는 복잡한 구조를 개선하였다. 굳이 인스턴스를 선언해서 불러도 되지 않을 것들이 보였는데 살펴보니 모두 UI 관련 요소들이었다. 이 과정에서 여러 구조체와 변수의 이름도 변경하였다. 또한 output이 나오는 기능, 단순히 데이터만 참조하는 기능들을 모양으로 구분하였다.
구조 개선 후 그린 도식 |
---|
코드를 다듬고 도식을 그리면서 구조상 statManager가 함수를 타고 'main - NumberBaseball - strikeAndBall - main' 흐름을 같이 따라가도록 설계를 하게 되었고, 그것을 도식에 표현했다. 또 데이터를 담은 변수도 표시해봤다.
다듬은 구조를 나타낸 도식 |
---|
도식으로 나타내면서 내 프로젝트의 구조를 쉽게 파악할 수 있었다. 다음에는 프로젝트 초기 때부터 간단하게라도 그림을 그리고 시작하면 흐름을 잘 따라갈 수 있을 것 같다. 튜터님에게 도식을 보여줬더니 Core
와 UI
를 나눠서 생각할 때 UI
는 디자인에 의해 유기적으로 변할 수 있으니, 모든 것을 그리기보다는 목적에 따라서 input
과 output
에 집중해 차트를 그리면 도움이 될 것이라고 말씀해주셨다. 또, 다른 튜터님은UML
, 플로우차트
, 클래스다이어그램
, 시퀀스다이어그램
, 의존성(화살표)
등 좋은 키워드를 많이 알려주셨다. 다음에는 나만의 도식이 아니라 상대방도 쉽게 이해할 수 있는, 규격에 맞는 차트를 그려봐야겠다.