반응형

Programming 43

Golang 디렉토리 생성(os.Mkdir, os.MkdirAll)

Go에서 하나의 디렉토리를 생성할 때는 os.Mkdir() 함수를 사용한다. 만약 디렉토리의 계층(하위 디렉토리 생성)을 구분하여 생성하고 싶으면 os.MkdirAll() 함수를 사용한다. 두 함수는 디렉토리의 경로와 파일 시스템 권한을 인수로 넣어주어야 한다. 다음의 예제는 os.ModePerm 함수를 사용한다. os.ModePerm 함수는 파일 또는 디렉토리의 퍼미션 모드를 나타내는 상수이다. 이 함수는 파일 시스템에서 새로운 파일 또는 디렉토리를 만들 때 사용된다. os.ModePerm 함수는 32비트의 부호 없는 정수형 상수값으로, 0777이라는 8진수 값과 동일하다. 이 값은 파일 또는 디렉토리의 퍼미션 모드를 의미한다. 참고로 0777은 사용자, 그룹, 기타 사용자 모두가 읽기, 쓰기, 실행 ..

Programming/Golang 2023.03.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() 메서드를 사용하여 작업이 완료될 때마다 카운터..

Programming/Golang 2023.03.06

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 {}에 속해있지 않다는 뜻이다..

Programming/Golang 2023.03.04

Python 코드 스타일 컨벤션

Python은 특유의 철학 때문에 문법이 엄격한 편이다.PEP 8(Python Enhancement Proposal 8)이라는 공식 가이드 라인에서 제시된다.정상 작동과는 별개로 코드의 가독성을 높이기 위해 권장하는 스타일과 규칙을 정의하며, 파이썬 개발자들 사이에서 널리 사용된다. 참고로 필수가 아닌 권장이다.!!! https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.orgPEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-..

Programming/Python 2023.02.18

Python List 함수

자주 사용하는 list 함수함수설명append(x)리스트 마지막에 x 추가sort(key=None, reverse=True/False)리스트 오름차순 정렬(reverse=False)리스트 내림차순 정렬(reverse=True)reverse()리스트 원소 순서 뒤집기, 정렬 xindex(x)리스트에 x값 존재할 경우 위치값 반환, 없으면 에러remove(x)리스트에서 처음 나오는 x 삭제pop()pop(x)리스트 마지막 원소 꺼내기리스트 x번째 원소 꺼내기count(x)리스트에 포함된 원소 x의 개수extend(x)리스트에 x리스트 더하기clear()리스트의 모든 원소 삭제del A리스트(A)내의 위치 또는 범위를 지정하여 삭제 예제appendfruit_list = ['apple', 'banana', '..

Programming/Python 2023.01.27

omitempty

Go에서는 객체를 json으로 변환하려면 struct를 선언해야 한다. omitempty는 해당 struct의 필드에 데이터가 없으면 json으로 변환 시 해당 필드는 생략된다. 즉 value가 false, 0, nil, 빈 배열 일 떄를 말한다. 사용 예시는 다음과 같다. type User struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email,omitempty"` PhNum string `json:"phNum,omitempty"` } func main() { // Json 데이터 예시 var uhm = User{ Name: "Uhm", Age: 20, Email: "uhm@gmail.com", } byte, _..

Programming/Golang 2023.01.10

Golang 문자열 다루기 (strconv, strings)

Golang을 사용하여 개발할 때 필요한 문자열을 다루는 함수들을 정리합니다. 가끔 함수명이 기억나지 않을 때, 보려고 작성 자주 사용하는 함수 정리 문자열 변환 strconv 함수 설명 사용 예시 Atoi(s string) (i int, err error) 숫자로 이루어진 string을 int으로 변환 한다. strconv.Atoi("1") // 1 Itoa(i int) string int형 숫자를 string으로 변환한다. strconv.Itoa(1) // "1" FormatFloat(f float, fmt byte, prec, bitSize) string float를 string으로 변환한다. strconv.FormatFloat(1.2, 'f', -1, 64) // "1.2" ParseFloat(s..

Programming/Golang 2022.12.10

Python 개요 및 설치 방법

Python의 창시자는 네덜란드의 프로그래머 귀도 반 로섬이다.1989년 크리스마스 주에 심심한 김에 만들어진 프로그래밍 언어이다. Python의 특징플랫폼 독립적인 인터프리터 언어객체 지향적, 동적 타이핑 언어가독성 => 간결, 코드 블록 들여쓰기(indentation)생산성 설치 방법1. Python 공식 홈페이지에서 패키지를 설치한다.https://www.python.org/downloads/ Download PythonThe official home of the Python Programming Languagewww.python.org사용중인 OS에 맞게 설치하면 되는데, 아마 대부분 윈도우 사용자가 많으니 Windows를 설치한다. 2. 설치한 인스톨러를 실행하면 다음과 같은 화면이 나타나..

Programming/Python 2022.12.05

Golang Time

time 패키지 사용 예시는 다음의 코드와 같다. package main import ( "fmt" "time" ) func main() { fmt.Println(time.Now().Format("2006-01-02 15:04:05")) } // result: 2009-11-10 23:00:00 뿐만 아니라 아래의 코드와 같이 사용이 가능하다. package main import ( "fmt" "time" ) func main() { fmt.Println(time.Now().Format("2006년01월02일 15시04분05초")) } 결과 2009년11월10일 23시00분00초 재밌다. time 패키지를 사용하다 보면 의문점이 있을 것이다. `2006-01-02 15:04:05` 이것은 어떤 의미 또는..

Programming/Golang 2022.09.13

import 의존성 오류

문제 발생 예시) Linux에서 go run main.go 명령을 실행하여 main.go 파일을 실행하려고 한다. main.go 파일의 import 에는 다른 디렉토리에 생성한 모듈을 사용하려고 한다. 그러나 터미널창에서 `main.go:OOO OOO is not in GOROOT(/usr/local/go/OOO/OOO)` 라는 오류가 발생함. 해결 방법 방법 1. 기존의 go.mod 파일이 있다면 삭제한 후 다음의 명령어를 실행하여 현재 디렉토리 내에 새 모듈을 생성한다. go mod init [모듈명] 명령어를 사용하여 현재 디렉토리에 새 모듈을 생성한다. 모듈 생성 후 main.go에서 다른 go 파일의 함수를 호출하기 위해서 import를 수정한다. package main import ( [ali..

Programming/Golang 2022.06.29
반응형