들어가기에 앞서
처음 백엔드를 공부해보고자 마음 먹었을 때는 근처에 Spring Boot를 공부하는 사람들이 많아서 Spring Boot를 공부했다.
하지만 막상 Spring의 장점을 생각하면 Spring Boot는 대용량 데이터 처리에 용이하다는 것이다.
나는 이것을 잘 써먹지 못했다 대용량 데이터를 겪어본적이 없었기 때문이다.
그래서 이번에 배울 언어와 프레임워크는 많은 데이터 처리양보다는 개발속도가 빠른 것에 치중해서 배워보기로 결정했다.
그래서 일단 내가 배우고 싶은 언어들과 프레임워크 Go vs Node.js를 비교해보고 마지막으로 하나를 선택하고자한다.
많은 백엔드 프레임워크들이 현재 나와있고 각각의 장점이 있다 그렇다면 Node.js에 장단점은 뭘까?
Node.js
장점
Node.js는 웹 브라우저 외부에서 JavaScript 코드를 실행하는 오픈 소스 JavaScript 런타임 환경이고 확장 가능한 네트워크 응용 프로그램을 구축하도록 설계되었으며 높은 수준의 동시성이 필요한 실시간 응용 프로그램에 특히 적합하다
Node.js는 쉽게 말해 가볍다
단점
비동기식 프로그래밍은 확장 가능한 애플리케이션을 마스터하고 생성하기 위해 높은 수준의 전문 지식이 필요함
API 및 패키지는 빈번한 변경 및 업데이트를 경험할 수 있어 호환성 문제 및 개발자 혼란으로 이어질 수 있음
Go
장점
Go는 C에서 파생된 구문을 사용하지만 가비지 수집, 유형 안전성 및 동적 유형 지정 기능과 같은 추가 기능을 갖춘 정적 유형 언어이고
Go는 단순하고 효율적이며 확장 가능하도록 설계되었으며 특히 대규모 분산 시스템을 구축하는 데 적합하다.
Go는 또한 단순성에 중점을 두어 다른 언어에서 오는 개발자가 쉽게 배우고 사용할 수 있도록 한다.
단점
복잡한 추상화가 부족하여 간단한 기능에 더 많은 코딩이 필요함
커뮤니티는 다른 인기 있는 프로그래밍 언어에 비해 덜 발달해있다.
Golang은 무엇을 위해 사용됩니까?
가장 중요한 점은 시스템 프로그래밍, 대규모 분산 시스템, 확장성이 뛰어난 네트워크 애플리케이션 및 서버에 Golang을 사용할 수 있다는 것입니다. 또한 클라우드 기반 개발 , 웹 앱 개발, 빅데이터 또는 기계 학습 애플리케이션 에서도 사용됩니다
개발 도구 및 커뮤니티
Go는 라이브러리 및 패키지 측면에서 Node.js보다 개발 도구가 적습니다. 이것만으로도 Go 애플리케이션 개발자가 철저한 조사를 포함하여 많은 수동 설정을 수행해야 함
Node.js에는 개발자를 위한 많은 라이브러리와 패키지를 제공하는 대규모 커뮤니티가 있습니다. 이 대규모 커뮤니티는 또한 Stackoverflow와 같은 플랫폼에서 더 많은 지원을 제공하여 제품을 구축할 때 더 높은 생산성에 기여합니다.
개발 도구와 커뮤니티를 비교할 때 Node.js가 쉽게 이긴다.
결론
결정을 할 수가 없다..
각각의 언어들이 장점이 있지만 Node가 확실히 배우기는 쉽지 않을까 하지만 이미 Go를 조금은 공부를 해놔서 아까운 마음도 있다
그리고 궁금적으로 분산 시스템도 한 번 건들여보고 싶기도 하고..
좀 더 하고 싶은 것을 하는게 맞지 않을까? 그게 곧 나의 개발속도를 향샹시키지 않을까라는 생각으로 다시 Go를 할 것 같다.
사실 Go를 하고싶은데 하지 못할 핑계를 찾던 게 아닐까라는 생각이 든다