[go] go 언어에서의 난수 생성 시 발생할 수 있는 문제점
Go 언어는 math/rand
패키지를 통해 난수를 생성할 수 있습니다. 하지만 이 과정에서 몇 가지 문제가 발생할 수 있습니다. 이번 글에서는 Go 언어에서 난수 생성 시 주의할 점에 대해 살펴보겠습니다.
목차
난수 생성 함수 활용
Go 언어에서는 math/rand
패키지를 사용하여 난수를 생성할 수 있습니다. 흔히 Intn
함수를 사용하여 0 이상의 정수를 생성하는데, 이 함수는 rand
패키지의 글로벌 생성기를 사용합니다.
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
// 0 이상 100 미만의 난수 생성
randomNum := rand.Intn(100)
fmt.Println(randomNum)
}
Seed 설정
rand.Seed
함수를 사용하여 시드(Seed)를 설정할 수 있습니다. 시드를 설정하지 않으면 프로그램이 실행될 때마다 같은 시퀀스의 난수가 생성됩니다. 시드를 설정하여 난수 생성기의 초기 상태를 다르게 설정하면 이 문제를 해결할 수 있습니다.
rand.Seed(42) // 시드 설정
결론
Go 언어에서 난수 생성 시에는 Seed를 설정하여 안전한 난수를 생성할 수 있습니다. 또한, math/rand
패키지의 제한된 난수 생성 기능을 알고 사용하는 것이 중요합니다.
위의 내용을 숙지하고, 항상 안전한 난수 생성을 위해 주의해 주시기 바랍니다.
참고 자료: