NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C, C++ C 언어보다 쉬운 Go에 대해서 알아보자.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은 C 언어보다 쉽게 배울 수 있는 Go 언어에 대해 알아보도록 하겠습니다. 2009년 11월쯤(?) 구글에서 처음 발표된 후 2012년 초에 정식으로 공개가 되었습니다. 복잡하고 어려운 C 언어가 싫어서 3명의 개발자(로버트 그리즈머, 롭 파이크, 케네스 톰슨)가 만들었습니다. 그렇다보니 지금까지도 Go 언어에 새로운 패키지를 3명이 만장 일치로 합의가 되어야만 추가한다고 합니다. 솔직히 처음에는 구글 사내에서 사용할 언어를 만들었던건데요. 2012년에 오픈 소스로 공개하면서 많은 사람들이 사용하게 되었습니다.

    TwI59gS.png

     

     

    언어의 이름이 Go와 같이 단순하다보니 검색에 어려움이 많은 언어중에 하나입니다. Go로 검색하면 내가 원하는 결과가 잘 나오지 않거든요. 그래서, 고랭(Golang)이라고 지칭하기도 합니다. Go 언어를 사용하는 개발자를 고퍼(Gopher)라고 부릅니다. 위 고 언어의 캐릭터가 고퍼입니다 ㅎㅎ; 귀엽죠~ 아무튼, 언어 이름이 너무 단순해서 고랭으로 검색하는게 일반적입니다. 아래는 Go 언어의 단순 사칙 연산입니다. 코드를 보면 아시겠지만, 파이썬이나 자바스크립트와 매우 유사한것을 알 수 있습니다.

    import "fmt"
    
    func main() {
        a := 10
        b := 20
        fmt.Println(a + b)
    }

     

    으악! 2시간이나 작성했던 글이 날라가다니... ㅠㅠ; 이 아래 내용은 처음 작성했던 글에서 많은 부분이 변경되고, 축소 되었습니다. 이점 감안하고 봐주세요^^; 아래 그림과 같이 워크 스페이스에 test.go 파일을 만들었습니다. 그러면, 자동으로 Visual Studio Code에서 적절한 패키지를 찾아서 추천 해줍니다. 망설이지 말고~ 무조건 설치하세요!

    WEOUmcl.png

     

     

    Go 언어가 전세계적으로 인기를 끌게 된 계기는 MSA(Micro Service Application)를 빠르고 쉽게 만들 수 있다는 점 때문입니다. 물론, 이외에도 여러가지 장점들을 가지고 있는데요. 윈도우용 프로그램 개발보다는 웹애플리케이션 또는 웹서비스가 주를 이루었기 때문입니다. 이쪽 분야에서 자금 흐름이 빠르거든요. 정성스럽게 정리했던 글이 날라가고 나니... 어디서부터 뭘 어떻게 설명해야 할지 참 난감하군요.

    VKVjx1e.png

     

     

    글이 사라지면서 한가지 빼먹었네요. 아래 링크에서 Go를 미리 설치해놔야 합니다.

    [ Go 설치하기 ]

    7gZfHxX.png

     

     

    아래와 같이 코드를 작성하고, 터미널에서 실행 해보세요.

    gWSj8V0.png

     

     

    build 명령을 사용하면 윈도우 실행 파일인 exe를 만들 수 있습니다.

    k8aIP1S.png

     

     

     

    jwCboiT.png

     

     

    GUI가 없는 단순 콘솔 프로그램이기 때문에 직접 실행해도 결과를 확인할 수 있습니다.

    Vr3ALrc.png

     

     

    Go를 사용하는 가장 큰 이유중에 하나가 컨커런시를 쉽게 구현할 수 있기 때문입니다. 함수 앞에 go 키워드만 붙이면 아래와 같이 실행되는걸 확인할 수 있습니다.

    RYrKLeo.png

     

     

    go 키워드를 제거하고 비교 해보시면 차이점을 명확하게 알 수 있을겁니다. go 언어를 학습할 때 go로 검색하면 자료가 나오질 않아서 학습하는데 문제가 됩니다. 그래서, 고 언어를 고랭(golang)이라고 부릅니다. 이렇게하면 검색이 잘 되거든요. 그리고, 글의 처음에 등장하는 고퍼(gopher)는 고랭을 사용하는 유저를 말합니다. 이런 커뮤니티들을 잘 활용하면 프로젝트를 진행하는데 있어서 많은 도움을 받을 수 있을겁니다. 아~ 그리고, 컨커런시와 혼동이 오는 개념이 하나 있는데요. 패러럴리즘입니다. 이 둘의 차이점은 아래 그림을 보면 쉽게 이해할 수 있을겁니다.

    jIbqfNz.png

     

     

    go 언어는 발로란트라는 게임의 서버에 사용되었다고 하는데요. 이 게임을 해본적은 없어서 재미는 잘 모르겠지만~ 대부분은 서버 사이드 서비스를 만들 때 많이 사용하는거 같습니다. 사실, 위에 글을 작성했다가 날려먹어서 자료를 첨부하지는 않았는데요. 귀찮아서... 서버를 만들 때 정말 빠르다고 하는 FastAPI보다 2배 빠른 성능을 보여준다고 합니다. FastAPI는 django나 Flask보다 2배 빠른데 말이죠. 아무래도, C 언어의 네이티브 장점을 극대화 한거 같아요.

    zVMOULh.jpg

     

     

    몇시간에 걸쳐서 작성한 글 내용이 사라지고 나니... 다시 정리하기가 정말 힘드네요ㅠㅠ; 그래도, 머리속에 남아있는 내용들을 최대한 쥐어짜내서 다시 글을 작성했으니 내용이 좀 두서 없더라도 이해 부탁드립니다. 가끔 백업 기능이 동작하지 않는데 이유를 모르겠네요. 회사일하랴 엔지엠 RPA 매크로 유지보수 및 홈페이지까지 관리하다보니 정말 시간과 체력에 한계를 느끼게 되는군요. 직원을 둘만큼 돈버는것도 아니라서... 취미로 시작했다가 일처럼 되어 버려서 이제는 좀 쉬면서 해야 할거 같네요^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.