[go] Go 언어에서의 리소스 관리와 에러 처리
Go 언어는 메모리 관리와 에러 처리에 대해 매우 강력한 기능을 제공합니다. 이러한 기능들을 적절히 활용하여 안정적이고 효율적인 프로그램을 개발할 수 있습니다.
리소스 관리
Go 언어는 메모리 관리를 위해 가비지 컬렉션(garbage collection)을 지원합니다. 가비지 컬렉션은 더 이상 사용되지 않는 메모리를 자동으로 수거하여 메모리 누수를 방지합니다. 또한, Go 언어는 포인터(pointer)를 직접 다루는 것을 지원하며, 슬라이스(slice)와 맵(map) 등의 자료구조를 활용하여 메모리를 효율적으로 활용할 수 있도록 지원합니다.
아래는 Go 언어에서의 메모리 할당과 해제의 간단한 예제 코드입니다.
package main
import (
"fmt"
)
func main() {
// 메모리 할당
num := new(int)
*num = 10
fmt.Println(*num)
// 메모리 해제
freeMem(num)
}
func freeMem(num *int) {
fmt.Println("메모리 해제:", *num)
// 메모리 해제
}
에러 처리
Go 언어는 에러 반환(error returning)을 통해 에러 처리를 지원합니다. 함수가 에러를 반환하도록 정의되어 있으면, 호출하는 쪽에서 해당 에러를 처리할 수 있습니다. 이를 통해 안정적인 프로그램을 작성할 수 있습니다.
아래는 Go 언어에서의 에러 처리 예제 코드입니다.
package main
import (
"fmt"
"errors"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("나누는 수는 0일 수 없습니다.")
}
return a / b, nil
}
func main() {
result, err := divide(6, 0)
if err != nil {
fmt.Println("에러 발생:", err)
return
}
fmt.Println("나눈 결과:", result)
}
이처럼 Go 언어는 메모리 관리와 에러 처리를 위한 강력한 기능을 제공하여 안정적이고 효율적인 프로그램을 개발할 수 있게 도와줍니다.
참고 자료:
- https://golang.org/doc/
- https://gobyexample.com/