귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
강좌, 팁, 정보 강좌, 팁, 정보 입니다.
글내용 - 강좌, 팁, 정보
 잡플로우 (Job Flow) 소개
홍환민
(홍환민)
2011-12-17 오후 3:16:00
카테고리: 강좌
5544회 조회



첨부파일 다운로드
잡플로우 비지오 서식.zip
안녕하세요? 민행복 홍환민입니다.

오랫만에 강좌 게시판에 글을 쓰네요.



잡플로우 (Job Flow)는 1995년도에 류종택 님이 만드셨고, 그 이후로 꾸준히 개정되어온 분석, 설계를 위해 사용하는 다이어그램입니다. 일종의 표기법이지요. 순서도, UML 같은 것을 생각하시면 되겠습니다.







[그림] 잡플로우의 예 (출처: http://ryulib.tistory.com/)



저도 최근에 설계에 관심이 생기다보니 UML 공부를 했는데요, UML을 이용한 방법보다 많은 장점이 있다는 결론을 얻었습니다.



"UML을 사용하여 실전에서 어떻게 설계를 할 것인가?" 라는 물음에 답을 주는 책이 있습니다.

바로 "UML, 실전에서는 이것만 쓴다" 라는 책인데요. 유명한 밥마틴 (엉클밥)이 쓴 책입니다.



이 책에서 보면, 동적 분석을 먼저 하라고 합니다.

설계에 있어서 큰 두가지 축이 있다면 바로 동적 분석과 정적 분석(구조 분석) 입니다.



UML 책들에서도 클래스 다이어그램이 먼저 나오고, 객체지향을 처음 접하고 설계를 해보는 시점에서는 어떤어떤 클래스를 만들까를 먼저 생각하고 클래스 다이어그램부터 그려보게 됩니다.

그런데 그것은 그닥 좋은 방법은 아닙니다.



우리가 설계에 대해 아무것도 모른 상태에서 개발을 처음 접하고 개발을 해나갈 때에는 로직을 어떤 순서로 실행할지에 대해서 생각하게 됩니다.



절차지향 프로그래밍에서는 메인함수에서 시작해서 각 문장이 실행되고 때로는 함수를 호출하는 식으로 시간의 순서에 따라 (동적으로) 프로그램의 흐름이 진행되게 됩니다. 또한, 객체지향 프로그래밍에서는 함수 대신에 객체들이 등장해서 객체들의 메서드들을 호출하면서 동적으로 프로그램의 흐름이 진행되게 됩니다.



그러하듯 프로그래밍을 할 때에는 자연스럽게 동적인 흐름을 생각하게 되는 것입니다. 그러므로 설계에 있어서도 동적 분석을 먼저 시작하고 그 과정에서 필요한 클래스들이 도출되고 나중에 이것을 기준으로 클래스 다이어그램을 그릴 수 있게 되는 것이지요.



UML에서는 동적 분석을 위한 표기법으로 "협력 다이어그램"과 "시퀀스 다이어그램"이 있습니다. 그리고 정적 분석을 위한 표기법으로 "클래스 다이어그램"이 있습니다.



보통 이 세가지만 잘 사용해도 UML을 잘 쓰고 있다고 보면 될 것입니다.

이 중에서 협력 다이어그램은 객체 간의 메시지 흐름에 집중하고 있는 다이어그램이며 실제로 이 다이어그램이 가장 중요한 것 같습니다.



왜냐하면, 시스템을 구성하는 객체들이 나와있으며, 그 객체들간의 메시지 흐름 (메서드 호출)과 순서가 표시되어 있으며, 그 메시지 흐름을 통해서 객체간의 의존관계를 파악할 수 있기 때문입니다. 시퀀스 다이어그램도 마찬가지이지만 협력 다이어그램에 비해 표기법이 복잡합니다.



객체지향 설계에 있어서 객체들간의 의존성을 최대한 적게 하고, 유연한 관계를 유지할 수 있게 하는 것이 핵심인데, 코드만 보고는 한눈에 의존성 관계를 파악하기 힘듭니다. 그래서 이를 위한 다이어그램이 그려놓고 보는 것이 필요합니다. 저에게 있어서 "다이어그램을 왜 그리느냐? 한가지만 대봐라." 라고 한다면 현재로서는 "의존성 관계를 파악하기 위해서 그린다" 라고 대답할 것입니다.



위에서 언급했다시피 이러한 의존성을 한눈에 보기 쉽게 해주는 것이 UML에서는 협력 다이어그램, 시퀀스 다이어그램, 클래스 다이어그램이 있습니다.



UML을 이용하지 않더라도, 복잡한 로직을 작성해야 할때면, 가지고 있는 노트에 끄적이던 다른 방법을 사용하던 어느정도 설계에 대한 아이디어를 스케치하게 될 것입니다.
 

잡플로우를 사용하게 되도, UML의 클래스 다이어그램은 그대로 사용합니다. 그렇다면 잡플로우는 어떤 용도일까요? 잡플로우는 UML의 협력 다이어그램과 시퀀스 다이어그램. 즉 동적 분석을 대체할 수 있는 훌륭한 표기법이라고 할 수 있습니다.





일단 단순합니다. 잡플로우를 모르는 사람도 잡플로우를 보면 프로그램이 어떤 흐름대로 진행되는지 알 수 있습니다. 여기에 단순한 몇가지 표기법에 대한 설명을 듣고, 반복해서 사용하다 보면 익숙해 질 수 있습니다.



UML의 협력 다이어그램과 시퀀스 다이어그램을 합쳐 놓은 형태에 가깝고, 좀더 객체간의 메시지 흐름에 집중할 수 있도록 단순화된 형태를 제공합니다.



뭐랄까. 실제 업무를 진행하면서 필요에 의해 만들어지고 다듬어진 형태이므로 실제 개발자들이 업무에 필요한 정도의 분석, 설계에 참 적합하도록 너무 복잡하지도 않고 설계가 힘들 정도로 표현력이 낮지도 않은 표기법입니다.



그러면 어떻게 그리느냐?



툴은 마이크로소프트 비지오를 사용하시면 됩니다. 여기에 비지오용 템플릿 문서 파일과 스텐실 파일 (도형이 들어있는 파일)이 있으면 됩니다. 두 파일은 첨부해 놓겠습니다.



잡플로우 템플릿 문서를 열어서 잡플로우 스텐실들을 이용해서 그리시면 되겠습니다.



스텐실은 다음과 같은 방법으로 추가하실 수 있습니다.



1. 스텐실 파일(잡플로우_스텐실.vss)을 "C:\Users\내계정\Documents\내 셰이프" 폴더에 복사한다.

2. 비지오의 "메인메뉴 > 파일 > 셰이프 > 내 셰이프"에서 "잡플로우_스텐실"을 선택한다.



이제 비지오를 이용해서 어떻게 그리느냐에 대해서는 작성된 문서들이 있으므로 링크로 대신하겠습니다.



류종택의 프로그래밍 강의실

http://ryulib.tistory.com/



Job Flow의 소개

http://ryulib.tistory.com/163

http://ryulib.tistory.com/6



Jow Flow 작성의 기초

http://ryulib.tistory.com/164



JobFlow를 통한 Class만들기

http://gomsun2.tistory.com/166