Golang 정리(1)-개념

강다빈·2026년 7월 8일

golang 공부

목록 보기
1/11

1. 컴파일 언어

golang은 소스코드를 기계어로 번역하여 실행파일을 만들어내는 언어임, 빠른 컴파일 속도를 가짐

2. 런타임 포함

  • 런타임은 '프로그램이 실행되고 있는 환경' 또는 '프로그램 실행을 도와주는 백그라운드 시스템'을 의미
  • 일반적인 Java나 JavaScript 같은 언어는 PC에 런타임을 설치해야하는 단점 존재
  • golang의 경우 런타임을 실행파일 안에 포함시킴
  • 내장된 런타임 기능(가비지 컬렉션, 고루틴 스케줄링)

3. Goroutine(고루틴)

  • 기존 멀티스레딩: os가 제공하는 스레드를 여러 개 생성하여 동시에 여러 작업을 처리하는 방식, 하지만 context switching(컨텍스트 스위칭) 비용이 비쌈(스레드 생성 및 전환하는 것이 무거워서 서버 부하가 많음)
  • 기존 비동기: 하나의 작업이 끝날 때까지 기다리지 않고 다른 작업을 먼저 처리하는 방식으로 코드가 복잡해지는 단점 있음(javascript의 경우 콜백 지옥)
    Goroutine
  • os 스레드 쓰지 않고 '자체 경량 가상 스레드'인 고루틴 사용
  • 엄청 가볍고 사용이 쉬워 코드 깔끔
profile
하루살이

0개의 댓글