Go 프로그래밍 언어

in #kr-dev6 years ago (edited)

Go 프로그래밍 언어



우연히 알게 된 Go 프로그래밍 언어를 소개할까 합니다. Go는 시스템 프로그래밍을 위해서 개발 된 언어라고 합니다. 코딩의 형태를 보면 C언어 인 것 같으면서도 Java 느낌의 코딩이 이루어지는데 찾아보니깐 C++의 컴파일 형태와 Statically Type의 언어의 특징과 Java의 Garbage Collection 기능을 제공한다고 하네요. 대충 C와 Java의 느낌을 합쳐놓은 짬뽕 언어라고 생각하면 될 듯 싶네요. 그럼 간단히 살펴보도록 하죠.

1. Go 기본 실행



Go 홈페이지에서 다운 받아서 설치 해도 되지만 온라인 편집기로 간단히 테스트 할 수 있습니다. 위쪽에 있는 그림을 보시면 Try Go 부분의 편집창에서 코딩을 하시면 바로 결과를 확인 할 수 있습니다.

기본 테스트는 언어를 처음 배울 때 print문을 출력을 시키는데 Go 언어에서도 마찬가지로 한줄의 문장을 출력 해 보았습니다.

언어를 보면 뭔가 Java 같아 보이면서 C언어 같은 코딩으로 보이 실 거에요. 정상적으로 결과는 출력 되었네요. 그러면 Go 언어의 기본 문법은 어떻게 표현 되는지 살펴보도록 하죠.

2. Go의 변수와 상수


예) 변수와 상수

var a int  = 1
const c int = 10
const s string = "Hellow"

위 코딩을 보시면 특이한 점을 보실 수 있을 거에요. C언어에서는 자료형이 먼저 나오고 그다음에 변수명이 나오는데 이건 자료형이 뒤에 나오는 것을 c 느김은 아닌 표현이네요. 참고로 Go언어에서는 세미콜론(;)은 생략합니다.

3. Go의 조건문


package main

import (
    "fmt"
)

func main() {
  var k int = 1
  if k == 1 {
    fmt.Println("OK")
  }
}

[결과]

OK

위 Go에서는 if문을 보시면 괄호가 사라졌습니다.

원래 C언어에서는

 if(k == 1){
    처리문;
 }

Go 언어에서는

  if k == 1 {
    처리문
 }

이렇게 변경되었네요.

4. Go의 반복문


package main

import (
    "fmt"
)


func main() {
    var total int = 0
    var i int = 0
    for i = 0; i <= 10; i++ {
        total += i
    }
    fmt.Println(total)
}

[결과]

55

여기도 반복문은 C언어와 동일하지만 괄호가 생략 되었네요.

5. Go의 함수


package main

import (
    "fmt"
)

func main() {
    test("hellow GO!");
}

func test(str string){
  fmt.Println(str)
}

[결과]

hellow GO!

함수는 별 다를 게 없네요.

마무리


코딩을 하다보니 Java와 C의 느낌을 합쳐놓은 코딩을 하고 있다고 느껴지실 거에요. 2개의 언어를 동시에 코딩한다는 느낌이랄까 아무튼 재밌는 언어 입니다. 맛보기로 한번 해봤는데 나중에 이 언어도 제대로 공부를 해봐야겠네요.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

짱짱맨 호출에 응답하여 보팅하였습니다. 즐거운 주말 보내시기를 바랍니다.

방문해주셔서 감사합니다.

이더리움으로 블록체인 개발하면 go 깔아야 되는 부분이 있거든요. 잘은 모릅니다만, 오랜만에 반갑네요. ㅎㅎ

우연히 서버 개발 기사를 읽었는데 괜찮은 언어 인 것 같더군요.
공부를 해보긴 해야하는데 우선 킵만 해놓았네요

그렇게 go를 접하셨군요. go가 참 매력적인데, 또 의외로 잘 하게되진 않는다는 ㅋㅋㅋㅋ

돌아 오셨네요^^
BC03BC3A-A03D-4DDD-8B84-90486C16B79F.gif

잠깐 일시적으로 돌아왔네요.
아직 해결 된 것이 아니라 나중에 또 얼마나 활동을 못하게 될 지 모르겠네요.
1~2월 달은 아마 정상적으로 활동이 안 될 것 같은 느낌이 드네요. ^^

고 언어는 써보면 좋은 것 같다고 느끼는데 이유가 컴파일이 순식간이라 과장해서 인터프리터와 비슷한 테스트 속도를 보여줍니다. 또한 go 키워드를 활용한 병렬성 혹은 동시성 프로그래밍을 손쉽게 할 수 있습니다. 그리고 재밌는 점이 요즘 트렌드를 역행하듯 클래스가 없고 구조체 메쏘드와 인터페이스를 통해 객체를 구성합니다 (자바스크립트보면 아닌 것 같기도).
단점으로 에러 처리가 진정 욕이 나오기 직전으로 연쇄적으로 작용해서

f, err :=
if err == nil {

이걸 몇번을 봐야 끝이 날지 감이 오지 않습니다.
써본 결론은 에러 처리 뭐 같다는 것만 빼면 괜찮은 언어인 것 같습니다.

장단점이 있는 것 같아요.
다른 언어로 표현하기 어려운 부분을 go 언어로 쉽게 표현이 가능한점을 봤을 때 사용목적에 따라서 꽤 괜찮은 언어인 것 같아요.

오랜만에 오셨네요~

Posted using Partiko Android

일주일정도 된 것 같네요. ^^
꾸준히 써야 하는데 여건이 최근 안되네요. ^^

엇 돌아오셨네요^^

일시적인 거라 또 못 들어올 수 있네요. ^^

한때 안드로이드의 공식언어가 되지 않을까 하는 기대를 하는 사람들도 있었지만, 현재까지 흐름으로 그럴 가능성은 제로에 가깝네요.

인지도 때문에 그런거 잘 안알려져있는데 그래도 하시는분들은 좀 있는가 보더군요.