일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- svelte
- golang
- 인라인핸들러
- docker
- docker-network
- IAC
- bitwiseNot
- 번역
- cron
- onDestory
- 도커컨테이너
- apiTest
- :=
- go
- ...$$restProps
- nestjs
- reactjs
- githook
- JavaScript
- testing
- TypeScript
- GraphQL
- Terraform
- mock
- Svelte LifeCycle
- GIT
- PostgreSQL
- smui
- react
- 도커
- Today
- Total
목록go (11)
Den`s blog
Golang 에서 서비스/어플리케이션 실행시에 Argument 들을 받는 방법에 대해서 알아보도록 하자 서비스를 실행시키는 대표적인 두 방법 Build 와 Run 각각 알아보도록 하려고 한다. 1. Run // stdOut.go package main import ( "fmt" "os" ) func main() { myString := "" arguments := os.Args if len(arguments) == 1 { myString = "Please give me one argument !" } else { myString = arguments[1] } //fmt.Println(arguments) fmt.Println(myString) } 위 파일을 go run stdOut.go 로 실행하면 Ple..
Go 의 장점으로 static linking 에 대해서 간략하게 얘기해 본적이 있고, build 에 대해서도 간략하게 본 적이 있어서, 이번에 그에 관한 포스팅을 진행하고자 한다. Go 코드를 어떻게 컴파일 하는지에 대해서 알아보자. Go 는 컴파일 하는데 Graphic Application 은 따로 필요하지 않고 파일의 이름에 대해서도 영향을 받지 않는다. 단지, 단 하나의 main() function 만 존재하면 되고, 시작점이기 때문에 오직 하나만 main 이 가능하다. aSourceFile.go 파일을 아래와 같이 만들었다고 가정하자. package main import "fmt" func main() { fmt.Println("This is a sample Go program!") } 굉장히 간..
Golang 을 하면서 크롤러를 만들게 되었고, 하다보니 캘린더 관련해서 여러가지 function들이 필요해서 패키지를 직접 만들어 배포해보기로 하였다. 가장 간단하고 빠르게 하는 법으로 해보기로 하였고, 그 후에 추가적으로 테스트를 붙이고 해보았다. 패키지 사이트 깃허브 shinYeongHyeon/go-times It will save your time such as coding a calendar! Contribute to shinYeongHyeon/go-times development by creating an account on GitHub. github.com 먼저 모듈로 작동해야 하기 때문에 main function 은 만들지 않았다. 해당 파일에 필요한 함수들을 만들고 정식으로 배포하기 위해..
Channel 은 데이터를 주고 받는 통로라고 볼 수 있다. make 를 통해 선언을 한다 type job struct { title string salary int } func main() { c := make(chan job) } type job struct { title string salary int } func main() { c := make(chan job) } 채널로 값을 전달해준고 받는다고 보면 된다. // 넘기기 (받기전용) chan
Go 에서 Struct 를 주로 이용한다고 했는데, 여기에 메소드도 추가가 가능하다. 말로 설명하면 길어지니 코드부터 보자. // Account account Structure type Account struct { owner string balance int } var errNoMoney = errors.New("can't withdraw") // NewAccount Creates Account func NewAccount(owner string) *Account { account := Account{owner: owner, balance: 0} return &account } // Deposit x amount on your account func (theAccount *Account) Deposit..
Array Go 에서 Array 는 그 크기를 제한해주어야 한다. 또한, 그 타입도 지정해야 하며, 그 안에 값들을 세팅하는 것도 나로서는 좀 색달랐다. names := [5]string{"shin", "yeong", "hyeon"} // Define names[3] = "den" names[4] = "den-shin" 첫 번째 라인과 같이 대괄호 안에 Array 의 크기를 넣어주고 대괄호 뒤에 타입을 지정해준다. 그리고 값들을 중괄호 안에 넣어서 정의 해준다. 그 후에 추가하는 것들은 그 아래 라인들과 같이 진행해주고, 만약 names[5] = "anything" 을 해준다면 컴파일 에러가 난다. 그런데, 크기 지정은 사실 실무에서 그렇게 사용하지 않는다, 크기가 없는 Array 는 어떻게 지정할까 ?..
For Go 에서는 다른 언어에서의 forEach, for in 같은 것은 존재 하지 않고 오직 for 만이 있다. 그리고 range 와 보통 사용하는데, go 만의 특색있는 for 문을 살펴보도록 하자, 근데 이런 점들이 참 Go 를 바라보는 시선이 호불호가 많이 갈리는 이유인가보다. func add(numbers ...int) int { // with range for index, number := range numbers { // execute } // ignore index for _, number := range numbers { // execute } // normal for for i := 0; i < len(numbers); i++ { // execute } ...생략 } If / Swit..
이전포스팅에서 끝날때 까지 끝나는게 아닌 함수 안의 defer 에 대해서 알아보았다. defer 를 함수 최상단에 써 두었었는데, 쉬운 이해를 위해서 그랬고 중간에 넣어도 진행이 가능하다. defer 는 해당 라인이 됐을 때 그저 스택에 쌓아 둔다. func a() { i := 0 defer fmt.Println(i) i++ return } 위 함수의 결과물은 0 이다. 실행 자체는 return 후라서 1이 되어야 할 것 같지만, 스택에 쌓인 시점의 i의 값은 0이기 때문이다. 또한, 스택이기 때문에 후입선출이 된다. func main() { fmt.Println("counting") for i := 0; i < 10; i++ { defer fmt.Println(i) } fmt.Println("done"..
Function Go 에서는 꽤 유용한 기능들이 많고 Go 만의 특이점도 많다. 아래에서 천천히 살펴보자. 1. 모든 타입 설정 정적 언어이다 보니 당연하게도 파라미터 타입과 리턴 타입을 설정해 주어야 한다. 그런데 만약, multiply 와 같은 곱셈 함수처럼 모든 파라미터가 같을 때 어느 정도 생략이 가능하다. func multiply(a int, b int) int { return a * b } function multiply2(a, b int) int { return a * b } 2. 여러 값 반환 다른 언어에서 여러 값들을 반환 하려면 보통 Array / Object 를 이용해서 반환하며, 리턴 타입이 Array / Object 가 된다. 그러나 Go 에서는 여러 값 반환이 가능하다..!? f..
세팅 & 기본개념 Go 언어 개발시 특징이 다른 언어와 다르게 디렉토리를 맘대로 가져갈 수 없다는 것이다. (Mac 기준)~/go폴더 안에서 진행해야 한다. (GO_PATH라고 한다). Go 를 설치하면 자동으로 생성이 된다는데 나는 안돼서 직접 만들었다. 구조는 main.go 가 Entry point 이기에 필수이며 (컴파일 할 경우에 !) 메인 함수가 필수 이다. 또한, package 도 파일별로 필수이다. main 을 살펴보면 기본구조가 아래와 같다. package main func main() {} 기본 제공되는 라이브러리 중 “fmt” 를 가장 먼저 접하게 되는데 (Hello World 찍어봐야지) 사용 방법을 보자면 아래와 같다. package main import "fmt" func main..