저는 go를 dockerize 해서 배포하고 있습니다.
go의 장점이라면 간단한 문법과 설정 없는 빌드, 간단하게 작성해도 일정 이상 높은 성능이 될 것 같습니다.
필요에 따라 다른 도구들을 사용하기는 하는데요.
메인은 당분간 go를 사용할 것 같아요.
혹시 다른 분들은 어떤지 궁금합니다!
아마 회사에서와 개인 프로젝트가 다를 수도 있겠는데요.
각자 사용하실 때의 소감도 공유해 주시면 좋을 것 같아요!
저도 회사에서는 주로 java 와 vue.js 로 일을 하기는 하는데
개인적으로는 typescript로 하고 있습니다.
이유는 풀스택으로 가벼운 프로젝트는 BE(nest.js), FE(next.js) 다 커버가 되세요
참고로 nest.js는 anglar와 많이 비슷한데 FE는 아무래도 react.js가 대세라서
타입스크립트가 확실히 js에서 많이 쓰이는 중인거 같습니다.
nest가 엥귤러와 비슷했군요?! 저는 간단한게 서버 프레임워크라고만 생각했었는데, 살펴봐야겠네요 :)
Unity3d로 개발이 주업무라서 거의 c#, 가끔 네이티브 코드 작성을 위해서 java, kotlin, objc, swift, c++, c로 작성하는 경우가 생기구요.
내부 개발도구 개발을 위해서는 go (서버나 cli 도구), elm (웹 프론트)을 사용하고 있습니다.
최근 업무는 flutter로 데스크탑 프로그램을 만들고 있는데요. 일부 성능이 나오지 않는 부분은 rust로 개선해서 처리하고 있습니다.
c#은 좀 애증의 관계인 것 같은데. Unity3d를 위해서 사용하다보니 닷넷 버전을 아직 못 따라가고 있는 부분이 아쉬운 상태입니다. 최근 알파 릴리즈에서 .netstandard 2.1까지 적용될 예정인데 빠르게 정식 릴리즈가 되었으면 하는 바람입니다.
go는 개발 기간을 단축하는 부분에 있어서 장점이 있는 것 같구요.
elm은 에러 메세지가 굉장히 친절해서 다른 언어들에 비해 적응하는 시간이 짧았던 것 같아요. 물론 함수형 적응은 다른 함수형 언어를 몇 번 시도했던 것이 도움이 되었던 것 같구요.
rust는 최적화가 필요한 부분에 적절하게 사용하면 좋은 것 같다는 생각이 들더라구요. 함수형 언어들에서 부러웠던 기능들을 잘 포함하고 있는 것도 매력적이었습니다. 물론 오너십과 스코프가 조금 덜 익숙한 상태에서 오는 허들이 있긴한데, 더 익숙해지면 해결되지 않을까 싶습니다. 러스트도 오류 메세지는 친절한 편인데. 스코프 지정이나 이런 부분에서 문법이 복잡하게 느껴지는 있어서 더 공부가 필요하다고 느끼고 있습니다.
나머지 네이티브 작업을 위해서 사용하는 코드들은 다른 언어들에 비해서 굉장히 제한적으로 사용하고 있는 상태라 따로 코멘트를 적지 않았습니다.
rust로 데스크탑 쪽 부분 작성은 어떻게 연결해서 사용하시나요?
웹 어셈블리로 사용하거나, dart 쪽에서 연결해주는 도구가 있을것 같네요.
elm 쓰시는 분 많지 않은 걸로 알고 있는데, 반갑습니다. :)
조금 업데이트가 필요한 부분은 있지만 전체적인 그림은 아래 두 글이 도움이 될 것 같습니다.
Dart Meets Rust: a match made in heaven - https://dev.to/sunshine-chain/…
Dart and Rust: the async story - https://dev.to/sunshine-chain/rust-and-dart-the-async-story-3adk