Found an issue with the book? Report it on Github.

감사의 말

감사의 말

이 책은 강의, 책, 토론, 회의 등의 아주 많은 것들의 절정으로써, 책에 영향을 미친 모든 사람들에게 완전하게 감사의 표현을 하는 것(provide a full accounting)은 불가능합니다. 여기에서 언급하지 못한 사람들이 의심할 여지 없이 있으리라 생각되며, 간과되었다고 느끼시는 분들께 미리 사과드립니다.

기술 부분(Technical)

모델리카라는 주제에 대해서, 가장 먼저 기호 조작 기술(symbolic manipulation techniques)이 공학적 문제 해결에 미칠 잠재적인 영향을 알아보는 기술적 비전을 가지고 있을 뿐만 아니라이 비전을 공개된 표준(open standard)으로 추진할 수 있는 리더십을 가지고 있는 Hilding Elmqvist에게 감사드립니다.Hilding은 논란의 여지가 없는 “모델리카의 아버지”이며 그는 모델리카가 이룬 모든 것에 대해 상당한 공로를 인정받을 자격이 있습니다.

Hilding에 이어 두 번째는 모델리카의 발전을 위해 지칠 줄 모르는 Martin Otter입니다.Martin은 내가 아는 그 누구보다 열심히 일한다고 솔직히 말할 수 있습니다.그는 모델리카에 수많은 기술적 공헌을 했을 뿐만 아니라 모델리카 협회(Modelica Association)를 관리하는 사람들이 선호하지 않고, 일반적으로 공을 인정 받을 수 없는 역할을 맡았습니다. 훌륭한 기술적 아이디어를 갖는 것이 결코 성공의 비법이 아님을 기억하는 것이 중요합니다.누군가는 그 아이디어를 밀어붙이고 밀어붙이고 또 밀어붙여야 합니다. 오늘의 모델리카 협회를 만들기 위해 열심히 노력한 Martin에게 감사드립니다.

물론 Martin만이 모델리카 협회을 운영하는 것은 아닙니다. 모델리카 협회 이사회와 회원들도 모델리카에 대한 인식을 높이기 위해 매우 영향력이 큰 활동을 하고 있습니다.결국 Modelica Association은 엔지니어링을 지원하는 오픈 스탠더드를 위해 헌신하는 단체이며, 이와 관련하여 열심히 노력해주신 모든 회원님들께 감사드린다.

모델리카 협회는 항상 있었던 것은 아니였지만, 모델리카 디자인 그룹(Modelica Design Group)은 항상 있었습니다. 일 년에 몇 번 모여서 모델리카 언어를 지속적으로 개선하기 위해 노력하는 사람들입니다.사람들이 이 노력을 위해 얼마나 많은 시간과 에너지를 자원했는지는 놀랍습니다.모델리카 언어 및 모델리카 표준 라이브러리(MSL) 개발에 참여해 주신 모든 분들께 감사드립니다

개인적인 감사(Personal)

개인적으로 나는 과학, 공학, 수학에 대한 나의 열정을 끝없이 지원해 준 어머니, 아버지, 아내, 아이들, 처가에 영원히 빚을 지고 있습니다. 그분들은 이러한 분야에 대한 나의 관심을 키우고 유지할 수 있게 해주었습니다. 그러므로,이 같은 프로젝트에 적용할 수 있는 모든 에너지와 시간을 그들에게 빚지고 있다고 생각합니다.

무료로 제공되는 책이라는 개념 자체가 일부 사람들에게는 급진적으로 보일 수 있습니다. 이 프로젝트의 기본 전제는 주로 Cory Doctorow와 Lawrence Lessig의 작품을 듣고 읽는 것으로 부터 영감을 받았습니다. 크리에이티브 커먼즈 라이선스(Creative Commons licensing)에 대한 아이디어에 눈을 뜨게 해주셔서 감사합니다. 또한 대안 출판 모델에 대해 많은 논의를 할 수 있었던 것에 대해서 Dietmar Winkler에게 감사드립니다. Doctorow와 Lessig의 아이디어와 그들의 아이디어가 모델리카 세계를 위해 보다 접근하기 쉬운 콘텐츠를 만드는 데 어떻게 적용될 수 있는지 자주 논의했습니다.

