스근하게 Go 한 스푼

스근하게 Go 한 스푼

Golang 이란?

Go(Golang)는 Google에서 개발한 오픈소스 프로그래밍 언어로, 높은 성능과 간결한 문법을 제공하는 언어입니다.
2009년에 발표되었으며, 빠른 컴파일 속도와 강력한 동시성(concurrency) 지원이 특징입니다.
C 언어와 비슷한 성능을 내면서도 Python처럼 직관적인 코드 작성을 목표로 설계되었습니다.


Golang의 장점

Go 언어를 사용하면 다음과 같은 장점을 얻을 수 있습니다.

간결한 문법

  • 복잡한 기능 없이 직관적인 코드 작성 가능
  • fmt.Println("Hello, Go!")처럼 가독성이 뛰어남

강력한 동시성 지원

  • goroutine을 활용한 경량 스레드로 성능 최적화 가능
  • 병렬 처리 및 네트워크 프로그래밍에 적합

빠른 컴파일과 실행 속도

  • 정적 타입 언어이면서도 컴파일 속도가 빠름
  • 실행 속도가 C/C++에 근접

내장된 메모리 관리

  • 가비지 컬렉션(GC) 지원으로 메모리 관리 부담 감소

쉬운 배포

  • 단일 바이너리로 컴파일되어 배포가 간편
  • Docker/Kubernetes 환경에서 최적화된 운영 가능

golang을 사용 중인 프로젝트

kubernetes
prometheus
etcd

대규모 분산 시스템 및 클라우드 네이티브 환경에서 Go는 뛰어난 성능과 효율성, 동시성 처리 능력 덕분에 선택되었습니다. 또한 Go의 간결한 문법과 효율적인 실행 성능은 오픈소스로 다양한 분야의 사람들이 소스코드를 분석하고 수정하며 기여할 수 있게 합니다.


장점을 극대화를 위한 유닛 테스트

Go에서는 testing 패키지를 활용한 유닛 테스트 기능을 기본 제공하며, 이를 활용하면 코드의 안정성을 더욱 높일 수 있습니다. 저는 추가로 assert 패키지를 활용해 결과 검증을 하고 있습니다.

  • abc.go 의 테스트 파일은 abc_test.go 형식으로 작성됩니다.
  • go test 명령어를 실행하면 테스트를 자동으로 수행할 수 있습니다.
golang testcase snippet
golang testcase snippet. GitHub Gist: instantly share code, notes, and snippets.

예제용 테스트코드 스니펫을 공유드립니다.

이처럼 유닛 테스트를 적극 활용하면 Go의 성능과 안정성을 극대화할 수 있습니다.

Read more

푸름이세요? 아니요 구름인데요

푸름이세요? 아니요 구름인데요

클라우드 컴퓨팅(Cloud Computing) 이란? 클라우드 컴퓨팅은 IT 인프라를 손쉽게 관리할 수 있도록 도와주며, 확장성과 유연성을 제공하는 기술입니다. 물리적인 서버를 직접 구매하지 않아도 되며, 필요한 만큼의 자원을 사용하고 비용을 절감할 수 있다는 점에서 많은 기업과 개인이 활용하고 있습니다. 클라우드 서비스의 유형을 크게 세 가지 모델로 나눌 수 있습니다. 인프라스트럭처 서비스(

By hyobin
빔슬람(Vimslam)이 되보자

빔슬람(Vimslam)이 되보자

Vim이란? Vim은 서버에서 작업하는 사람들 사이에서 유용한 텍스트 편집기입니다. UNIX 시스템에서 표준 편집기였던 VI의 개선판으로 Vi Improved의 약자입니다. 그래서 대부분의 유닉스기반(리눅스를 포함한) 운영체재에 설치되어있고 작동합니다. Vim은 다음과 같은 특징을 갖고 있습니다. * 모드 기반 편집 Vim은 입력 모드와 명령 모드로 구분됩니다. 사용자는 명령 모드에서 편집, 삭제, 검색 등을 빠르게 할

By hyobin