GoRoutineGoRoutine은 Go언어의 빠른 병렬 처리를 도와주는 경량 스레드이다. 많은 개발자들이 Go를 채택하는 많은 이유 중 하나가 바로 이 GoRoutine이 있기 때문이라고 생각한다. GoRoutine은 OS thread보다 매우 가볍기 때문에 생성 및 관리 비용이 적고, 컨텍스트 스위칭 오버헤드가 적기 때문에 높은 처리량과 낮은 코스트를 보장한다. 또한 구현이 매우 간단해 빠른 개발을 도와준다. 아래는 AI가 작성한 내용이다.Go 언어의 핵심 기능 중 하나인 GoRoutine은 경량 쓰레드로, 일반적인 멀티 스레딩과 달리 OS 쓰레드보다 훨씬 가볍고 효율적으로 동작합니다. GoRoutine은 Go 런타임에 의해 관리되며, go 키워드를 사용하여 함수를 호출하면 해당 함수가 새로운 Go..
Go언어의 접근 제어Java에서는 default, public, protected, private와 같이 접근제어자가 존재한다. Go에서도 다른 패키지에서 import 해온 구조체, 함수, 변수 등에 대해 접근을 제어할 수 있는데 이름 첫 글자의 대/소문자로 판별한다. 예를 들어, 아래와 같이 accounts 패키지에 두 개의 구조체가 있고 구조체명 첫 글자의 대/소문자가 다르다고 할때, AccountA는 public 구조체로 접근이 가능하고 accountB는 private 구조체로 다른 패키지에서 접근이 불가능하다.package accountstype AccountA struct { Owner string Balance int}type accountB struct { Owner string ..
VariablesGo언어의 상수, 변수 선언은 JS(JavaScript)와 TS(TypeScript)의 중간에 있다는 느낌을 받았다. TS처럼 type을 명시하는 것을 기본으로 하고 JS처럼 타입을 명시하지 않고 빠른 개발이 가능하도록 축약형을 제공한다. 하지만, 축약형은 상수가 아닌 변수일때만 가능하고 처음 초기화된 type에서 다른 type으로의 변경을 허용하지 않는다. JS와 같은 편리함은 있지만 그래도 엄격하다.func main() { /* literal */ const firstName string = "jisung" /* variable */ var lastName string = "jung" lastName = "kim" /* 축약형 - 변수에만 사용 가능 ..