Featured image of post 31. 웹은 세부사항이다

31. 웹은 세부사항이다

6부 - 세부사항

끝없이 반복하는 추

1960년대 이래로 모든 연산 능력을 중앙 서버에 두는 방식과 모든 연산 능력을 단말에 두는 방식 사이의 일련의 반복되는 진동을 겪어왔으며 웹은 진동 끝 한 점에 있을 뿐이다.

IT 역사 전체로 시야를 넓히면 웹은 아무것도 바꾸지 않았으며, 이러한 진동은 앞으로도 지속될것이다.

따라서 아키텍트로서 이 진동은 핵심 업무 규칙의 중심에서 밀어내야하는 단기적인 문제일 뿐이다.

이러한 진동은 GUI의 변경을 동반하며, 이러한 변경으로부터 애플리케이션을 보호하기 위해 GUI로부터 업무 규칙을 분리해야한다.

요약

GUI는 세부사항이다. 웹은 입 출력 장치의 다른 모습이므로 GUI이며, 이러한 이유로 웹은 세부사항이다.

따라서 아키텍트는 웹을 핵심 업무 로직에서 분리된 경계 바깥에 두어야한다.

애플리케이션과 GUI의 상호작용은 빈번하고 방식도 사용중인 GUI 종류에 따라 차이가 크기 때문에 추상화하려는 시도는 성공할 가능성이 낮아 보인다.

하지만 UI와 애플리케이션 사이에는 추상화가 가능한 또 다른 경계가 존재한다.

  • 업무 로직은 다수의 유스케이스로 구성되며, 각 유스케이스는 사용자를 대신해서 일부 함수를 수행하는 것을 볼 수 있다.
  • 각 유스케이스는 입력 데이터 수행할 처리 과정, 출력 데이터를 기반으로 기술할 수 있다.

완전한 입력 데이터와 그에 따른 출력 데이터는 데이터 구조로 만들어서 유스케이스를 실행하는 처리 과정의 입력 값과 출력 값으로 사용할 수 있기 때문에, 각 유스케이스가 장치 독립적인 방식으로 UI라는 입출력 장치를 동작시킨다고 간주할 수 있다.

이러한 입력 데이터와 그에 따른 출력 데이터로 만들어지는 데이터 구조는 UI와 애플리케이션 사이의 경계를 넘나드는 수단이므로 추상화가 가능한 경계이다.

결론

이러한 종류의 추상화는 만들기 쉽지 않고, 제대로 만들려면 수차례의 반복 과정을 거쳐야 할 것이다.

하지만 이러한 추상화는 가능하며, 변경이 될 요소는 매우 많기 때문에 추상화는 꼭 필요하다.