들어가기에 앞서 이 글은 "Go언어를 활용한 분산 서비스 개발"이라는 책을 보고 정리한 내용입니다 먼저 로그 패키지를 만들기 전에 용어를 머리에 집어넣고 가야 편합니다 레코드(Record) : 로그에 정리할 데이터 저장 파일(Store): 레코드를 저장하는 파일 인덱스 파일(Index): 인덱스를 저장하는 파일 세그먼트(Segnment): 저장 파일과 인덱스 파일을 묶어서 말하는 추상적 개념 로그(Log): 모든 세그먼트를 묶어서 말하는 추상적 개념 1. 스토어(Store) 만들기 로그 패키지를 위한 LetsGo/WriteALogPackage/internal/log/stroe.go package log import ( "bufio" "encoding/binary" "os" "sync" ) var ( en..
https://ultimate-go-korean.github.io/translation/#go-%EC%96%B8%EC%96%B4%EC%9D%98-%EC%97%AD%ED%95%99%EC%A0%81-%EA%B3%A0%EC%B0%B0language-mechanics The Ultimate Go Study Guide ultimate-go-korean.github.io 이 글은 위 전자책을 보고 정리한 내용입니다 Go에서 Slice를 생성하면 3개의 워드(word) 데이터 구조가 만들어집니다 1번 워드는 배열의 위치를 가르키며 2번 워드는 슬라이스의 길이를 3번 워드는 슬라이스의 총 용량을 보통 배열(Array)에서는 [10]이라면 타입에 따라 4byte(int)*10 = 40byte를 용량, 길이는 10이라고 ..
들어가기에 앞서 Go를 알아보면서 병행성이 있는 건 알고 있었지만 이렇게 코드로 겪어보니 운영체제 공부할 때가 떠올라 신기하기도 하고 재밌기도 했다 병행성과 병렬성의 차이를 알고 가야될 필요가 있다 (헷갈림..) 병렬성과 병행성의 차이 병렬성은, 실제로 여러 작업을 동시에 수행하는 것을 의미한다. 병행성은, 마치 여러 일을 동시에 하듯이 수행하는 것을 의미한다. Go 루틴이란 Go 루틴의 특징은 OS가 아닌 프로그램에서의 Time _ Sharing 처리이다 프로세스(Process)를 쓰던 스레드(Thread)를 쓰던 오버헤드가 생길 수 밖에 없다 왜냐면 우리가 컴퓨터를 쓸 때 많은 동작을 컴퓨터에게 시키기 때문이다 하나의 명령만 컴퓨터 주는 게 아니라 이것 저것 시키기 때문에 컴퓨터 안에서는 컨텍스트 스..