서론 중요! 이 글은 1.27.0 버전을 기준으로 작성한 글이다. 1.27.0 버전 릴리즈 노트 소스코드 올것이 와버렸다. 지난 글에서는 Go 런타임이 무엇인지, 그리고 프로그램이 main.main()에 도달하기까지 어떤 순서로 초기화되는지를 살펴봤다. Scheduler에 대해서는 G, M, P를 중심으로 동작한다는 것과 Local Run Queue, Work Stealing 같은 이름들이 있다는 정도만 확인하고 넘어갔다. 이번 글에서는 그 부분을 runtime/proc.go와 runtime/runtime2.go 파일 같은 실제 고 파일을 보면서 따라가보려고 한다. go doSomething() 코드는 go 키워드 하나뿐이다. 이 한 줄이 실제로 CPU 위에서 실행되기까지 런타임 안에서 어떤 일들이 일어나는지를 확인하는 것이 이번 글의 목표다. ...
Golang 기초 다지기 1편 - Go 런타임을 이해하기 위한 준비
서론 중요! 이 글은 1.27.0 버전을 기준으로 작성한 글이다. 1.27.0 버전 릴리즈 노트 소스코드 Go 를 공부하다보면 자연스럽게 다음과 같은 단어들을 접하게 된다. 고루틴 고루틴 스케줄러 G-M-P 모델 가비지 컬렉터 각각 독립적인 기능처럼 보이지만, 실제로는 대부분 go runtime 과 밀접하게 관련되어있다. 아래 코드를 살펴보자. package main import "fmt" func main() { fmt.Println("Hello World!") } 이 코드만 보면 단순히 main() 함수에서 시작해 문자열을 출력하고 종료되는것처럼 보인다. 하지만 실제 프로그램이 동작하기 위해서는 보이지 않는 꽤 많은 작업들이 필요하다. ...
Github pages, Hugo 로 내 개인 블로그 만들기(첫 글)
Github pages, Hugo 로 내 테크 블로그 만들기 서론 되는대로 살자 라는 마음으로 코더 인생을 살고있었으나 이대로는 안되겠다는 위기감에 기술블로그를 작성하려한다. 사실 벨로그를 아주 잠깐 작성을 했으나 내 의지부족으로 바로 유기해버렸었는데 이번에는 느리더라도 꾸준하게 작성하는것이 목표이다. github pages 와 hugo 로 개인 블로그를 호스팅하는 과정을 정리한 글이다. 벨로그, 티스토리, 네이버 등 웹 ui 를 통해서 편하게 글을 작성하고 공유하는 방법이 있지만 단순히 https://유저네임.github.io 라는 주소가 뭔가 멋있기 때문에 나는 깃헙 pages 에 블로그를 만들것이다. ...