Cadracks.org

개요

  • CAD 데이타를 다루기 위한 Git 서비스에 대한 아이디어는 상당기간 있어왔는데, 제대로 된 실제 구현체는 아직 나온적이 없다.
  • 개인적인 고찰로는, 웹서비스 쪽은 건드리지 않고, 클라이언트 쪽만 새로 개발을 잘 하면 좋겠다고 생각을 했었다.
  • 그런데 반대로 웹서비스 쪽을 건드려서 관련 기능을 만든 예가 있는 것 같다.
  • Cadracks.org인데, 상당히 흥미로운 점들이 많은 시도 같다.

개발자 관련

  • 이걸 개발하고 있는 사람은, 프랑스의 기욤 플로랑(Guillaume Florent) 이라는 해커다.
  • 이 사람에 대해서 검색을 해 보니 정말 흥미로운 남자 같다.
  • 위키페디아 인물 소개
  • INSA Lion이라는 5년제 그랑제꼴 학석사 통합과정 공대에서 재료물리학을 전공했다고 한다.
  • 그리고 무려 올림픽에 3번 출전한 요트선수이고, 심지어 2008년 베이징 올림픽 동메달리스트인 것이다. 프랑스 요트계에서는 상당한 중량급 인사인가 보다.
  • 게다가 2014년도에는 고향인 덩케르크에서 부시장도 역임했다. 정치인이기도 한 것이다.
  • 1973년생으로 나이도 상당히 많은 편인데, 오픈소스 개발자로 새로운 프로젝트도 시작하고 있는 것이다.
  • 돈벌이 목적의 개발은 아닌 것 같고, 그냥 자신에게 필요한 요트의 선형을 설계하기 위해 오픈소스 설계 및 해석 툴을 사용하고 해킹하다가, Git 기반의 PDM 툴에 대한 필요성을 느끼고 그걸 직접 구형하고 있는 것이다.
  • 그랑제꼴 출신에, 올림픽 메달리스트급의 전문 체육인에, 정치활동도 했는데, 오픈소스 개발도 취미(?)로 하는 사람이라는게 조사해 본 결과다.
  • 뭐 서양에서는 전설적인 암벽등반가이면서 심해다이빙을 하면서 동시에 노벨상을 탄 소립자물리학자도 있으니, 이런 유형의 인간상은 유럽인만의 특권인가 싶기도 하다. 한국에서 이런 유형의 인간이 나올 가능성은 거의 없으니… (사회경제적 환경요인이 크다고 생각은 된다.)

현재까지 구현된 것

  • 일단 Gitea를 근간으로 삼고, 여기에 몇가지 살을 덧붙여서 서버를 구성했다.
  • 제일 큰 특징은, STEP,IGES,STL,BREP 그리고 FCStd 포멧의 파일을 렌더링해서 보여주는 기능이 있다. 해당 파일을 저장소에서 클릭하면 뷰어가 나타나서 보여준다. 내부적으로, OCC로 해당 파일을 읽어서 Mesh 포멧으로 변환한 다음, 그것을 WebGL을 이용해서 렌더링해주는 기능을 구현한 것 같다.
  • 그 다음으로는, 파이썬으로 코어모듈을 작성해서, 모델링 및 어셈블리 구조를 구성할 수 있도록 스크립트화된 CAD를 만들고 있다. 기본적인 기능은 이미 동작을 하는 것 같다. 해당 파이썬 스크립트를 저장소에서 클릭하면, 파이썬 소스가 아래에 나오고, 그 위에는 WebGL 화면상에 3D 모델이 렌더링되어 보여진다.
  • 기타 서브 프로젝트들을 보면, FreeCAD 워크벤치도 만들고 있고, 파이썬 CAD 스크립트 모델링을 위한 IDE도 개발하고 있는 것 같다.

기타 예정된 사항들

  • 그리고 로드맵을 보면, 나중에는 IFC도 구현해서 전자회로도 자동으로 모델링되도록 엮어넣을 생각을 하고 있고, Diff 툴도 만들려고 하고 있고, 기타등등 여러가지 기능들을 계속 추가할 생각인가보다.
  • 프랑스인 해커가 이런 종류의 개발을 할 때는, 처음에 계획을 원대하게 세우고 시작을 산뜻하게 했다가, 수 년의 시간이 흐르면서 점점 지지부진해지고 결국 접게되는 경우를 몇 번 본 적이 있는데, 이 프로젝트는 이런 포부처럼 잘 구현이 되어 나갈 수 있을지 궁금하다. 성공과 실패는 아직 알 수 없다. 2019년도에 이제 막 시작한 프로젝트이기 때문에…
  • 다만 아직은 기욤 플로랑 혼자 코딩하고 있는 단계이고, 온라인상에 인지도도 거의 없으며, 서버를 구축한 레시피도 아직 완전히 공개하고 있지는 않기 때문에 첫걸음을 뗀 단계라고 생각이 된다.

영감을 주는 요소

  • 이미 존재하고 있는 오픈소스들을 파이썬으로 엮어서 서비스를 구현하려고 한 계획은 상당히 효과적으로 보인다. 다만 이렇게 할 경우, 나중에 서비스 규모가 커지면서 최적화나 퍼포먼스 문제에 봉착했을 때 극복이 가능할지는 두고봐야 할 것 같다. 하지만 소규모 팀 협업 정도를 위한 서비스라면 문제가 없을 것이다.
  • STEP 파일을 웹상에서 바로 볼 수 있도록 렌더링을 시도한 부분은 굉장히 참신하다. 대신 데이타 로딩과 변환을 위해 서버에 부하가 간헐적으로 상당히 걸릴 수 있기 때문에, 서버쪽의 퍼포먼스와 자원이 좀 필요하기는 할 것 같다. 하지만 이렇게 파일을 직접 볼 수 있는 웹서비스 자체가 거의 없기 때문에, 매우 중요하고 유용한 기능적 요소라고 생각이 된다.
  • 파이썬 스크립트로 어셈블리 정보를 구성한다는 것은, 실제 설계자들과의 괴리가 아직은 큰 것 같다. 기계설계자들은 자신이 프로그래머라고 생각 자체를 안하기 때문에, GUI가 제공되는 상용 CAD 소프트웨어를 사용해서 설계하는 방식만 생각을 한다. 코딩으로 제대로 된 설계를 하는 것이 과연 현실적일까? 그런 방식은 기어 치형을 만들거나, 날개 블레이드 형상 설계하거나 하는 등의 제한적인 경우에만 유용한 것이 아닌가 하는 것이 아직은 일반적인 생각이다. 어셈블리를 코딩으로 조합해 나가는 것이 생산성만 떨어뜨리는 것은 아닌가? 떨어지는 생산성과 학습곡선의 댓가를 치를 만한 반대급부나 이익은 무엇인가? 그런 부분에 대해서는 아직 충분한 답은 나와있지 못한 것 같다. 아직은 Git으로 버전관리하는데는 소스코드 쪽이 더 유리하다는 점 정도다.

결론

  • 아무튼, 다재다능한 한 프랑스 해커가 이런걸 하기도 하는구나 싶어서 대단하다 싶고…
  • 뭔가 아이디어가 있는데 그걸 직접 코딩할 실력이 안된다거나 시간이 없다거나 하는건 순전히 핑계구나 하는걸 느낀다. 남을 시키지 말고 직접 연구해서 구현하라는 엔지니어의 황금률을 다시 한 번 상기하게 된다.
  • 그래도 여전히 나는 서버단 보다는 클라이언트 단을 개발하는 쪽에 배팅하고 싶다.