Go 프로그래밍 언어
- Go 홈페이지 : https://golang.org/
우연히 알게 된 Go 프로그래밍 언어를 소개할까 합니다. Go는 시스템 프로그래밍을 위해서 개발 된 언어라고 합니다. 코딩의 형태를 보면 C언어 인 것 같으면서도 Java 느낌의 코딩이 이루어지는데 찾아보니깐 C++의 컴파일 형태와 Statically Type의 언어의 특징과 Java의 Garbage Collection 기능을 제공한다고 하네요. 대충 C와 Java의 느낌을 합쳐놓은 짬뽕 언어라고 생각하면 될 듯 싶네요. 그럼 간단히 살펴보도록 하죠.
1. Go 기본 실행
- 온라인 편집기 : https://play.golang.org/
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개의 언어를 동시에 코딩한다는 느낌이랄까 아무튼 재밌는 언어 입니다. 맛보기로 한번 해봤는데 나중에 이 언어도 제대로 공부를 해봐야겠네요.
짱짱맨 호출에 응답하여 보팅하였습니다. 즐거운 주말 보내시기를 바랍니다.
방문해주셔서 감사합니다.
이더리움으로 블록체인 개발하면 go 깔아야 되는 부분이 있거든요. 잘은 모릅니다만, 오랜만에 반갑네요. ㅎㅎ
우연히 서버 개발 기사를 읽었는데 괜찮은 언어 인 것 같더군요.
공부를 해보긴 해야하는데 우선 킵만 해놓았네요
그렇게 go를 접하셨군요. go가 참 매력적인데, 또 의외로 잘 하게되진 않는다는 ㅋㅋㅋㅋ
돌아 오셨네요^^
잠깐 일시적으로 돌아왔네요.
아직 해결 된 것이 아니라 나중에 또 얼마나 활동을 못하게 될 지 모르겠네요.
1~2월 달은 아마 정상적으로 활동이 안 될 것 같은 느낌이 드네요. ^^
고 언어는 써보면 좋은 것 같다고 느끼는데 이유가 컴파일이 순식간이라 과장해서 인터프리터와 비슷한 테스트 속도를 보여줍니다. 또한 go 키워드를 활용한 병렬성 혹은 동시성 프로그래밍을 손쉽게 할 수 있습니다. 그리고 재밌는 점이 요즘 트렌드를 역행하듯 클래스가 없고 구조체 메쏘드와 인터페이스를 통해 객체를 구성합니다 (자바스크립트보면 아닌 것 같기도).
단점으로 에러 처리가 진정 욕이 나오기 직전으로 연쇄적으로 작용해서
이걸 몇번을 봐야 끝이 날지 감이 오지 않습니다.
써본 결론은 에러 처리 뭐 같다는 것만 빼면 괜찮은 언어인 것 같습니다.
장단점이 있는 것 같아요.
다른 언어로 표현하기 어려운 부분을 go 언어로 쉽게 표현이 가능한점을 봤을 때 사용목적에 따라서 꽤 괜찮은 언어인 것 같아요.
오랜만에 오셨네요~
Posted using Partiko Android
일주일정도 된 것 같네요. ^^
꾸준히 써야 하는데 여건이 최근 안되네요. ^^
엇 돌아오셨네요^^
일시적인 거라 또 못 들어올 수 있네요. ^^
한때 안드로이드의 공식언어가 되지 않을까 하는 기대를 하는 사람들도 있었지만, 현재까지 흐름으로 그럴 가능성은 제로에 가깝네요.
인지도 때문에 그런거 잘 안알려져있는데 그래도 하시는분들은 좀 있는가 보더군요.