모듈러 디자인

Modular design

독립적으로 만들어진 표준 단위(모듈)를 다르게 조합해 여러 제품 구성을 만들어내는 설계 방식.

다른 이름: Modular system모듈화 설계
···
html
<div class="mod-cap"></div>
css
.mod-cap{position:absolute;left:0;right:0;bottom:6%;text-align:center;font-size:clamp(9px,2.4vmin,13px);color:#f1f0eccc}
js
import * as THREE from 'three';
import { RoundedBoxGeometry } from 'three/addons/geometries/RoundedBoxGeometry.js';
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setPixelRatio(Math.min(devicePixelRatio, 2));
document.body.appendChild(renderer.domElement);
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x0d0d12);
const camera = new THREE.PerspectiveCamera(42, 1, 0.1, 100);
camera.position.set(3.6, 2.6, 5.4);
const geo = new RoundedBoxGeometry(0.92, 0.92, 0.92, 3, 0.07);
const colors = [0x5b5bf7, 0xf25c8a, 0x18c29c, 0xffb648];
const cubes = colors.map((c) => new THREE.Mesh(geo, new THREE.MeshStandardMaterial({ color: c, roughness: 0.5, metalness: 0.1 })));
cubes.forEach((m) => scene.add(m));
const key = new THREE.DirectionalLight(0xffffff, 2); key.position.set(4, 5, 4); scene.add(key);
scene.add(new THREE.AmbientLight(0xffffff, 0.55));
const TOWER = [[0,0,0],[0,1,0],[0,2,0],[0,3,0]];
const SHELF = [[-1.5,0,0],[-0.5,0,0],[0.5,0,0],[1.5,0,0]];
const cap = document.querySelector('.mod-cap');
let phase = 0;
function resize() { renderer.setSize(innerWidth, innerHeight); camera.aspect = innerWidth / innerHeight; camera.updateProjectionMatrix(); }
addEventListener('resize', resize); resize();
const CYCLE = 3200;
renderer.setAnimationLoop((t) => {
  const cyclePos = (t % (CYCLE * 2)) / CYCLE;
  const toTower = cyclePos < 1;
  const local = toTower ? cyclePos : cyclePos - 1;
  const ease = local < 0.5 ? 4 * local ** 3 : 1 - Math.pow(-2 * local + 2, 3) / 2;
  cubes.forEach((mesh, i) => {
    const from = toTower ? SHELF[i] : TOWER[i];
    const to = toTower ? TOWER[i] : SHELF[i];
    mesh.position.set(from[0] + (to[0] - from[0]) * ease, from[1] + (to[1] - from[1]) * ease, from[2] + (to[2] - from[2]) * ease);
    mesh.rotation.y = t * 0.0003;
  });
  cap.textContent = toTower ? 'same 4 modules → tower' : 'same 4 modules → shelf';
  camera.lookAt(0, 1, 0);
  renderer.render(scene, camera);
});

모듈러 디자인은 제품 하나를 통째로 설계하는 대신, 서로 규격이 맞는 독립 단위를 만들어두고 그 단위를 얼마나·어떻게 조합하느냐로 다양한 결과물을 만듭니다. 대표적인 예가 조립식 선반 시스템입니다 — 같은 규격의 큐브 모듈 4개를 쌓으면 좁은 타워형이 되고, 옆으로 늘어놓으면 낮고 넓은 선반이 됩니다. 모듈 하나하나를 새로 디자인할 필요 없이 배치만 바꿔서 완전히 다른 제품 라인업이 나옵니다.

이게 가능하려면 모듈 사이의 접합부(인터페이스)가 표준화돼 있어야 합니다 — 같은 핀 배열, 같은 체결 방식, 같은 하중 규격. 이 표준을 한번 정하고 나면 새 모듈을 추가하는 것도, 기존 모듈 하나를 업그레이드하는 것도 전체를 다시 설계하지 않고 그 모듈만 교체하면 됩니다. 그래서 모듈러 디자인은 초기 설계 비용은 높지만(표준 인터페이스를 잘 정의해야 하므로), 이후 라인업 확장·수리·업그레이드 비용을 크게 낮춥니다.

디지털 제품의 컴포넌트 기반 UI(디자인 시스템의 버튼·카드·모달 등 재사용 컴포넌트를 조합해 다른 화면을 만드는 것)와 원리가 동일합니다 — 표준화된 인터페이스(props, 스타일 토큰)를 가진 독립 단위를 조합해 전체를 구성한다는 점에서, 모듈러 디자인은 산업 디자인 쪽의 원조 격입니다.

언제 쓰나

한 라인업 안에서 여러 크기·구성을 내야 하거나, 부분 업그레이드·수리가 잦을 제품을 설계할 때.