모듈형 설계에서 모듈의 독립성을 유지하려면 모듈 간 인터페이스를 표준화해야 한다고 합니다. 각 모듈의 설계 주제와 설계 포인트가 다르더라도 모듈 간의 연결 관계, 즉 인터페이스를 표준화하여 상호 영향을 방지해야 합니다. 그러나 모듈 간 인터페이스를 표준화할 때 염두에 두어야 할 사항이 있습니다. 이러한 이유로 인해 모듈형 설계를 적용한다고 해서 반드시 제품 특성이 향상되는 것은 아니라는 점을 명심하는 것이 중요합니다. 1. 모듈 간 인터페이스 표준화는 지속성과 다양성을 고려해야 합니다. 모듈간 인터페이스를 표준화하기 위해서는 표준화 결과가 인터페이스가 연결된 모듈의 수명보다 길어야 한다. 표준화를 위해 열심히 노력했지만 모듈을 설계할 때마다 변경된다면 표준화의 의미가 없으며 모듈의 독립성을 유지하여 달성하고자 하는 공용화, 재사용, 결합의 효과를 얻을 수 없습니다. . 따라서 인터페이스를 표준화할 때에는 시계열을 활용해야 하며, 성격상 다양한 모듈의 조합이 가능한 지속성과 다양성의 특성을 갖추어야 합니다. 그렇기 때문에 지금은 당연히 불필요하지만, 미래를 위해 여지가 만들어지는 경우도 있습니다. 예를 들어 소프트웨어 모듈을 캡슐화하고 이에 액세스하기 위한 인터페이스인 함수를 정의한다고 가정해 보겠습니다. 함수는 곧 외부 모듈과 해당 소프트웨어 모듈 사이의 인터페이스가 될 것이며 함수 이름, 매개변수 데이터 유형, 매개변수 이름, 반환 값 등은 인터페이스 구성요소가 될 것입니다. 그러나 모듈의 기능이 변경될 수 있으며, 기능 설정이 발생할 수 있습니다. 이를 위해 현재는 필요하지 않지만 앞으로 필요할 수 있는 매개변수에 대한 예비 매개변수를 미리 만들어 둡니다. 이는 인터페이스의 지속성을 높이기 위한 것입니다. 이를 수행하지 않을 경우 모듈 변경에 따라 여러 버전의 인터페이스 기능이 생성될 수 있으며, 이전 버전을 사용하지 않도록 별도의 설명문을 표시합니다. 이 여유 공간은 지속성을 위해 사용됩니다. 또한, 다양한 용도에 대한 범용성을 확보하기 위해 증가되었습니다.2. 인터페이스를 단순화하기 위해 복잡성이 내부적으로 전달됩니다. 모듈 간 인터페이스를 표준화하려면 먼저 모듈 간 인터페이스를 단순화해야 합니다. 원래 복잡한 인터페이스를 단순화하기 위해 불필요한 인터페이스를 차단하고 인터페이스 결합 강도를 낮추는 등의 조치를 미리 취할 수도 있지만, 결국 시스템으로 작동하는 데 필요한 연결 관계를 완전히 없앨 수는 없다. 이러한 상황에서 모듈 간의 인터페이스를 단순화하면 기존의 복잡성이 모듈 자체로 이전됩니다. 즉, 전체 시스템의 복잡도가 동일한 경우, 모듈간 연결의 복잡도를 줄이기 위해서는 이를 높이는 방법이 있다. 이 과정에서 모듈 자체의 물리적, 논리적 크기는 자연스럽게 증가한다. 예를 들어 전반적인 운영을 담당하는 영역(메인섹션)과 통신을 담당하는 영역(통신섹션)을 하나의 보드에 설계하였습니다. 하지만 주요 부분은 제품마다 새로 개발해야 하고 세대 변화에 민감한 반면, 커뮤니케이션 부분은 제품에 관계없이 거의 동일해 여러 세대에 걸쳐 사용할 수 있는 공통 영역이었다. 하지만 단일 보드로 구성되어 있었기 때문에 주력 제품의 변동성에 맞춰 각 제품별로 새로운 제품을 개발해야 하는 상황이었습니다. 이러한 상황을 개선하고 통신부 공유 및 재사용을 위해 메인PCB와 통신부 PCB를 분리하였습니다. 그런 다음 두 개를 커넥터로 연결합니다. 이 상황의 장점은 메인 PCB를 새로 개발하더라도 통신 PCB를 하나만 제작해 공유/재사용할 수 있다는 점이다. 그러나 단점은 무엇입니까? 예전에는 하나의 보드로 만들어졌기 때문에 메인부분과 통신부분의 연결이 복잡해도 문제가 되지 않았습니다. 어쨌든 이것은 보드에서 일어나는 일입니다. 다만, PCB를 분리한 후 두 개를 커넥터로 연결하는 경우에는 커넥터를 통해 전송되는 데이터를 미리 표준화해야 한다. (위에서 언급한 여유 공간 문제가 발생할 수 있습니다.) 둘 사이의 연결 관계는 커넥터를 통해 단순화되고 표준화될 수 있지만, 동시에 본체와 통신 장치 내부는 더욱 복잡해질 수 있습니다. 과거에는 직접 연결 방식으로 통신부 내 특정 영역에 직접 연결하거나 구성 요소를 생략하는 등 다양한 옵션이 있었지만 이제는 커넥터별로 연결해야 하므로 내부 복잡도가 높아질 수 있다.3 . 모듈을 통합할 때 중복성을 제거할 수 있었지만 중복된 기능은 모두 유지되어야 합니다. 원래 한 팀이었던 마케팅과 영업 기능이 두 팀으로 나뉘어졌다고 가정해보자. 이전까지는 마케팅 담당자와 영업사원 간의 협의를 통해 유기적으로 업무를 처리했으나, 이제는 팀이 바뀌면서 지정된 연결 채널을 통해 정해진 업무 절차에 따라 협업하여 일하는 방식으로 바뀌었습니다. 즉, 팀이 나누어짐에 따라 팀 간의 업무 방식(인터페이스)이 표준화되는 것입니다. 이렇게 팀이 나뉘어지면서 과거 마케팅, 홍보 기능을 공유했던 것들이 늘어나게 된다. 칸막이를 만들어 두 팀을 나누고, 예산을 나누고, 예산담당자를 마케팅홍보팀으로 나누고, 총무부를 나누고, 꼬마걸이라면 화장실과 욕실 관리도 나누어져 있습니다. 가장 중요한 것은 두 명의 팀 리더가 있다는 것입니다. 과거에는 한 팀에 두 가지 기능이 있었을 때에는 팀이 나뉘어질수록 공유하는 것이 늘어났다. 모듈 구분도 마찬가지다. 하나의 모듈로 기능하던 부품을 두 개의 모듈로 나누면 부품 수가 늘어납니다. 그것은 증가할 것이다. 모듈로 나누어질수록 모듈의 합은 더 커집니다.

이 세 가지 이유 때문에 모듈화로 인해 대상 시스템이나 제품의 무게와 부피가 증가할 수 있다고 합니다. 상황을 고려해도 얻을 수 있는 편익이 크다면 모듈화를 활용할 수도 있겠지만, 그렇지 않을 경우 시스템/제품보다는 경쟁력에 해를 끼치는 상황이 될 수 있다는 점을 명심해야 한다.이미지 제공: Clker-Free – Pixabay의 벡터 이미지
모듈러 아키텍처 김진회 저자 출판한온 2022.04.25 출간. 모듈화 전략 저자 김진회 출판한온 출판일 2018.01.08. 모듈러 디자인 저자 김진회 출판한온 출판일 2016.01.10.