Skip to content

후기

문법 편과 심화 편을 모두 꼼꼼히 읽고 직접 코드를 작성했다면 Go 의 문법이 어렵지 않고 기능도 많지 않다는 것을 알게 될 것입니다. 경험이 풍부한 개발자라면 며칠 만에 익힐 수 있으며, 이는 완전히 엔지니어링 지향적인 언어라는 것을 이후 코딩 과정에서 점차 체감하게 될 것입니다. 학습 후 어디에 적용해야 할지 막막하고 더 깊이 학습하고 싶다면 아래 몇 가지 학습 경로와 예시 프로젝트를 참고하시기 바랍니다.

웹 개발

웹 개발은 Go 언어에서 매우 흔한 사용 사례입니다. 다음 오픈소스 웹 프레임워크를 시도해 볼 수 있습니다.

  • Gin
  • Echo
  • Iris
  • Hertz
  • net/http, 또는 프레임워크 없이 Go 기본 제공 네이티브 HTTP 표준 라이브러리 사용

마이크로서비스 개발을 원한다면 다음 오픈소스 프레임워크를 추천합니다.

데이터베이스와 상호작용이 필요하다면 다음 오픈소스 라이브러리를 추천합니다.

다음 프로젝트를 참고하여 학습할 수 있습니다.

  • gin vue admin
  • go-zero-looklook
  • gin-admin, 단일 웹 프로젝트는 이 프로젝트를 참고하여 학습하는 것을 추천합니다.
  • go-platform, 마이크로서비스 프로젝트는 이 프로젝트를 참고하여 학습하는 것을 추천합니다.

IM 통신

Go 를 사용하여 IM 을 개발할 때 다음 오픈소스 프로젝트를 추천합니다.

네트워크 프로그래밍

Go 는 네트워크 프로그래밍 분야에서도 많이 활용됩니다. 아래는 몇 가지 참고할 만한 오픈소스 프로젝트입니다.

게임 서버

게임 서버 분야에서 점점 더 많은 기업이 Go 방향으로 전환하고 있습니다.

데이터베이스 개발

데이터베이스 개발은 어느 정도 기술적 배경이 필요합니다. Go 언어 기반의 데이터베이스나 엔진도 적지 않으며, 단순히 소스 코드를 읽는 데도 많은 시간이 소요됩니다.

  • badger, 고속 KV 데이터베이스
  • dgraph, 그래프 데이터베이스
  • cayley, 그래프 데이터베이스
  • etcd, 분산 키 - 값 데이터베이스
  • rosedb, 키 - 값 데이터베이스, 입문에 최적의 선택
  • nutsdb, 키 - 값 데이터베이스
  • prometheus, 시계열 데이터베이스
  • tidb, 분산 관계형 데이터베이스
  • cockroach, 분산 SQL 데이터베이스
  • rqlite, SQLite 기반 분산 데이터베이스

명령줄 도구

Go 는 명령줄 CLI 도구 개발에 매우 적합합니다. 아래는 몇 가지 명령줄 개발 프레임워크 또는 라이브러리입니다.

  • flag, flag 표준 라이브러리
  • cobra, cobra 를 사용한 CLI 개발을 강력 추천. Docker, K8S 등 많은 유명 프로젝트가 cobra 를 기반으로 합니다.
  • go-pretty, 명령줄에서 보기 좋은 출력을 위해 사용
  • cli, 경량 명령줄 프레임워크
  • kingpin, 강력하고 유연한 명령줄 파싱 라이브러리

cobra 는 매우 흔히 사용되며 이를 기반으로 한 명령줄 개발 프로젝트가 많습니다. 아래는 몇 가지 참고 프로젝트입니다.

위는 일반적인 분야만 나열했으며, Go 가 서버 분야에서 널리 활용되는 반면 클라이언트 분야는 상대적으로 적다는 것을 알 수 있습니다. 실제로 Go 는 다른 분야에서도 많이 활용되며, 예를 들어 WebRTC, 블록체인, 객체 저장소, 클라우드 컴퓨팅 등이 있습니다. 관심이 있다면 Github 에서 직접 확인해 보십시오.

마지막으로 Go 언어의 구현 세부사항을 더 깊이 이해하고 싶다면, 예를 들어 slicemap 의 내부 데이터 구조, 고루틴 스케줄러 구현, GC 가비지 컬렉션 과정 등은 구현 원리 장에서 더 많은 내용을 확인하실 수 있습니다.

Golang by www.golangdev.cn edit