brunch

You can make anything
by writing

C.S.Lewis

by 코드아키택트 May 03. 2024

Three.js를 배워야 하는 이유

D+34

Three.js라는 친구가 있다. 관심 있게 지켜보며 실제 몇몇 개발도 진행했는데, 이 경험을 토대로 왜 배워야 하는지 설명해 본다


Three.js란?

Three.js는 WebGL을 쉽게 사용할 수 있도록 만들어진 Javascript 라이브러리다. WebGL이란 친구는 또 OpenGL이라는 걸 이용하는 친구다. 그러니까... OpenGL은 2D, 3D 그래픽을 시각화해주는 API이다. 이를 Web에서 쓸 수 있도록 해주는 친구가 WebGL이다. 이 WebGL을 Javascript에서 편안히 쓸 수 있게 만들어준 친구가 Three.js다. 이런 논리적 흐름으로 보면, 진성 개발자가 되기 위해서는 OpenGL과 WebGL을 깊게 공부하는 것이 맞지만 응용을 좋아하는 우리는 Three.js에 머무는 것이 정신건강에 좋다


Three.js와 AEC

Three.js는 웹에 3D를 얹기 위해서 필수로 사용되는 라이브러리다. 그렇다면 이게 AEC와 어떤 연관을 가지는지 알아봐야 한다. Three.js는 ifc, 3dm, obj 등등의 3D 포맷을 지원하고 있다. 따라서, Rhino, Sketchup, Revit 등의 프로그램으로 만들어진 결과물을 웹에 띄울 때 쓸 수 있다는 이야기다. 몇몇 문서를 보면 해당 포맷에 아주 최적화되어있지는 않은 것 같지만 그래도 꽤나 유용한 것으로 보인다. 나도 Rhino나 ifc를 불러오는 것을 안 해봤지만, 아마 대부분의 유저가 원하는 으리으리한 렌더링을 위해선 재료 등등을 꽤나 만져야 할 것으로 예상한다.

예전에 Forge라고 불리고 지금은 Autodesk Platform Service(이하 APS)라고 불리는 프로그램도 Three.js를 가지고 만들어졌다. 그래서 이론적으론 Three.js의 모든 기능을 APS안에서 쓸 수 있고, 좀 더 확장해 보면 APS에 Rhino 등 파일을 통합해서 보는 웹뷰어도 만들 수 있다는 뜻이다. 사실 돈을 내고 ACC를 구독하고 있다면 진성 개발자와 같은 그런 고생을 안 해도 되지만, 오픈소스 정신을 발휘하고 싶다면 ACC 없이 통합 뷰어를 만들 수 있다.


Three.js와 On-premises

On-premises는 Software as a Service(Saas)의 반대말로 보면 된다. 각 컴퓨터에 설치되어 독립적으로 구동되는 프로그램을 상상하면 된다. Revit, Rhino 등이 그러한 예시다. AEC업계에서 보안은 생명과도 같다. 다들 공유의 중요성을 알고 있지만, 3D모델 또는 2D도면은 상당히 귀중한 자원이기 때문에 클라우드에 올리는 것을 상당히 꺼리는 게 업계의 관행이다. 그렇기 때문에 대부분 AEC 회사들은 On-premise 앱을 만들거나, 사내 서버에서만 구동되는 프로그램을 원한다.

Three.js는 Javascript 라이브러리이기 때문에 웹에서만 돌아갈 것으로 보인다. 하지만 Electron 등을 이용하면, On-premises앱을 만들 수 있다. 이는 회사가 홍보할 수 있는 자체 3D 소프트웨어를 좀 더 쉽게 만들 수 있다는 이야기도 된다. 그리고 Rhino나 Revit은 C#을 이용해 개발해야 하기 때문에 컴파일 지옥에 살게 되는데, 이러한 지옥에서 벗어날 수 있는 좋은 구실이 되기도 한다. 

더군다나 Javascript 기반이라는 말은 수많은 웹 프레임워크를 쓸 수 있다는 말도 된다. 건축가들은 미적으로 아름다운 것들을 추구하도록 훈련된 사람이다. 따라서, 아무리 성능이 좋은 프로그램이 있어도 결국엔 예뻐야 한다. 어쩌면 일반인을 상대하는 모든 비즈니스가 그럴지도 모른다. 그런 점에서 Three.js를 쓰는 것은 상당히 많은 장점을 가진다. Rhino나 Revit앱의 UI와 비교할 수 없는 으마으마한 UI/UX를 만들 수 있다는 뜻이다.


하지만...

글을 쓰면서 생각이 드는 것은 하나가 있다. Three.js를 높은 수준으로 할만한 수준이면 사실 건축 소프트웨어 엔지니어 업계에 굳이 있을 필요가 없다. 다른 마켓의 크기가 얼마나 되는지는 모르겠지만, 적어도 기술적인 실력 면에선 정말 그렇다. 난 업계에서 굴러먹고 있지만, 다들 능력이 된다면 더 좋은 업계에 가길 권장하기 때문에, 그런 발판을 만들고 싶다면 Three.js를 하는 것도 좋은 방법이다.


이전 04화 건축 소프트웨어로서의 블랜더
brunch book
$magazine.title

현재 글은 이 브런치북에
소속되어 있습니다.

작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari