안녕하세요?
제가 전에는 연습장에 프로그램의 흐름, 클래스 등등을 대충 뚝딱뚝딱 그려넣고 코딩을 시작해도
별 무리가 없었습니다.
그런데 요즘에 만들고 있는 프로그램들은 규모가 조금씩 커지기 시작하고 있는데요,
(그래봤자 혼자 만드는 프로그램이라 그렇게 큰 정도는 아닙니다 ^^; 2000~4000줄 정도?)
전에 하던 방식대로 대충 생각해놓고 코딩을 시작하니 함수 하나의 크기가 무지막지해지고
switch 문마다 딸린 문장도 많아지고, 중복된 코드(비슷한 기능인데 약간씩만 다른...)도
너무 많아지더군요. 클래스들끼리 서로 의존도가 너무 높아지기도 하구요.
그래서 프로그램은 나오긴 했지만 정말 만들고 나서도 '이건 아니다-_-' 라는 생각이 들었습니다.
규모가 전에 만들던 것들과 차이가 생기다 보니 제대로 된 설계를 하고 코딩을 해야 겠다는
것을 뼈저리게 느낍니다.
그런데 막상 설계... 이거 어떻게 공부를 해야 하는 것인지를 모르겠습니다.
디자인패턴, 리팩토링 이런 책들을 좀 읽으면 설계를 잘 할 수 있을까요?
(집에 위의 두 책이 있기는 하지만 읽어봐도 '이런 방법이 있는 건 알겠는데 어떻게 써먹지?' 혹은
'이런 방법은 왜 있는 거지?' 이런 생각만 들더군요)
그냥 계속 만들고 뿌시고 경험(혹은 삽질)만이 왕도일까요?-_-
어찌해야 설계를 잘 할 수 있을지에 대한 고민 반 질문 반 글을 올려봅니다.
답변 부탁드려요~
P.S. 주로 자료를 담고 있다가 자료에 대한 액세스를 제공하는 클래스가 있을 때,
그 자료에 대한 화면출력이나 화면입력을 담당하는 클래스는 따로 만드는 게 좋은 것인가요?
이렇게 만들어 보았는데 화면입/출력 클래스가 자료를 담고있는 클래스를 속속들이 알아야
하는 문제가 있더군요.
그렇다고 자료를 담고 있는 클래스들이 알아서 자기들의 정보를 화면에 출력하게 하는 방법은
좀 이상한 것 같구요.
그래서 자료를 담고 있는 클래스를 전문적으로 관리하는 클래스를 만들고,
화면입/출력 클래스는 최대한 독립적으로 만들어 관리클래스가 이 화면입/출력 클래스를
이용하게 했는데 이렇게 되면 관리클래스가 자료를 담고있는 클래스에 대해서 속속들이
알아야 하는 단점이...
아 설계! 어렵습니다 ;ㅁ;
|