오진수의 작업실
 · 프로그래밍

인테리어 설계 SaaS 개발기 1

소프트웨어 개념 정의와 후회 어린 아키텍처

인테리어 설계 SaaS란?

작년부터 인테리어 설계 SaaS를 개발해 왔습니다. 그렇지만 일단, 인테리어 설계 SaaS가 무엇을 가리키는 걸까요?

우선 SaaS는 Software as a Service의 약자입니다. 보통은 컴퓨터에 직접 설치할 필요 없이 웹으로 접속해 사용하는 소프트웨어를 가라키는 말입니다. SaaS는 이용자에게도 개발자에게도 여러 이점이 있지만 이에 대해서는 다른 글로 따로 다루겠습니다. 우리가 흔히 아는 SaaS는 Google Workspace, Notion, Figma 등이 있습니다.

좋습니다. 그렇다면 인테리어 설계 SaaS란 웹으로 제공하는 인테리어 설계 소프트웨어와 같은 말입니다. 이제 남은 인테리어 설계는 무엇을 말하는 걸까요? 인테리어 설계란 건물 내부를 쓰임새와 취향에 맞게 구성하는 일입니다. 우리는 보통 펜으로 평면도를 그리는 행위로 알고 있습니다. 펜에서 CAD(Computer-Aided Design)로, 즉 컴퓨터 소프트웨어로 넘어온 시기는 유현준 교수님 경험담에 따르면 1990년대입니다.

key-features-autocad-lt-2026-thumb-1920x1080.jpg

보시는 Autodesk사 AutoCAD가 가장 대표적인 인테리어 설계 소프트웨어입니다. 물론, 컴퓨터에 직접 설치해야 하는 프로그램입니다. 그렇지만 컴퓨터에 직접 설치해야 한다는 점이 특별한 불편함을 주지는 않습니다. 오히려 브라우저를 거치지 않고 컴퓨터 자원을 직접적으로 사용하기 때문에 성능상 이점이 더 큽니다.


국내에서도 AutoCAD와 비슷한 많은 프로그램, 예를 들어서 직스캐드, 코비아키 등을 개발했지만, 소프트웨어 분야에서는 업계 표준이 가지는 위력을 넘어서기는 매우 어렵습니다. 실제로 실무자들이 이른바 '대안 캐드'로 넘어가는 이유는 저렴한 라이센스 비용 이외에는 거의 없습니다.


하지만 오늘날 컴퓨터를 이용한 인테리어 설계는 평면도를 그리는 작업으로는 끝나지 않습니다. 인테리어 고객이나 디자이너나 시공사나 모두 마찬가지로 입체를 보고싶어 합니다. 바로 여기가 인테리어 설계 소프트웨어의 범주가 2차원을 그리는 AutoCAD를 넘어 3차원을 그리는 Sketchup으로 확장되는 지점이죠.

sketchup.png

AutoCAD를 통한 평면도 작업은 주로 공간 구획 및 가구 배치를 고안하는 과정입니다. 예를 들어 내 공간에 낼방을 몇 개까지 낼 수 있을지, 회의실을 입구 가까이 두면 좋을지 창가에 두면 좋을지, 붙박이장은 어느쪽 벽에 붙이는 것이 좋을지 같은 고민들을 하는 과정이죠.


반면 Sketchup을 통한 3D 모델링 작업은 첫째로는 공간감이나 부피감을 확인하는 과정입니다. 둘째로는 2차원에서는 보이지 않던 천장이나 벽, 그리고 가구의 높이를 확인합니다. 셋째로는 조명이나 프레임, 장식물 등 평면도에서는 굳이 표현하지 않는 디테일을 추가할 수 있습니다.


인테리어 설계 소프트웨어는 여기서 끝나지 않습니다. 보시는 것처럼 Sketchup은 3차원이기는 하지만 현실의 모습과는 많이 다릅니다. 디자인 작업 편의성을 위해 모든것들이 단순화되어있죠. 그래서 오늘날에는 3차원 설계를 현실감 있게 보여주는 3D 렌더링 소프트웨어까지 인테리어 설계 소프트웨어의 범주는 넓어집니다.

화면 캡처 2025-10-14 163858.png

보시는 이미지는 Sketchup으로 작업한 3D 모델링을 Enscape라는 3D 렌더링 소프트웨어를 통해 실시간으로 렌더링한 결과물입니다. 물론 현실과 아주 똑같지는 않지만, 조명과 바깥에서 흘러들어오는 빛, 가구와 마감재의 색감과 질감을 눈으로 확인할 수 있습니다. 이 정도 결과물이면 인테리어 고객 입장에서 인테리어 설계를 확정하는 데에는 무리가 없습니다.