돌이켜보면 저는 모델리카에 대한 제 참여를 지원한 여러 회사에서 일한 것이 매우 행운이라고 생각합니다.나는 포드 자동차에서 일할 때 모델리카와 처음 인연을 맺었고 그들은 모델리카와 관련된 다양한 이벤트에 기꺼이 후원해 주었습니다. Ford 이후 저는 Emmeskay (결국 LMS에 인수됨)에서 일하게 되었습니다. 나는 Emmeskay 패밀리와 의 교류에서 엄청난 이익을 얻었습니다. 특히 제 파트너인 Swami Gopalswamy와 Shiva Shivashankar에게 Emmeskay의 일원이 될 수 있는 기회를 주고 좋은 친구가 되어준 것에 감사드립니다. Emmeskay에 있는 동안 여러 모델리카 관련 프로젝트에서 Michael Sasena 및 John Batteh와 함께 일하는 것은 특권이었습니다. Emmeskay는 놀라운 회사였고, 이것은 전적으로 그곳에서 일하는 많은 사람들에 대한 반영이었습니다.마지막으로, 저에게도 그곳의 모든 우수한 사람들과 함께 일할 수 있는 기회를 주신 다쏘 시스템에 감사드립니다.특히, 제가 그곳에서 일할 수 있도록 격려해 주신 Hilding Elmqvist와 Marc Frouin에게 감사드립니다. 또한 파리에서의 한 해 동안 좋은 시간을 보낼 수 있도록 해준, Martin Malmheden, Dag Brück 및 Sandrine Loemb에게도 감사드립니다.

공헌자(Contributors)

이 프로젝트는 출판에 대한 킥스타터의 접근 방식을 모델리카와 같은 틈새 기술 분야에도 적용 할 수 있는지 확인하기위한 진정한 의미에서의 실험이었습니다. 그것이 가능하고 이 프로젝트가 자금을 조달할 만큼 충분한 지원을 받았다는 사실에 매우 놀랐습니다. 그런 이유로 킥스타터 프로젝트의 후원자에게 감사의 말을 전하고 싶습니다.특히, 특별히 아낌없는 공헌을 해주신 다음 분들께 감사드립니다.

  • Hilding Elmqvist

  • Robert Norris

  • Matthis Thorade

  • Henning Francke

  • Yang Ji

  • Christoph Höger

  • Philipp Mossmann

  • John Batteh

  • Dirk Zimmer

  • Jan Brugård

  • Swami Gopalswamy

  • Peter Aronsson

  • Michael P. Case

  • Markus Groetsch

  • Vicente Ramírez Perea

  • Tisha Villanueva

  • Adrian Pop

  • Nimalendiran Kailasanathan

  • Kevin Davies

  • Peter Harman

  • Dietmar Winkler

  • Johan Rhodin

또한 기업 후원자에게도 감사를 전하고 싶습니다.

  • Gold Sponsors

    • CyDesign

    • Wolfram Research

    • Modelon

    • Maplesoft

    • Dassault Systèmes

  • Silver Sponsors

    • Ricardo Software

    • ITI

    • Modelica Association

    • Global Crown Technology

    • Siemens

  • Bronze

    • Suzhou Tongyuan

    • Open Source Modelica Consortium

    • DOFWare

    • Bausch-Gall GmbH

    • Technische Universität Hamburg/Harburg

    • Schlegel Simulation GmbH

이 프로젝트는 모델리카를 중심으로 하는 보다 양질의 교육 자료를 생성한다는 상호 협의된 목표를 달성하기 위한 커뮤니티의 힘을 보여줍니다.말 그대로 이 프로젝트는 커뮤니티의 구성원이 없이는 완성하는 것이 불가능했습니다

