반응형 전체 글66 Golang UUID 생성 UUID(Universally Unique Identifier)는 범용 고유 식별자를 의미한다. UUID는 랜덤 값에 시간, MAC 주소 등의 정보를 조합하여 생성된다. UUID는 일반적으로 데이터베이스 레코드 식별자, 세션 ID, 파일명 등에 사용된다. Go에서 UUID를 생성하려면 UUID v4를 사용할 수 있다. UUID v4는 완전한 무작위성에 기반한 128비트 숫자로, 거의 중복될 가능성이 매우 적다. Go에서 UUID v4를 생성하는 방법은 다음과 같다. package main import ( "fmt" "github.com/google/uuid" ) func main() { // Generate a new UUID v4 uuid := uuid.New() // Print the UUID fmt.. 2023. 3. 27. Golang 임시 파일 생성(os.CreateTemp) os.CreateTemp() 함수는 임시 파일을 생성하는 함수이다. 함수를 호출하면 임시 파일이 생성되고, 그 파일을 열 수 있는 파일 핸들과 파일 이름을 반환한다. 파일 핸들을 사용하여 파일에 쓰거나 파일에서 읽을 수 있다. 일반적으로 임시 파일은 프로그램이 실행되는 동안 사용되며, 더 이상 필요하지 않을 때 제거된다. 함수 원형은 다음과 같다. func CreateTemp(dir, prefix string) (*os.File, error) 인자로는 다음과 같은 값이 전달된다. dir: 임시 파일이 생성될 디렉토리 경로이다. 이 값이 빈 문자열이면 기본값으로 /tmp가 사용된다. prefix: 임시 파일 이름의 접두어다. 이 값이 빈 문자열이면 기본값으로 "tmp"가 사용된다. 예제 package ma.. 2023. 3. 27. Golang CSV를 JSON 변환 Json을 csv로 변환하는 방법은 다음의 링크를 참고하면 된다. https://zerostarting.tistory.com/40 2023. 3. 15. Golang JSON을 CSV로 변환 Go에서 Json을 CSV로 변경하기 위해서는 encoding/csv와 encodeing/json 패캐지를 사용한다. package main import ( "encoding/csv" "encoding/json" "fmt" "log" "os" ) func main() { // 예제 데이터 jsonData := `[{"name":"Uhm", "age":19, "city":"Soeul"}, {"name":"Jun", "age":23, "city":"Tokyo"}, {"name":"Sik", "age":27, "city":"Los Angeles"}]` // json 데이터를 슬라이스 형태의 맵으로 변환. var data []map[string]interface{} err := json.Unmarshal([]b.. 2023. 3. 15. Golang 디렉토리 생성(os.Mkdir, os.MkdirAll) Go에서 하나의 디렉토리를 생성할 때는 os.Mkdir() 함수를 사용한다. 만약 디렉토리의 계층(하위 디렉토리 생성)을 구분하여 생성하고 싶으면 os.MkdirAll() 함수를 사용한다. 두 함수는 디렉토리의 경로와 파일 시스템 권한을 인수로 넣어주어야 한다. 다음의 예제는 os.ModePerm 함수를 사용한다. os.ModePerm 함수는 파일 또는 디렉토리의 퍼미션 모드를 나타내는 상수이다. 이 함수는 파일 시스템에서 새로운 파일 또는 디렉토리를 만들 때 사용된다. os.ModePerm 함수는 32비트의 부호 없는 정수형 상수값으로, 0777이라는 8진수 값과 동일하다. 이 값은 파일 또는 디렉토리의 퍼미션 모드를 의미한다. 참고로 0777은 사용자, 그룹, 기타 사용자 모두가 읽기, 쓰기, 실행 .. 2023. 3. 15. Golang sync.WaitGroup sync.WaitGroup는 고루틴이 실행되는 동안 다른 고루틴이 모두 종료될 때까지 기다리는 데 사용되는 동기화 기능이다. WaitGroup은 프로그램이 실행되는 동안 작업이 완료될 때마다 감소하는 카운터를 유지한다. sync.WaitGroup Method func (wg *WaitGroup) Add(delta int) : 대기 그룹에 고루틴 개수 추가 func (wg *WaitGroup) Done() : 고루틴이 끝났다는 것을 알려줄 떄 사용 func (wg *WaitGroup) Wait() : 모든 고루틴이 끝날 때까지 기다린다. 기본적으로 WaitGroup은 0으로 초기화되며, Add(n) 메서드를 사용하여 카운터 값을 증가시킨다. 이후에 Done() 메서드를 사용하여 작업이 완료될 때마다 카운터.. 2023. 3. 6. Golang Context Golang에서 Context는 동시성 및 네트워크 코드에서 사용되는 중요한 패턴이다. 이는 프로세스 내에서 실행 중인 코드 간의 정보 공유를 위한 작은 객체로 생각할 수 있다. Context는 고루틴간 통신을 통해 전달된다. Context는 여러 값을 보유할 수 있지만 일반적으로 다음과 같은 정보를 포함한다. 요청 기한 (request deadline) 취소 신호 (cancel signal) 권한 (authentication) 요청 범위 (request-scoped data) 일반적으로 Context는 함수의 인자로 전달되며, 실행 중인 함수의 하위 함수에 전달된다. Context는 요청 범위의 데이터를 전달하며, 여러 함수를 통해 전달될 수 있다. Context 패키지는 다양한 기본 메소드를 제공한다.. 2023. 3. 5. Golang if문에 세미콜론(;) Go언어에서 if문 사용 시 세미콜론을 사용할 수 있다. 예를 들면 다음과 같다. 아래의 두 예제는 같은 의미이다. 첫번째 예제) if v, err := Read(); err == nil { // do something with v, because Read() did not // had an error (err) } 두번째 예제) if v, err := Read(); err == nil { // do something with v, because Read() did not // had an error (err) } 두 문법의 결과는 같지만 차이점은 첫 번째 예제에서는 v와 err의 범위는 if {}블록으로 제한된다. 두 번째 예제에서는 v와 err은 선언된 블록에 속해 있다. 즉, if {}에 속해있지 .. 2023. 3. 4. Python Code style Python은 특유의 철학 때문에 문법이 엄격한 편이다. PEP 8(Python Enhancement Proposal 8)이라는 공식 가이드 라인에서 제시된다. 정상 작동과는 별개로 코드의 가독성을 높이기 위해 권장하는 스타일과 규칙을 정의하며, 파이썬 개발자들 사이에서 널리 사용된다. 참고로 필수가 아닌 권장이다.!!! https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: .. 2023. 2. 18. 이전 1 2 3 4 5 6 7 8 다음 반응형