본문 바로가기

개발 이야기/Go 언어 이야기

Go 언어로 어떤 분야의 개발이 가능할까요?

728x90

go 언어로 어떤 분야의 개발이 가능한가요?

 

예를들면,

 모바일앱 (안드로이드, iOS)

 웹서비스 (프런트, 백엔드)

 또는

 데스크탑 앱 (윈도우, 맥, 리눅스) 

등등 해서

 

go 의 현재 버전이 1.16.x 인데요

현재 status로  어떤 분야의 개발이 가능한가요?

 

좀 알아보니, gin 이나 이런 프레임웍(?) 등으로 웹서비스 개발은

가능한 걸로 아는데요~

또 지난 클량 게시물에서

PC용 앱을 go 언어로 만들었다는 글도 본 것 같기는 한데요~

 

- 서비스용 백엔드나 시스템 데몬 같은 용도로 아주 잘 쓰고 있습니다.
그 외에는 맘대로 잘 되진 않더라구요. 가능하긴 한데...

 

- GUI는 Fyne, Wails, Walk가 많이 발전 했지만 일렉트론JS, QT등과 비교 할 수준은 안될것 같구요.

 

- 모바일앱은 찾아보니 https://github.com/golang/go/wiki/Mobile - go-mobile이 버려진 자식인 줄 알았는데, 조금씩 개선되고 있나보네요 이것도 플러터에 비하면 뭐 ^^;

 

- 웹 프론트는 GopherJS 같은 재밌는(?) 것도 있지만, 요즘 들어서는 궃이? 싶습니다. 템플릿 엔진은 많이 있는데 이것도 마찬가지 인것 같네요.

 

- ebiten 이라는 2D 게임엔진이 있는데, 웹 + 안드 + iOS + 각종 OS로 빌드가 가능 합니다.
최근엔 닌텐도 스위치에 빌드 하도록 업데이트 중이라고 하더군요.

 

- 효율을 생각 해보자면 .. GUI 필요한게 아닌 대부분의 일들은 타언어 수준은 가능합니다.

 

- 게임서버 프로그래머인데 제 지인분이 다니는 국내 게임회사 중에 go 언어로 게임서버 구현된 곳도 한군데 있습니다. 게임업계에서는 go 언어를 도입하는 것에 관심 많은 분들이 종종 있습니다. 메인으로 쓰지않더라도 보조적인 용도로 쓰거나 간단한 프로그램을 만들 때 쓰는거죠. :-)

 

- Ace Framework 대안으로 게임쪽도 go 도입이 확실히 많습니다.

 

- 데탑 쪽 그니까 gui 쪽은 이리저리 해보았지만. 별로 입니다.
메크로, 크롤링 , 서비스 정도는 쓸만하고요,
모바일 쪽은 flutter , react-native 등 이 너무 잘나와서 솔직히 구지 golang 으로 안할꺼 같습니다.

 

(추가)

- 하기 내용 출처: https://namu.wiki/w/Go(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20%EC%96%B8%EC%96%B4)#s-5

 

   나온 지 5년 동안은 구글에 취직이라도 하지 않는 이상[14] 배워봤자 딱히 쓸 데가 없다는 이유로 새로운 언어에 관심이 많은 얼리 어답터 개발자들 사이에서나 알음알음 쓰이던 정도였지만, 다름아닌 구글이 만든 것이기도 하고, 언어 자체가 가진 매력도 있어서 사용자 층이 점차 늘어나는 추세다. 특히 Go 언어를 이용해서 안드로이드 iOS 앱을 제작할 수 있게 적용 중이다.[15] 또한 Python이 그렇듯 웹 개발에도 쓰이고 있고, Revel, Beego 등의 풀 스택 프레임워크나 Gin 등의 마이크로 프레임워크들이 인기를 끌고 있다. Martini는 한국어 문서도 있다. 특히 서버 사이드 언어로서 좋은 평가를 받고 있는데, 대형 서비스가 아닌 간단한 웹사이트의 경우 Go가 자체적으로 지원하는 라이브러리와 Gorilla 같은 툴킷만으로도 쉽게 웹사이트를 만들어낼 수 있다. 최근에는 Gin이나 echo 등의 웹 프레임워크도 활발히 사용되는 중이다.

컨테이너 기반 가상화 도구인 Docker, Kubernetes를 작성하는 데 사용된 언어로 유명하다.

그리고 전부를 Go로 만든 것은 아니지만, 당연히 구글을 비롯해 드롭박스 클라우드플레어[16], 사운드클라우드, 넷플릭스 등에서도 기존의 기능들 중 상당수를 새롭게 Go를 이용해 바꿨다고 한다. 트위치도 많은 부분이 Go로 작성되었다고 하며, 언론사인 뉴욕 타임즈에서도 Gizmo라는 API 백엔드 서비스를 Go를 이용해 만들어 그 소스를 GitHub에 공개한 바 있고, SpaceX에서도 원격 측정 프로그램에서 Go를 사용한다고 한다. 또한 이더리움의 메인 클라이언트인 Geth 역시 Go로 작성되었고, Discord 또한 2020년 기준 최근 Rust로 교체 전까지는 서버와 클라이언트단 언어에 Golang을 채택하고 있었다. 즉 Go는 이미 시장에서 인정받은, 안정성이 검증된 언어라고 할 수 있다.

pkg.go.dev[17]이라는 Go 패키지 호스팅 사이트도 존재한다.

 

(추가2)

- 하기 내용 출처: 

  https://namu.wiki/w/Go(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20%EC%96%B8%EC%96%B4)#s-5

 

   Go 언어의 설계 지향점은 시스템 프로그래밍 언어였지만, 가비지 컬렉션의 지원이나 제네릭의 부재로 인해 박싱/언박싱이 불필요하게 많이 일어나는 등 C/C++을 대체할 수 있는 언어는 아니라는 것에 합의가 이루어지고 있는 상황이다. 실제로 고성능 연산에 사용하기에는 C/C++에 비해 느리며, 저수준 시스템 개발에서는 가비지 컬렉션과 고루틴을 지원하기 위한 무거운 런타임 등으로 인해 사용이 불가능에 가깝다. 그런 이유로 대체로 개발 속도와 실행 속도, 병행성 사이의 적정 지점이 필요한 서버 애플리케이션 개발에 많이 사용되는 편.

 

본 게시물은,

   계속 업데이트 할 예정입니다.

 

(추가)

국내 펌웨어 개발자 커뮤니티를 한데모아 볼 수 있는 앱이 있습니다.

원하는 키워드로 게시판들을 검색하여 원하는 글만 찾아볼 수 도 있습니다.

'모두의펌웨어' 라는 앱인데 하기에서 다운로드 가능합니다.

:=> https://play.google.com/store/apps/details?id=com.opensupport.ModuFirmware 

 

모두의펌웨어 (펌웨어 개발자들 모두 모여랏!) - Google Play 앱

펌웨어 개발자들의 모든 커뮤니티 모아보기!

play.google.com

 

(광고1)

이젠 여기저기 있는 중고거래앱들을 번거롭게 일일이 찾아드릴 필요가 없이 '무료나눔'앱 이거 하나만으로 중고거래앱들의 무료로 나눔하는 물품들을 검색해 볼 수 있습니다. 하기에서 다운로드 가능합니다.

:=> https://play.google.com/store/apps/details?id=com.opensupport.freenanumG

 

무료나눔, 그냥드림, 중고거래 (한번의 검색으로 모든 중고장터를 득템하자!) - Google Play 앱

무료로 원하는 아이템을 득템하자!

play.google.com

 

그럼,

   공유합니다.