킥스타터 펀딩 덕분에 이 프로젝트에 시간을 할애할 수 있었지만 이 프로젝트를 진행하는 데 여러 사람들이도움을 주기도 했습니다. 무엇보다도 이 책의 초안을 교정할 수 있도록 도와주신 아버지께 다시 한 번 감사드립니다.교정은 필요하지만 다소 지루한 작업이므로 그 희생에 대한 공로를 인정받을 자격이 있다고 생각합니다. 마찬가지로 책 내용에 대한 추가 피드백을 제공한 Dietmar Winkler와 Michael O'Keefe에게도 감사드립니다. Dietmar는 또한 ePub 및 PDF 형식에 대한 지원과 관련된 출판 문제를 테스트하는 데 도움을 주었습니다.

스폰서의 목소리"가 되어준 Jeff Waters에게 감사를 전하고 싶습니다. 레이아웃과 그래픽 디자인이 후원자의 기대에 부응하는지 확인하기 위해 이 책을 쓰는 동안 Jeff와 몇 차례 매우 생산적인 토론을 했습니다.

소프트웨어(Tools)

이와 같은 책을 만들려면 다양한 도구가 필요합니다. 다음과 같은 소프트웨어를 사용하여 생산성이 크게 향상되었습니다.

이 책은 다중 출력을 지원하는 문서 생성 도구인 Sphinx를 사용하여 작성되었습니다. Sphinx를 사용하면 책의 내용에 집중할 수 있고 다양한 형식으로 책을 생성할 수 있습니다.

이 책을 만들 때 책에 나오는 모델을 테스트하고 시뮬레이션 결과에 대한 선도(plot)를 생성하고 브라우저가 HTML 책에 시뮬레이션 기능을 통합할 수 있도록 하는 JavaScript 코드를 생성하는 방법이 필요했습니다.이러한 모든 것들이 OpenModelica를 통해서 가능했습니다. 그러나 이러한 상황 뿐만 아니라, 그 이상으로 책을 만드는 동안 겪었던 다양한 문제에 신속하게 대응해 준 Martin Sjölund와 OpenModelica 팀에게 큰 "감사"의 인사를 드리고 싶습니다. 여러번 늦은 밤(스웨덴 시간)에 Skype에서 Martin을 보았고, 그때 마다 그는 나를 도와줄 정도로 친절했습니다.

책의 초기 버전은 HTML 버전에서 브라우저 통합 시뮬레이션 기능을 제공했습니다. 이러한 기능은 C 및 C++와 같은 언어의 일반 코드를 JavaScript로 크로스 컴파일(LLVM을 통해)할 수 있는 Emscripten이라는 소프트웨어 덕분에 가능했습니다. 이것이 가능하다는 것을 알고 있었지만 OpenModelica와 Emscripten을 통합하는 Tom Short의 작업을 보기 전까지는 이 방법이 실행 가능하다고 생각하지 않았습니다.이 분야에서의 그의 작업으로 인해서 브라우저 통합 시뮬레이션 기능은 크게 활성화되었습니다. 궁극적으로 모바일 장치(메모리 제약이 문제가 되는)에서 책의 사용을 향상시키기 위해 이 기능을 부분적으로 제거했습니다. 그러나 언젠가는 이러한 기능을 복원할 수 있다고 낙관합니다. 결과가 어떻게 되든, 나는 그 능력의 발전에 기여한 사람들에게 큰 감사를 드립니다

이 책은 버전 관리 시스템으로 Git을 사용하고 호스팅을 위해 GitHub를 사용하여 작성되었습니다. 대부분의 사람들은 버전 관리 시스템을 신비한 백업 시스템으로 생각합니다. 그러나 버전 제어 시스템은 협업의 핵심이라고 생각하며, 엔지니어링에서 더 널리 사용되기를 바랍니다. 이 책에서 GitHub의 "pull request" 시스템은 리뷰어의 피드백을 통합하는 데 매우 유용했습니다.Git의 다양한 기능에 대해 알려준 Dietmar Winkler에게 다시 한 번 감사드립니다. GitHub 외에도 최신 버전의 책에서는 Gitlab의 지속적 통합(Continuous Integration, CI) 기능을 활용합니다.또한 Docker를 활용하여 빌드 프로세스의 이식성과 반복성을 크게 개선 했습니다.

