UML(Unified Modeling Language)

사용자 삽입 이미지저번주 자격증 시험이 끝나고 프로그래밍에 대해 한창 생각했다.
프로그래머로써 내게 가장 부족한 것, 그리고 본격적으로 다양한 언어를 배우고 포폴을 만들기 전에 공부해야 할 것.
다름아닌 “설계” 였다.

예전에 고등학교 시절 한번 게임개발을 하면서 구조체를 설계해 본 적이 있다. 그리고 20살때 한번 클래스와 프로그램 구조에 대해 설계해본 적이 있다.
그러나 모두 표준에 맞지 않은, 정석적이지 않은 나만의 설계 방법으로 나 이외에 어떤 사람이든 알아보기 힘들고, 솔직히 프로그램을 구현할 때는 단순히 “구조”나 “변수” 정도만 알아볼 수 있을 정도였다.

그래서 설계에 대해서 우선적으로 공부하고자 했다. 물론, 이건 이번에 개인홈페이지를 제작하면서 디자인적인 부분이나 컨텐츠는 완료했지만(그래봤자 프로필과 메인밖에 없지만..) 게시판이나 링크 프로그램 들을 구지 “제로보드”의 도움을 받지 않고 내가 개발할 수 있지 않을까? 하는 취지에서 php(물론 jsp가 나한텐 더 편하긴 하지만..) 를 이용한 웹 어플리케이션을 작성하는 과정에서 설계의 중요성을 인식하고(내가 일전부터 부족했으므로..) 공부하려 하는 것이다.

엇그제부터 보았는데, UML 말로만 들어봤지 실제로 내가 작성해 본 UML은 하나도 없다. 그런데, UML이 개념적으로는 그렇게 어렵지 않다. Use-Case Diagram이니, Activity Diagram, Class Diagram 등.. 어떤 개념인 지는 알겠지만 막상 그려보려면 막히는게 아닌가..

여러모로 알아보니깐 UML을 공부하면서 “디자인 패턴”에 대해 공부하라고 한다.. 디자인 패턴이 뭐일까, 왜 중요할까? 는 아직 모르겠지만, 분명 체계적이고 구조적인 프로그램 설계에 필연적인 도움이 되는 것은 분명하다.

그래서 울 회사 프로그래머에게 추천받은 “GoF의 디자인패턴 이렇게 활용한다” 라는 책을 보려 한다. 원래 오늘 하루동안 “UML과 객체지향 시스템 분석설계” 를 봤는데 개념적인 부분은 확실히 많아서 이해가 잘 갔는데 실제 사례가 너무나도 부족했다. UML은 작은 것이라도 경험해 봐야지 알것만 같다.

이제 나도 노트에서 설계하는 것에서 벗어나, 보다 범용적이고 활용 가능한 프로그램 제작을 위해(아마 이게 프로그래머가 갖춰야 할 기본 스킬 중 하나라고 생각한다.) 설계 등의 방법을 배워야 할 것이라고 생각한다…

공부하면서 배운 것들을 몇몇개 블로그에 작성해 봐야지.. 여기는 나만의 노트니깐… ^^