[go] bufio 패키지 사용 시 주의할 점
Go 언어에서 파일을 읽거나 쓸 때 bufio
패키지는 성능을 향상시키고 사용이 간편하도록 도와줍니다. 하지만 사용할 때 몇 가지 주의할 점이 있습니다.
버퍼 크기 조절
bufio
패키지를 사용할 때 가장 주의해야 할 점은 버퍼 크기를 적절히 조절하는 것입니다. 충분히 큰 버퍼를 사용하면 I/O 작업이 효율적으로 처리되지만, 너무 큰 버퍼를 사용하면 메모리 소비가 늘어나고 성능에 오히려 악영향을 줄 수 있습니다.
예를 들어, 파일을 한 번에 읽어서 처리하는 경우라면 큰 버퍼를 사용하는 것이 좋겠지만, 반대로 한 번에 작은 양의 데이터만을 읽어야 하는 경우에는 작은 버퍼를 사용하는 것이 효율적일 수 있습니다.
Flush 호출
bufio.Writer
를 사용하여 파일에 쓰기 작업을 수행할 때는 Flush
함수를 호출하여 버퍼에 남아 있는 데이터를 파일에 쓰도록 해야 합니다. Flush
호출을 잊어버리면 파일에 데이터가 제대로 쓰이지 않을 수 있습니다.
올바른 에러 처리
bufio
패키지를 사용할 때는 항상 에러를 올바르게 처리해야 합니다. 버퍼에 데이터를 쓸 때나 읽을 때 발생하는 에러를 놓치지 말고 처리해야 합니다.
bufio
패키지를 사용할 때 이러한 주의사항을 명심한다면 안정적이고 효율적인 파일 I/O 작업을 수행할 수 있습니다.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Create("test.txt")
if err != nil {
panic(err)
}
defer file.Close()
writer := bufio.NewWriter(file)
_, err = writer.WriteString("Hello, World!\n")
if err != nil {
panic(err)
}
writer.Flush()
}
위의 예제에서는 bufio.Writer
를 사용하여 파일에 문자열을 쓰고 있습니다. Flush
함수를 호출하여 버퍼에 남아 있는 데이터를 파일에 쓰도록 하고 있으며, 에러도 적절히 처리하고 있습니다.