이 책을 위해 Emacs 편집기를 사용했습니다.다양한 언어와 플랫폼을 지원하는 정말 우수한 편집기가 많이 보급되어 있음에도 불구하고 Emacs는 여전히 대부분의 저술 작업에서 내가 선택한 편집기입니다. 이 편집기는 바로 편집해야 하는 거의 모든 유형의 파일을 지원하는 것 같습니다.그러나 이 책을 위해 개발된 코드(예:대화형 UI 요소,TypeScript의 정적 페이지 생성 템플릿)에는 비약적으로 여러 사람의 사랑을 받고 있는, 진정으로 우수한 오픈 소스 편집기인 Visual Studio Code를 사용했습니다.

문서 처리가 Sphinx로 수행되는 동안 v0.6.0+에 대한 실제 HTML 생성은 서버 측 렌더링 프레임워크 Next.js를 사용하여 수행 됩니다. 이 프레임워크는 클라이언트 측에서 렌더링될 때 동적 구성 요소를 포함할 수 있는 HTML을 랜더링 하는 서버 (좋은 SEO - 검색 엔진 최적화를 위해)을만들기 위해 뛰어난 React UI 프레임 워크(내가 광범위 하게 사용함)를 활용합니다. 이것은 책을 빠르게 로드하지만 브라우저에서 즉각적인 상호 작용을 제공하기 때문에 두 세계 모두에서의 진정한 해입니다.모든 React 기반 프로젝트는 뛰어난 TypeScript 언어로 작성되었으며, 재사용 가능하면서도 강력한 형식을 갖춘 UI 구성 요소를 만들기 위해 TSX 기능을 활용합니다.

이 책을 제작하는 동안 여러 시뮬레이션 소프트웨어(tool) 공급업체에서 소유권을 가지고 있는 프로그램에 액세스할 수 있도록 해줬습니다.이 프로그램을 많이 사용하지는 않았지만 임시 라이센스를 제공하는 관대한 마음을 인정하고 싶었습니다. 특히 Dymola, MapleSim, SystemModeler 및 SimulationX에 대한 액세스 권한을 제공한 Dassault Systèmes, Maplesoft, Wolfram Research 및 ITI에 각각 감사드립니다.

이 책의 대부분은 MacBook Air에서 작성되었습니다. 내 첫 번째 컴퓨터는 Apple이었습니다.하지만 그 이후로 저는 주로 PC와 Unix 워크스테이션으로 작업했습니다. 가장 최근에 Linux 머신에서 많은 개발을 했습니다. 항상 나는 일반적으로 하는 종류의 명령줄 지향 개발 작업을 지원할 수 없다고 확신했기 때문에Mac을 사용을 하지 않았습니다. 그랬던 나의 생각은 틀린것이였습니다. MacOS용 생태계는 Linux 세계에서 사용했던 것과 거의 동일 했습니다. 알고보니 큰 조정 없이 MacOS와 Linux 환경 간에 원활하게 전환할 수 있습니다. MacBook Air의 강력한 성능과 휴대성은 전체 작업 프로세스를 크게 향상시켰습니다.

이 책을 개발하려면 HTML 레이아웃, 스타일 지정 및 임베디드 JavaScript에 대한 많은 테스트와 디버깅이 필요했습니다. 작업의 대부분은 Chrome을 사용하여 수행되었지만 때때로 Firefox도 사용했습니다. 이렇게 훌륭하고 표준을 준수하는 브라우저를 만든 Mozilla Foundation과 Google에 감사드립니다.

v0.6.0 이전에는 책의 스타일이 Semantic UI CSS 프레임워크에 상당한 영향을 받았습니다. v0.6.0 이후 스타일링은 대부분 BlueprintJS 으로 진행하였습니다.