본문 바로가기
728x90
반응형

DevOps/GoLang7

Go AES-256 암호화 AES(Advanced Encryption Standard) - 비밀 키 하나로 메세지를 암호화하고, 다시 원래 메시지로 복호화한다. 이를 대칭키(symmetric) 방식이라 한다. - 비밀 키의 비트 수에 따라 128, 192, 256으로 나누며, 각각의 바이트는 16바이트, 24바이트, 32바이트이다. - 대부분 AES-256을 사용한다. Encryption - 암호화 - 32바이트 길이의 키를 사용하여 새로운 AES 암호 생성한다. package main import ( "crypto/aes" "crypto/cipher" "crypto/rand" "fmt" "io" ) func main() { text := []byte("암호화") key := []byte("passphrasewhichneedsto.. 2023. 1. 10.
Go UUID/GUID generator 1. UUID - UUID는 16 바이트 또는 128 바이트 숫자로 구성되어 있고, 생성된 UUID가 동일할 확률은 극히 드물다. - UUID는 32개의 16진수로 표시되며, 하이픈으로 구분된 5부분으로 구성된다. - 8-4-4-4-12의 형식으로 되어 있다. 1) github.com/google/uuid package main import ( "fmt" "strings" "github.com/google/uuid" ) func main() { uuidWithHyphen := uuid.New() fmt.Println(uuidWithHyphen) uuid := strings.Replace(uuidWithHyphen.String(), "-", "", -1) fmt.Println(uuid) } 2) githu.. 2023. 1. 10.
Go 구조체 & 포인터 & 슬라이스 & 맵 구조체 - 이름이 지정된 필드가 포함된 타입 type Circle struct { x float64 y float64 r float64 } or type Circle struct { x, y, z float64 } 초기화 var c Circle -> 기본적으로 0으로 설정된 지역 Circle 변수가 생성된다. c := new(Circle) -> 모든 필드에 대한 메모리가 할당되고, 각 필드는 0 값으로 설정된 후 포인터가 반환된다. 각 필드에 값을 할당하고 싶은 경우, c := Circle{x: 0, y: 0, r: 5} or c := Circle{0, 0, 5} 필드 - 필드 접근 방법 위에 예시를 활용하면, fmt.Println(c.x, c.y, c.r) c.x = 10 c.y = 5 - circle.. 2023. 1. 8.
Go 반복문 & 제어문 for func main() { for i := 1; i 2023. 1. 8.
Go 변수 & 상수 변수 변수 선언 var a int Short Assignment Statement ( := ) 사용 a := 1 변수 선언문 - 초기값 할당 var a int = 1 동일한 타입의 변수가 복수개 있을 경우 var i, j, k int 상수 const 사용하여 선언 const c int = 10, const s string = "Hi" Go 에서는 할당되는 값을 보고 그 타입을 추론하는 기능이 자주 사용된다. 즉, int, string 을 생략하면 Go에서 자동으로 그 타입을 추론하게 된다. const c = 10, const s = "Hi" 여러 개의 상수들을 묶어 지정할 수 있다. 더보기 const ( Visa = "Visa" Master = "MasterCard" Amex = "American Exp.. 2023. 1. 2.
Go 데이터 타입 부울린 타입 bool - true, false 특별한 1비트 정수 타입이다. && = and, || = or, ! = not 문자열 타입 string - string은 한번 생성되면 수정될 수 없는 Immutable 타입이다. 공백도 하나의 문자로 간주된다. 문자열에는 1이 아닌 0부터 시작하는 인덱스가 지정돼 있다. 문자열 연결은 덧셈과 같은 기호를 쓴다. 정수형 타입 장비에 의존적인 정수 타입 - int, uint, uintptr 부호가 있는 정수(signed integer) - int8, int16, int32, int64 부호가 없는 정수(unsigned integer) - uint8, uint16, uint32, uint64 Float 및 복소수 타입 부동 소수점 타입 - float32(단정도 .. 2023. 1. 2.
Go 프로그래밍 언어 GO 프로그래밍 언어 2007년 구글에서 개발을 시작하여 2012년 GO 버젼 1.0을 완성하였다. GO는 이후 계속 향상된 버젼을 내 놓았으며 2022년 초에는 버젼 1.18 에 이르렀다. 흔히 golang 이라고도 불리우는 Go 프로그래밍 언어는 구글의 V8 Javascript 엔진 개발에 참여했던 Robert Griesemer, Bell Labs에서 유닉스 개발에 참여했던 Rob Pike, 그리고 역시 Bell Labs에서 유닉스 개발했으며 C 언어의 전신인 B 언어를 개발했던 Ken Thompson이 함께 개발하였다. Go는 전통적인 컴파일, 링크 모델을 따르는 범용 프로그래밍 언어이다. Go는 일차적으로 시스템 프로그래밍을 위해 개발되었으며, C++, Java, Python의 장점들을 뽑아 만들.. 2023. 1. 2.
728x90
반응형