#go
노트 2개
Computer Science › Programming Languages
Go 동시성: 고루틴, 채널, select, context, syncGo의 동시성 도구를 정리한다. 고루틴이 OS 스레드보다 가벼운 이유와 G·M·P 스케줄러의 시스템 콜 처리·스피닝, 버퍼 없는·버퍼 있는 채널의 동작과 닫기·nil 채널 규칙, select의 무작위 선택과 타임아웃·논블로킹 패턴, context로 취소·마감 시간을 전파하는 법, sync 패키지의 Mutex·RWMutex·WaitGroup·Once·Pool·Map과 atomic, 레이스 디텍터.
Computer Science › Programming Languages
Go 언어: 설계 원칙, 타입, 에러 처리, 빌드와 테스트, GCGo의 장단점과 The Zen of Go의 원칙, 암묵적으로 구현되는 인터페이스와 nil 인터페이스 함정, 값과 포인터 리시버, 배열과 슬라이스 헤더·append, Swiss Table 기반 맵, 구조체 임베딩, 제네릭과 타입 제약, error 값과 감싸기·errors.Is/As, defer·panic·recover, 정적 바이너리 빌드와 모듈·MVS·워크스페이스, 테이블 기반 테스트와 벤치마크, 세대 구분도 압축도 하지 않는 동시 GC와 GOGC·GOMEMLIMIT, 클린 아키텍처 계층으로 프로젝트를 나누는 방법을 정리한다.