태그 :: Golang
전체 70개
Go언어에서 ShellExcute, ShellExcuteEx 함수 사용하기
Go언어에 exec 패키지를 통해 exec.Command().Run 이나 Start등으로 외부 명령을 실행할 수 있으나 이 함수들의 단점은 CreateProcess 기반인데다 부가적인 옵션이 거의 존재하지 않습니다. 예를들면 Run 함수의 경우에는 실행시킨 명령이 종료되기 전까진 대기 …
현재 윈도가 32비트인지 64비트 인지 확인
Go언어는 개발하는 컴퓨터의 OS나 아키택처 상관 없이 다양한 플랫폼을 대상으로 실행파일 빌드가 가능합니다만. runtime 패키지의 GOARCH나 GOOS 등은 컴파일시에 해당 바이너리가 타겟으로 잡은 정보가 나올뿐 실제 현 시스템에 대한 정보를 대변하진 않습니다. 예를들어 64비트 …
특정 경로의 총 파일 사이즈, 폴더 갯수, 파일 갯수 얻기
지정한 경로내의 총 파일 크기의 합과 폴더, 파일의 갯수를 리턴해주는 함수입니다. 관리자 대시보드등에서 특정 경로의 사용용량등을 표시하는데 쓰시면 되겠습니다. Go / * dirUsage / func dirUsage(currentPath string, info os.FileInfo, …
Go언어로 윈도 서비스 어플리케이션 만들기
최근에는 MS의 Visual Studio도 기본적으로 무료로 사용가능하지만.. 무료버전으로는 서비스 어플리케이션은 개발할 수가 없습니다. ( 물론 Professional 버전 등에서 관련 리소스들을 복사해와서 꼼수로 개발환경을 구성가능하기도 하지만 ㅎㅎ ) 여튼 .. Go로도 윈도 서 …
파일복사 함수
기본적으로 파일을 이동시키거나 삭제하는 함수는 제공되고 있지만 복사의 경우 따로 구현을 해야 합니다. Go / * 파일 복사 함수 / func copyFile(srcFile string, destFile string) error { // 기존 파일이 있으면 삭제 if , err := …
프로그램 실행경로를 실행파일 위치로 고정
간혹 프로그램을 어디서 실행했느냐 따라서 .. 상대경로로 지정된 코드들이 파일을 못찾는 경우가 생깁니다. 이럴경우 실행파일의 위치로 실행경로를 조정해주면 됩니다. Go if err != nil { return } exPath := filepath.Dir(ex) currDir, …
올바른 이메일 주소, 알파벳, 숫자 체크(Regexp)
Goa-zA-Z0-9?(?:\.a-zA-Z0-9?)$") return er.MatchString(email) } /** 알파뱃 , 숫자 체크 / func isAlphaNumString(str string) bool { match, _ := …
간단한 파일 다운로드(HTTP GET)
프로그래밍을 하다보면 HTTP GET방식으로 파일을 다운받아 저장해야할 일이 종종 있습니다. 그런떄 사용가능한 GET 방식의 간단한 파일 다운로드 예제입니다. Go func downloadFile(filepath string, url string) error { // Create …
윈도 API를 이용한 wav 사운드 파일 재생
간단히 소리로 무언가를 알려야 할경우에 유용한 코드입니다. 구글링 중에 얻은 코드인지 깃헙 돌아다니다 발췌한 코드인지 기억이 가물가물해서 출처가 애매하네요 ;; Go package main import ( "syscall" "unsafe" …
현재 날짜, 시간 구하기
Go / * 현재 날짜 및 시간 문자열로 얻기 / func currDateTimeStr() string { t := time.Now() return fmt.Sprintf("%04d%02d%02d_%02d%02d%02d", t.Year(), t.Month(), …
CP949 <-> UTF-8 변환
Go언어는 기본적으로 UTF-8을 인코딩으로 사용합니다만. 윈도의 경우 기본적으로 CP949 또는 UTF-16입니다. 한글 윈도를 설치한 경우에는 많은 경우에 CP949가 기본 인코딩인 경우가 대부분이라 exec 패키지 등으로 콘솔 명령어를 실행하고 결과를 받아서 사용하는 등의 경우에 …
파일, 폴더 존재여부 체크
Go / * isExistFile / func isExistFile(fname string) bool { if _, err := os.Stat(fname); os.IsNotExist(err) { return false } return true } / * …
MS윈도 파일또는 폴더를 휴지통으로 버리기
윈도에서 프로그래밍을 하다보면 파일을 바로 삭제하는게 아닌 휴지통으로 이동시켜야 하는 경우가 생깁니다. os.Remove 같은 메소드를 이용하여 파일자체를 영구 삭제하는거야 매우 편하지만 .. 사용자를 대상으로 배포할 프로그램을 만드는 경우에는 가능하면 사용자의 실수도 감안하여 바로 …
TCP/IP 안쓰는 포트 얻기 - freeport
서버 프로그램을 만들다 보면 가변포트를 사용해야 할 경우가 있습니다. 이런경우 시스템에 사용하고 있지 않은 포트를 얻어야 할때가 있는데요, 그런경우 사용가능한 패키지 입니다. GitHub - phayes/freeport: Get a free and open tcp port that …
JSON to GO
Go로 JSON 데이터를 다루다 보면 .. map 을 이용해 Unmarshal 등을 해도 상관은 없지만. 이래저래 불편합니다. 그래서 보통은 구조체를 생성해서 처리를 합니다. 이때 JSON 구조가 단순하다면야 직접 struct 를 잡아서 작성하면 되지만 복잡한 구조의 JSON 데이터의 …
XML to GO
JSON에 비해 XML의 경우 좀더 파싱이 복잡한 편이긴 합니다만. Go에서는 XML의 Marshal, Unmarshal도 지원을 하고 있습니다. 앞서 작성한 JSON to GO와 마찬가지로 XML의 경우도 구조체를 통해 처리하는 것이 여러모로 관리가 편합니다. xmltogo 이 사이 …
파일 읽기, 파일을 한줄씩 읽기
Go if err != nil { log.Fatal(err) } fmt.Println( string(rbuf) )
윈도 API를 이용한 중복실행방지 ( feat. mutex )
윈도용 프로그램을 Go로 개발하다보면 중복실행을 원치 않을 경우가 있습니다. 이런때 윈도 API 의 뮤텍스 관련 함수를 이용하면 같은 프로그램의 중복실행을 방지할 수 있습니다. Bash go get github.com/rodolfoag/gow32 위 패키지 설치가 필요합니다.
외부 명령 실행하기( feat exec.Command )
프로그래밍 하다보면 .. command line 명령으로 외부 파일을 실행해야할때가 있습니다. 그런때 exe.Command 를 사용하는데요 약간의 추가적인 부분 몇가지를 적어봅니다. Go / * execCommandStart / func execCommandStart(name …
주사위 함수 (Dice, Random)
구 CircleMud 현 tbaMud의 C로 작성된 dice 함수를 Go언어 코드로 작성한 함수입니다. tbaMud 라이선스는 아래 링크를 참고 바랍니다. LICENSE.md 과거에는 GPL 비슷한 라이선스로 봤었는데.. 일부 소스를 타 언어로 포팅한다던지 하는 경우에 오픈소스여야 한 …

