Backend/꾸준히 TIL

컬럼의 primary key일 때 어떻게 랜덤한 값(고유값)을 나타낼까?

개발하는 후딘 2021. 10. 7. 01:44
728x90
반응형

현재 작성날짜는 time.Now().UTC() 로 나타낼 수 있다.

게시물의 고유키값은 GetMakeID()를  이용하여 고유한 값을 나타낼 수 있다.

func GenerateKey(length int) string {
	chars := []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789")
    var b string.Builder
    for i := 0 ; i< length ; i++ {
    	r := rand.New(rand.Newsource(time.Now().UnixNano()))
        b.WriteRune(chars[r.Intn(len(chars))])
    }
    
    str := b.String()
    return str
}


func GetMakeID(params ...string) string {
	now := time.Now()
    gk := GenerateKey()
    return strings.Join([]string{now.Format("060102150430"), gk}, "")

}

 

728x90
반응형