지금까지 요약해 보자면, 인테리어 설계 소프트웨어란 AutoCAD처럼 평면도를 그리고 Sketchup처럼 3차원 모형을 만들어서 Enscape가 제공하는 것처럼 현실과 흡사한 시각 자료로 확인할 수 있는 컴퓨터 프로그램을 말합니다. 다시 말해서, 인테리어 설계 소프트웨어란 평면도와 3D 렌더링 이미지를 제작하는 도구입니다. 그리고 인테리어 설계 SaaS는 평면도와 3D 렌더링 이미지를 제작할 수 있는 웹 서비스를 가리키는 셈이죠.

소프트웨어 아키텍처에 대한 후회 아닌 후회

이제 인테리어 설계 SaaS를 개발하는 관점에서 이야기해 봅시다. 인테리어 설계 SaaS는 SaaS 중에서도 시각적 모델링 도구에 속합니다. 그래서 예를 들어 Google Workspace를 개발할 때에는 그다지 사용하지 않을 법한 2D/3D 그래픽 렌더링, 기하학, 객체 계층 구조 설계 기술 등이 필요합니다. 비슷한 기술을 사용하는 소프트웨어로는 앞서 살펴본 AutoCAD, Sketchup과 Figma, Blender, Draw.io 같은 디자인 소프트웨어 Unity, Flash 같은 게임 엔진 등이 있겠습니다.


제가 개발한 인테리어 설계 SaaS를 시각적 모델링 도구라고 부를 수도 있고, 일종의 엔진이라고도 부를 수 있을 것 같은데요, 일단은 시각적 모델링 도구라고 말하겠습니다.


이 시리즈에서는 제가 현재 개발하고 있는 인테리어 설계 SaaS 예제를 통해서 다른 시각적 모델링 도구를 개발하는 데에서도 공통적으로 사용할 법할 노하우와 테크닉 등을 엿볼 수 있을 겁니다. 실제로 저는 인테리어 설계 SaaS를 개발하는 동안 소프트웨어 아키텍처를 여러 번 개선했고 그럴 때마다 Unity가 제공하는 아키텍처와 비슷해지는 경험을 했습니다. 물론 제가 Unity 사용 경험이 있다보니 Unity 아키텍처에서 아이디어를 많이 착안한 부분도 있습니다.

RigidBodyGO.png

하지만 처음부터 Unity 같은 다른 소프트웨어의 아키텍처를 따라 설계한 것은 아닙니다. 저는 오로지 스스로가 갖고 있는 현실적 필요에 따라 최대한 단순하게 시작하는 방식을 좋아합니다. 실제로 인테리어 설계 SaaS를 개발을 시작하면서 맨처음 개발한 기능은 클릭한 지점을 따라 선을 이어서 건물 외곽선처럼 보이게 하는 기능이었습니다. 이 단계에서는 거창한 아키텍처가 필요 없습니다. 그러다가 외곽선과 내부 벽을 구분해야 하고, 다음으로는 문을 추가해야 하고, 문이라는 객체는 벽이라는 객체보다 위에 그려져야 하고, 마음대로 회전할 수도 있어야 하고, '되돌리기' 기능이 필요해지는 등 새로운 요구사항이 생길 때마다 아키텍처를 수정하곤 했습니다.


물론 그렇게 도중에 아키텍처를 수정하기란 매우 까다롭습니다. 거의 시스템 전부를 손대야 할 때도 많거든요. 협업하고 있는 상황이라면 더욱 곤란합니다. "처음부터 이 점을 알고 설계했으면 좋았을 텐데"라는 생각이 많이 들죠. 예를 들어 "처음부터 렌더링 로직을 분리했으면 다른 방식으로 렌더링하는 프린트 기능을 더 쉽게 만들 수 있었을 텐데", "처음부터 객체 상태를 직렬화해서 가지고있었다면 저장 기능하고 되돌리기 기능은 보너스로 만들 수 있었을 텐데", "이렇게 객체마다 기능이 다양하고 많아질 줄 알았다면 상속은 사용하지 않았을 텐데" 같은 후회 아닌 후회들입니다. 직접 경험해 보지 않았다면 어떻게 그러한 설계가 진정 필요한 줄 알았겠습니까?


그래서 제가 이 시리즈에서 하려는 작업은 인테리어 설계 SaaS를 개발하는 과정에서 생긴 후회 아닌 후회들을 정리하고, 시각적 모델링 도구를 개발함에 있어서 필수적인 요구사항을 반영한 채로 다시 만들어 보는 것입니다.


그럼 서론은 여기까지 마치고, 다음 시간에는 본격적으로 인테리어 설계 SaaS 같은 시각적 모델링 도구의 소프트웨어 아키텍처에 있어서 필수적인 요구사항을 정의해 보겠습니다.

프로필 이미지

댓글

프로그래밍 카테고리 다른 글

  1. Flutter 상태관리 Provider면 충분하다Flutter 상태관리 Provider면 충분하다
     · 프로그래밍 · 댓글 1