상호 운용(Interop)
여러분의 언어를 성공적으로 사용하고 싶다면, 상호 운용성은 엄청나게 중요합니다.
이건 역사적인 사실로 증명되는데요. 왜 C++이 성공적으로 사용되었는 지 생각해보면 C 코드 베이스에서 이동하기 쉬었기 때문이에요. 만약 여러분이 JVM의 입장에서 생각해본다면 Scala와 Clojure가 가지는 장점은 Java의 기존 생태계를 이용할 수 있다는 거에요. 실무에선 아무리 좋은 언어라도, 기존 코드 베이스에 적용할 수 없다면, 사실 적용하기 어렵죠. 이건 브라우저에서도 마찬가지로 어려워요.
이번 단원은 여러분이 브라우저에서 상호 운영이 필요한 경우에 초점을 맞출거에요.
- JSON을 이용한 외부의 서비스와 상호 작용하는 방법
- 이미 존재하는 HTML 또는 리액트 앱에 Elm 프로그램을 사용하는 방법
- 이미 존재하는 자바스크립트 코드와 같이 사용하는 방법
이런 상호 운용에 관해선 다음과 같은 원칙을 고려해봐야요. 첫번째로는 Elm을 적용할 다양한 환경에서 점진적으로 개선할 방법이 있어야하고, 두번째로는 Elm의 핵심 설계원칙에 영향이 없어야해요. 즉, Elm을 훌륭하게 사용해야 실무에서 사용할 수 있다는 거에요.
Elm을 도입하기 위한 조언
올바른 방법은 Elm을 작은 부분부터 사용해보는 거에요. 그러고 나서 나쁘게 느껴진다면 작업을 멈추세요! 좋게 느껴진다면 조금씩 더 사용해 보세요. 이 과정을 계속 반복해나가면서 Elm을 사용해하세요. 과거를 생각해보면 한번에 다른 언어로 전부 변경하는 건 현실적으로 없는 것 같아요. 조금씩 변경해 나가죠!
제가 알고있는 Elm을 도입한 모든 회사들은 전부 코드베이스를 점직적으로 개선 했어요. 여러분은 이게 정말 가치 있는지 생각해봐야 해요. 적절한 멘토링 등을 통해서 팀원들 이 전부 편하게 받아드릴 수 있어야 하죠. 제대로 사용하기 전에 React 와 같은 것들을 디딤돌로 사용 하는 것도 방법이에요. 기본적으로, 위험을 최소화 하고 점진적으로 향상시키는 게 좋아요. 물론 그냥 바로 전환하는 게 재밌긴 하겠지만, 실제로 사용할 수 있게 된다는 이점이 있어요.