copy1 [TIL] golang buffer 복사 golang에서 buffer를 io.ReadSeeker 인터페이스로 복사해줄 일이 생겼다. buffer 내용은 이후에 읽고 수정하기 때문에 consume하면 안된다. 내부 데이터만 복사해서 넘겨줘야 했다. #fail 1: bytes로 reader 만들어주기 data := bytes.NewReader(rw.Buffer().Bytes()) bytes slice를 그대로 reader로 넘겨주었는데, 이 데이터를 수정하는 시점과 data를 읽는 시점에서 timing issue가 생겼다. data를 읽는 함수가 goroutine으로 async로 구현되어 있기 때문이다. Buffer의 bytes 설명을 보면 다음과 같이 적혀 있다. The slice aliases the buffer content at least .. 2023. 12. 21. 이전 1 다음