Skip to content

Go

단순함을 무기로 한 서버·CLI 언어

Go는 “코드를 똑똑하게 쓰는 언어”가 아니라, 팀과 인프라가 예측 가능하게 움직이도록 만드는 언어다.


goroutine은 OS 스레드가 아니라, Go 런타임이 관리하는 경량 실행 단위다.

  • 수천~수만 개 생성 가능
  • OS 스레드 수보다 훨씬 많아질 수 있음
  • 런타임이 스케줄링 담당
  • C#의 Task / Job System에 더 가까움
  • 스레드를 직접 관리하지 않는다는 점이 핵심

대화용 정리 문장

“goroutine은 OS 스레드가 아니라, 런타임이 관리하는 경량 작업 단위입니다.”


Go는 공유 메모리 대신 메시지 전달을 장려한다.

  • 데이터 레이스 감소
  • 설계가 명확해짐
  • 흐름이 복잡해질 수 있음
  • 디버깅 난이도 상승
  • Job Queue
  • 메인 스레드에 결과 전달하는 패턴

  • 단일 바이너리 배포
  • 빠른 빌드
  • 크로스 플랫폼
  • 표준 라이브러리 강력
  • 빌드 서버, CI 도구, 배포 유틸과 궁합 좋음

대화용 정리 문장

“Go는 배포와 운영을 단순하게 만드는 특성 때문에 DevOps 도구에 많이 쓰입니다.”


Unity 개발자가 Go를 알면 좋은 이유

Section titled “Unity 개발자가 Go를 알면 좋은 이유”
  • 서버/인프라 팀과 기술 대화 가능
  • CI/배포 파이프라인 이해도 상승
  • 대규모 시스템의 설계 감각 확장