지금은 진짜 쓸만한 수준이 됐다고 봐요. 저는 회사에서도 go로만 업무하고 있습니다.
예전 godep, glide 쓰던 시절엔 dependency 한번 어긋나면 끼워맞추는데 하루종일 걸리면서 이게 언어인가 언어 언저리인가 고민했었는데요.. 😂
싱글스레드의 제약은 있다하더라도, 컨테이너 감싸서 하나의 팟 당 cpu 별로 안잡아먹게끔 해서 오케스트레이션하는 시대에서는 그 제약이 그렇게 큰가? 라는 생각밖에 들지않네요
예전처럼 하나의 서버에 여러 컨테이너를 띄우는 대신, 그 컨테이너가 cpu를 많이 잡아먹었다면 모를까요
대부분의 웹서버의 경우 cpu를 많이 잡아먹지않고 IO 쓰루풋이 많은만큼 노드도 하나의 선택지로써 다뤄질 수 있다고 생각이 드네요
물론 cpu가 많이 드는 도메인이라면 이건 다른 언어를 고려해보거나, napi를 통하여 네이티브 코드를 불러올 수도 있겠죠
고루틴으로 비동기작업이 잘 추상화되어 있는 특징이 있어서 비동기작업에 유용한 언어라고 생각합니다. Rust나 python의 비동기 코드는 생각을 너무 많이 한 경우 같아요. 작성하기에도 읽기에도 인지 부하가 높은 편인 것 같습니다
선생님들 Java 얘기 나와서 하는 말인데... Go는 어떻습니까? 저는 Java 보단 사실 Kotlin이 더 좋긴 한데, Gradle로 맛본 좌절감이 너무 많아서 그냥 Go로 정착중이거든요. 짧게나마 써 본 입장에서는 Java가 필요한 곳 어디든 Go로도 커버 가능하지 않을까? 하는 생각이 들었습니다.
JS/TS의 경우 저도 좋아하긴 하는데 아무리 그래도 Java랑 동일 선상에 놓고 비교하는 건 좀 무리가 있지 않을까 싶습니다. 어쨌든 싱글스레드의 제약은 있는거고, pm2등으로 멀티 프로세싱을 한다고는 하는데 Java도 virtual thread 잘되어 있고 사실 이게 더 낫다고 생각하거든요. 물론 이렇게 사고가 흘러가다가 고루틴 보고 저는 Go로 정착하긴 했는데... ㅎㅎㅎ;;
필요에 따라서 적재적소에 언어를 활용하는 게 좋다고 생각합니다. 저는 2024년인 지금도 여전히 PHP언어 사랑하고, JS, Java(Kotlin) 역시 Go만큼은 아니지만 애정합니다. 언어는 도구니까, 도구 목적에 맞게만 잘 쓰면 되지 않을까 하여 댓글 남겨봅니다.