Go
단순함을 무기로 한 서버·CLI 언어
Go는 “코드를 똑똑하게 쓰는 언어”가 아니라, 팀과 인프라가 예측 가능하게 움직이도록 만드는 언어다.
1. goroutine은 스레드가 아니다
Section titled “1. goroutine은 스레드가 아니다”goroutine은 OS 스레드가 아니라, Go 런타임이 관리하는 경량 실행 단위다.
핵심 포인트
Section titled “핵심 포인트”- 수천~수만 개 생성 가능
- OS 스레드 수보다 훨씬 많아질 수 있음
- 런타임이 스케줄링 담당
Unity 개발자 관점의 비유
Section titled “Unity 개발자 관점의 비유”- C#의
Task/ Job System에 더 가까움 - 스레드를 직접 관리하지 않는다는 점이 핵심
대화용 정리 문장
“goroutine은 OS 스레드가 아니라, 런타임이 관리하는 경량 작업 단위입니다.”
2. 채널 기반 설계의 장단점
Section titled “2. 채널 기반 설계의 장단점”Go는 공유 메모리 대신 메시지 전달을 장려한다.
- 데이터 레이스 감소
- 설계가 명확해짐
- 흐름이 복잡해질 수 있음
- 디버깅 난이도 상승
Unity 개발자 관점 대응
Section titled “Unity 개발자 관점 대응”- Job Queue
- 메인 스레드에 결과 전달하는 패턴
3. 왜 DevOps 도구는 Go가 많은가
Section titled “3. 왜 DevOps 도구는 Go가 많은가”- 단일 바이너리 배포
- 빠른 빌드
- 크로스 플랫폼
- 표준 라이브러리 강력
Unity 개발자 관점
Section titled “Unity 개발자 관점”- 빌드 서버, CI 도구, 배포 유틸과 궁합 좋음
대화용 정리 문장
“Go는 배포와 운영을 단순하게 만드는 특성 때문에 DevOps 도구에 많이 쓰입니다.”
Unity 개발자가 Go를 알면 좋은 이유
Section titled “Unity 개발자가 Go를 알면 좋은 이유”- 서버/인프라 팀과 기술 대화 가능
- CI/배포 파이프라인 이해도 상승
- 대규모 시스템의 설계 감각 확장