언어/Golang
-
[Golang] 기본 디렉터리 설정언어/Golang 2016. 10. 26. 15:57
설치는 https://golang.org/dl/에서 받으시면 됩니다. 기본 디렉토리Go 언어는 모든 부분이 패키지로 구성되어 있고, 인터넷에 있는 소스 코드를 받아와서 바로 사용하기 때문에 기준 디렉터리가 필요합니다.다음과 같이 company 디렉터리를 예로 들면 company아래에 bin, pkg, src 디렉터리가 들어있습니다.bin: 소스 파일(패키지)를 컴파일하여 실행 파일(바이너리)이 생성되는 디렉터리입니다.pkg: 패키지를 컴파일하여 라이브러리 파일이 생성되는 디렉터리입니다. pkg 디렉터리 아래에는 _ 형식으로 디렉터리가 생성됩니다. 64비트 리눅스라면 linux_amd64 디렉터리 아래에 라이브러리 파일이 생성됩니다.src: 내가 작성한 소스 파일과 인터넷에서 자동으로 받아온 소스 파일이 ..
-
[Golang] Golang이란?언어/Golang 2016. 10. 26. 14:55
Go 언어는 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 개발되었으며 범용 프로그래밍 언어입니다.내용구글이 2009년에 만든 프로그래밍 언어입니다. 이름이 이름인 만큼 검색이 불편해 보통 golang이라고 많이 이야기합니다. Go 언어의 사용자들은 고퍼(Gopher)라고 부르며, 고퍼들을 위한 연례행사인 고퍼콘(Gophercon)이 세계 각국에서 매년 열리고 있습니다. 전반적으로 C에서 영향을 많이 받았으며, 컨테이너 기반 가상화 도구인 Docker를 개발하는데에 사용된 언어입니다. 또한 Go 언어를 이용해서 안드로이드와 iOS 앱을 제작할 수 있게 적용 중입니다. 또한 Python이 그렇듯 웹 개발에도 쓰이고 있고 특히 서버 사이드 언어로서 좋은 평가를 받고 있습니다. 또한, Go가 자체적으..
-
[Golang] 한글을 포함한 문자열 길이 자르기언어/Golang 2016. 10. 12. 14:24
한글 단어 길이를 제한을 두어 제한치를 넘어가는 글자를 자르는 함수를 설명하겠습니다.링크 에서 설명한 것과 같이 GO에서 len()함수는 byte기반으로 동작하기 때문에 한글은 3바이트 씩 계산됩니다.아래와 같이 한글+숫자+영어가 섞여있는 문자열에서 글자 제한을 20자로 두어 그 이상 넘어가면 삭제하는 함수를 설명하겠습니다. func main() { vals := "가나다라마바사1234567890abcd" } 먼저 한글을 바이트로 변환시키면 다음과 같은 리스트를 볼 수 있습니다.func main() { vals := "가나다"b := []byte(vals) fmt.Println(b) } # [234 176 128 235 130 152 235 139 164]하나의 숫자 당 1byte로 한글은 3바이트이기 ..
-
[Golang] 전각문자(double byte)를 반각문자(single byte)로 변경언어/Golang 2016. 10. 12. 13:41
//전각문자(특수문자 등)과 같은 기호들을 일반 문자(반각문자)로 변경 func convertHalfwidth(str string) string { b := []byte(str) idx := 0 var buffer bytes.Buffer dataLength := utf8.RuneCountInString(str) for i := 0; i = 0xfee0 { val = val - 0xfee0 //특수기호 공백은 아래와 같이 다른 코드값을 가지므로 하드코딩 } e..
-
[Golang] 슬라이스 데이터 삭제 및 자리 시프트 바로 실행언어/Golang 2016. 10. 12. 13:39
슬라이스는 배열과 달리 크기가 동적이고 길이가 고정되어 있지 않아 아래의 방식이 가능하지만 배열의 경우 에러가 납니다.2개 이상의 데이터가 슬라이스에 존재한다고 가정하고 중간 데이터를 삭제를 하면 슬라이스의 중간에 빈 값이 존재하게 됩니다. 이러한 경우에 삭제한 데이터 뒤에 존재하는 데이터들을 앞으로 시프트 하는 방법을 아래 예시를 통해 설명하겠습니다.예) [32, 29, 78, 16, 81]의 데이터를 가지는 슬라이스에서 78번을 삭제한 다음, [16, 81]을 앞으로 한 칸씩 당겨야 하는 경우1. [32, 29, 78, 16, 81] - 78 삭제 2. [32, 29, null, 16, 81] - 78자리에 빈 값존재3. [32, 29 16, 81] - 이와 같이 삭제된 인덱스 다음 인덱스들의 자리를..
-
[Golang] 크로스 컴파일언어/Golang 2016. 7. 15. 17:47
Golang의 가장 큰 장점중 하나인 멀티플랫폼 지원입니다. 다른 OS에서 사용하기 위해 크로스 컴파일을 해야하는데 Golang 1.5이상 버젼부터 지원이 됩니다. 지원 플랫폼$ GOOS$ GOARCHdarwin386darwinamd64darwinarmdarwinarm64dragonflyamd64freebsd386freebsdamd64freebsdarmlinux386linuxamd64linuxarmlinuxarm64linuxppc64linuxppc64lelinuxmips64linuxmips64lenetbsd386netbsdamd64netbsdarmopenbsd386openbsdamd64openbsdarmplan9386plan9amd64solarisamd64windows386windowsamd64설정법먼저..