DATOR

개발 혹은 설계의 방법론(What- Why- How)

Document URL : http://www.dator.co.kr/292249
개발 및 설계 | Posted on May 09th, 2012 at 22:34 by 밀오 | 조회수 : 13794

1. 언어와 생각


국어에서의 문법은 다음 한 단어으로 요약할 수 있습니다.

 - 육하원칙


영어나 중국어등의 다른 언어도 크게 다르지는 않은 것 같습니다.

 무언가를 물어봐야 할때, 사용하는 의문문을 보면,

 영어나 중국어나 우리말과 유사한 의문문을 갖고 있습니다.


즉, 아래 6가지 입니다.

한: 누가, 언제, 어디서, 무엇을, 어떻게, 왜

영: Who, When, Where, What, How, Why

중: shei, sheme-shihou, shenme-difang, shenme, zenme, wei-shenme


때문에, 사람의 생각을 언어로 표현하자면,

거의 대부분의 내용을 저 6가지 항목으로 분류할 수 있습니다.


개발과 설계,

이 또한 사람의 생각을 반영해서 뭔가를 만들어내거나 변경하는 작업입니다.

위 6가지 항목과, 개발/설계의 방법을 관련지어 생각해 보자는게, 이번 글의 목적입니다.


2. 개발/설계의 순서


1단계 - 무엇(What)

개발이나 설계는 사람의 요구를 반영하기 위한 방법 중의 하나입니다.


가령,

이러이러한 일을 Machine이 대신하게 해주세요. 라는게 개발이 될 수 있고,

이러이러한 일을 Machine에서 할 수 있게 해주세요, 라는게 설계가 될 수 있습니다.


때문에, 일반적인 경우, 

'무엇을' (해야 하는가) 에 해당하는 항목이, 가장 먼저 표면에 드러납니다.


2단계 - 왜(Why)

'무엇' 이 드러났다면, 담당자나 PM의 고민이 시작됩니다.


'무엇'을 해야하나 말아야 하는 근본적인 문제부터 시작해서,

'무엇'을 해서 얻고자 하는 바가 뭔지를 제대로 파악해야, 나중에 '이 산이 아닌가보다'고 후회하는 일을 줄일 수 있습니다.


예를 들어,

<Mac용 화면을 하나 그려주세요>라는 요청이 들어왔다고 했을 때,


이 사람의 의도는,

Mac에서 사용할 때, 주변 UI와 조화된 화면을 원하는 것일 수도 있고,

일반 PC에서 사용할 때, Mac을 사용하는 것과 같은 기분을 느끼고 싶다는 것일 수도 있습니다.


때문에, 다른 것에 우선해서,

'왜' 에 해당하는 항목을 알아볼 필요가 있습니다.


3단계 - 어떻게(How)

'무엇' 과 '왜' 가 드러났다면,

업무의 주제와 당위성 및 업무 목표가 정해진 상태입니다.


이제 '어떻게' 그 길을 가느냐가 과제로 남았습니다.


원하는 목표를 달성하기 위한 길은 수없이 많습니다.


예로, 해외 여행을 간다면,

비행기를 타고 갈 수도 있고, 배를 타고 갈 수도 있고, 이것 저것 섞어서 타고 갈 수도 있습니다.

각각, 비용과 소요 시간이 다르고, 중간 과정 또한 달라집니다.


마찬가지로, 프로그래밍을 하거나, DB 설계를 할 때도,

다양한 방법중 한가지를 선택해야 하는 분기점을, 자주 마주치게 됩니다.


그 중에, 어떤 방법을 선택할지에 대해서는,

역시 육하원칙에 따라 다시 세분화 할 수 있습니다.


우선, 무슨 방법들이 있는지를 알아보고,

업무 목표인 '왜' 에 가장 부합하는 방법을 선정해야 합니다.

 

또한, 그 방법을 시행하려면  '무엇'인가가 더 필요한 상황이 될 수 있고,

이는 순환 참조와 같이 '왜', '어떻게'를 계속 필요로 합니다.


즉, '어떻게'를 선정하기 위해서,

'무엇' 과 '왜' 를 반복해서 확인하는 작업이 필요합니다.

이에 대한 자세한 건, 다른 글로 또 정리해 보겠습니다.


4단계 - 누가, 언제, 어디

'무엇'과 '어떻게' '왜' 에 대한 사항이 정해졌다면,

빠진 내용은 없는지, 좀더 구체화 해볼 필요가 있습니다.


'누가', '언제', '어디' 에 대한 내용은 곳곳에 나타납니다

 

누구를 위해 이 업무를 하는 것인가 - 대상(목표) 선정 ('왜'의 하위 항목)

누가 이 업무를 담당 할것인가.   - 담당자 선정 ( '어떻게'의 하위 항목)


언제까지 해야 하는가.  - 기한 ( '어떻게'의 하위 항목)

이 특정 업무는 언제 해야 효율적이며, 언제 할 수 있고, 할 수 없는가. - 업무 프로세스 ( '어떻게' 의 하위항목)


이 결과물/스키마/데이터/코드 는 어디에 저장하고, 어디에서 찾을 것인가. - Architecture ( '어떻게' 또는 '왜' 의 하위항목)

등등..

 

1~3 단계에서 정했던 사항들이, 이 3가지 항목으로 좀더 구체화 될 수 있습니다.


5단계 - 한다 or 이다 (Do or Be)

이제 마지막 단계인 실행이 남았습니다.

위에서 언급하진 않았지만, 사실 모든 일의 귀결은 실행에 있습니다.


6가지 항목이 모두 정해졌다면, 그 결과로

 

분석의 경우: ...이었다. (As Is)

설계의 경우: ...이어야 한다 (To Be).

개발의 경우: ...를 한다. (Do)

 

등등의 결론으로 연결될 것입니다.


3. 정리


정리하면, 큰 줄기는,

'무엇을' => '왜' => '어떻게' 로 흘러간다고 볼 수 있습니다.

'What- Why- How' 라고도 불리우는 유명한 말이죠 ㅎㅎ


그리고, 큰 줄기가 정해지면,

각각을 상세화 하기 위해, 하위에도 6가지 항목이 필요해집니다.

하위의 하위 항목이 더 필요할 수도 있고요.


또한 업무에 따라서,

'...했다' 또는 '...이 되었다' 등의 결과물이 나오게 됩니다.

 

마지막으로 단어를 쭉 연결하면

무엇을 분석 해야했고, 이런 이유로 해야했으며, 이러이러한 이유로 무슨무슨 방법을 이러이러하게 사용하니,

(결과물) 이었다.

무엇을 설계 해야했고, 이런 이유로 해야했으며, 이러이러한 이유로 무슨무슨 방법을 이러이러하게 사용하니,

(결과물) 이 되어야 한다

무엇을 개발 해야했고, 이런 이유로 해야했으며, 이러이러한 이유로 무슨무슨 방법을 이러이러하게 사용해서,

(결과물) 을 했다.

 

그림으로 간략화 해보았습니다.

 

개발 혹은 설계의 방법론.png

 

 

여기까지 읽어주셔서 감사합니다. ^^

Tagged :
   

Comments : 1

Author kingdom99
2012.09.03 at 11:13:08
댓글

좋은 글이네요.

무엇을 할때 목적 또는 목표를 정하기위해 생각을 정리할 때 좋을것 같아요^^