본문 바로가기

io

[Golang] io 패키지 MultiWriter, MultiReader 예제 백엔드 개발에서 데이터 스트림을 효율적으로 제어하는 것은 성능과 직결이 됩니다.io 패키지 활용 예제를 함께 살펴봅시다. 1. MultiWriter왜 쓰는가?로그를 남기거나, 파일을 업로드 할 경우, 동일한 데이터로 여러 일들을 함께 처리해야할 상황데이터를 두 번 읽거나 반복문을 사용하는 것 대신, "MultiWriter" 를 활용해 한 번의 쓰기 동작으로여러 목적지에 데이터를 전달 할 수 있습니다.즉 데이터를 한번 읽고, 여러 목적지에 동시에 쓰기 기능을 제공합니다.로깅 : 표준출력 및 파일 기록무결성 : 파일 업로드 및 해시(Checksum) 계산백업 : 주 저장소 와 보조 저장소 동시 저장- 예제 코드package mainimport ( "crypto/sha256" "encoding/hex" "fm.. 더보기
[Golang] io 패키지 기초 1. io.Copy데이터를 원하는 목적지로 옮기는 표준 메서드왜 쓰는가? : 인메모리 폭주 방지 예 ) 1GB 데이터를 옮길 때 메모리를 1GB 사용하는게 아니라, 내부적으로 32KB 고정 버퍼만 사용해 데이터를 옮깁니다.데이터가 RAM에 쌓이지 않게 해 저사양 서버에서도 대용량을 처리 할 수 있도록 합니다.func copyDemo() { src := strings.NewReader("Hello, Go World!\n") var dst bytes.Buffer io.Copy(&dst, src)} 2. io.TeeReader데이터를 읽음과 동시에 다른 곳에 복사본 전달하는 T 자형 분기점 역할을 합니다.왜 쓰는가? : 일회성 데이터 재활용HTTP 요청의 바디처럼 한 번 읽으면 사라지는 데.. 더보기