|
⇤ ← Revision 1 as of 2026-06-10 11:48:48
Size: 7013
Comment:
|
← Revision 2 as of 2026-06-10 11:48:56 ⇥
Size: 6971
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 2: | Line 2: |
| #acl -All:read AdminGroup:read,write,delete,revert,admin | #acl +All:read |
2026-06-10 (수)
소프트웨어 개발 방법론이나 이런 것들 보면은 보통은 뭐 플래닝하고 리콰어먼트 애널리시스 하고 디자인하고 인플리멘트하고 테스트하고 디플로이먼트하고 메인테인 하는 뭐 그런 것들을 얘기를 하는데요.
그것도 그럴 수 있죠. 그런데 그것도 그럴 수 있어요.
이게 또 사람의 어떤 커그니션을 보면 제가 얘기했던 것 중에 이렇게 기억 떠올려 보면은,
멈춰서서. 스탑. 이게 뭐지? 뭔가 바로 그걸 진입하기 전에 이게 뭐지? 하는 거죠. 습관적으로 뭔가 안다고 착각하지 않고 그리고 그래서 멈춰서서.
그리고 바라보고. 두 번째는 바라보고. 그거는 넌-저지멘탈 옵저베이션인 거예요. 그러니까 이거를 문제다, 버그다, 피처다 이렇게 가치 판단하지 않고 가치 평가를 하지 않고 일단은 넌저지멘탈 옵저베이션 평가하지 않고 인지하는 거죠. 아 이렇구나. 그래서 뭐 이게 문제다, 버그다가 아니라 이런 현상이 있구나. 이런 상황이 있구나. 이렇게 그냥 있는 팩트, 있는 현상들을 넌저치멘탈 옵저베이션 하는 단계가 있습니다.
그리고 나서는 그러면 이상한 건 어떤 거인 거지? 인터프리트를 해야겠죠. 해석을 해야겠죠. 아 이런 현상인 거구나. 이런 의미인 거구나. 이런 거구나.
그다음에 시그니피컨스를 판단해야 될 거예요. 그럼 이거는 얼만큼의 품을 들여야 하는가? 지금 꼭 해야 하는가? 지금 해야 하는 게 아니라면 간과해도 되는가? 아니면 한다면 어느 디그리로, 어느 정도로 해야 하는가? 그거를 판단하는 게 필요하겠죠.
그다음 단계는 자 이게 뭐 필요하다 하기로 했다라고 칩시다. 그러면은 이제 프로블럼 스페이스, 프로블럼 도메인을 탐색을 합니다. 그럼 이게 뭐인 거지? 이게 뭐지? 이것들을 이루는 어떤 요소들은 뭐가 있지? 누구의 문제이지? 제럴드 와인버그가 아 유어 라이트 온에서 이야기했듯이 또 문제에 대해서 깊이 이해해야 될 거예요. 그리고 나서는 이제 그러면 그 프로블럼과 해결하는 그 목적이 뭐냐? 골 어널리시스라고 할 수도 있겠고요.
그러면은 다음으로는 이제 솔루션 스페이스를 익스플로어 해야겠죠. 탐색해야겠죠. 그럼 어떠어떤 대안들이 가능한지? 어떠어떤 대안들이 있지? 요런 것들을 해야 될 거고요. 그러면은 여러 대안들이 떠오를 거예요. 탐색할 수 있을 거예요. 여기에서는 리서치가 필요할 수 있어요. 프로블럼 도메인에서도 프로블럼 스페이스에서도 리서치가 가능해요. 이게 보통 우리가 겪는 문제들은 전 세계에서 동서고금을 통틀어서 나만 겪는 문제가 아니기 때문에 대부분은 많이 알려진 문제들, 많이 겪었었던 문제들을 나만 내가 모르는 경우가 많아요. 그래서 이게 티피컬리 전형적으로 이게 어떤 문제인 거지? 이거와 비슷한 거는 뭐지? 그리고 이게 또 리얼 월드 실제 세계에서의 어떤 우리가 이렇게 경험할 수 있는 것들을 유비해서 보는 것도 좋아요. 이거를 메타포어라고 할 수도 있고요. 그래서 꼭 IT 영역에서만 생각하지 않아도 되고 또는 이제 IT 영역에서 전통적으로 또는 클래시컬한 토픽일 수도 있죠. 그리고 솔루션 역시도 웰노운 또는 베스트 프랙티스 솔루션이 있는 경우들도 적지 않아요. 그러면은 이게 어떠한 종류의 문제인가를 어떻게 브라이밍을 하느냐에 따라서 솔루션도 달라질 수 있죠. 그리고 솔루션도 되게 다양하게 다양한 층위가 있을 거예요. 지금 당장 필요한 솔루션 또는 좀 더 긴 호흡으로 필요한 솔루션 그리고 이게 뭔가 저는 이런 걸 좋아하는데 약간 임시변통적인 솔루션은 별로 좋아하지는 않고 그렇다고 뭔가 항상 메킷 라이트 하는 것만 좋아하지는 않고요. 이런 거 좋아하는데 긴 호흡으로 멀리 봤을 때 이 모습이 맞다. 이 모습이 맞다. 이 형태가 맞다. 이 구도가 맞다. 그런데 그래서 think globally 하고 하지만 act locally 지금 당장 인플리멘트 할 것은 요것까지만 해도 뭔가 완결성이 있다. 작지만 단단하게. 근데 이게 긴 호흡으로 멀리 갈 그 방향에 위배되지 않고 뭔가 갈지자로 이쪽으로 동분서주하는 느낌은 아닌 거예요. 어차피 그 먼 길을 저 방향으로 가기 위해서 밟아가야 될 어떤 중간 과정으로 그런 경우가 제일 좋죠. 그래서 1~10 단계가 있다면은 이번에는 1단계까지만 가도 충분하다. 그리고 또 이게 1단계까지는 가야 돼 라고 생각하더라도 어 0.5단계는 없을까? 뭐 이런 것도 쪼개서 보는 것도 좋고요. 자 그래서 그렇게 그러면 요것까지 하자.
이 솔루션을 하자라고 선택을 하는 것도 되게 현명한 판단이 필요합니다. 그럼 지금은 어느 솔루션을 택할 것인가. 그러면 이 솔루션을 택하자라고 선택을 했다 합시다.
그러면 그거를 실행을 어떻게 할 것인가를 또 설계를 해야 돼요. 그래서 기존 거를 깨뜨리지 않는 단계 단계의 수준으로 되게 부드럽게 부드럽게 넘어갈 수 있도록 심리스 그러니까 이음새가 매끄럽도록 깨지지 않도록 찢어지지 않도록. 그래서 마틴 파울러가 이런 브레이킹 체인지 하지 않는 이런 순서를 되게 중요하게 얘기를 했죠. 아까 우리 만들었던 백워드 컴패러블 체인지 이것도 어떻게 보면은 이 과정이라고 볼 수 있을 것 같기도 하고요. 그래서 이제 실행을 그리고 당장 지금 당장 시작할 수 있는 작은 스텝에서 시작해서 그래서 너무 방대한 거 하지 말고 지금 당장 시작할 수 있는 것들로부터 시작해서 만들고 적용하고 또는 만들고 디플로이하고 만들고 디플로이하고 요렇게 해나가면은 되게 부드러운 과정들이 될 겁니다.
그렇게 이제 솔루션을 적용을 했다 하면은 다시 변화가 생기겠죠. 새로운 뭔가가 생기겠죠. 그럼 다시 거기에서 어떤 상황들이 또 생길 거고요. 그럼 스탑하고 이건 뭐지? 요 사이클로 돌아가는 겁니다.
그래서 SDLC 소프트웨어 디벨로프 라이프 사이클이라는 어떤 너무 공학적인 측면 말고 이런 사람의 인지적인 그런 프로세스로 요거를 생각하고 스테이지를 마련해 볼 수도 있어요.
