본문 바로가기

golang3

동시성 프로그래밍 관점에서 Golang vs Java Golang과 Java 각각의 프로그래밍 언어를 동시성 프로그래밍의 관점에서 차이점을 정리해본다. Golang 을 처음 공부 하다 보면 '고루틴(goroutine)' 이라는 용어를 많이 접할 수 있다. 이 고루틴은 쓰레드 처럼 동시성 처리를 위해 사용된다. 그러면 이 고루틴이 다른 언어들의 동시성 처리 방법과 어떤점이 다른지, 그 중에 Java 와 비교해서 차이점을 알아본다. 우선 기존의 Java 에서 사용하는 쓰레드(Thread) 란? 말 그대로 우리가 기존에 알고 있던 프로세스와 쓰레드 개념에서 나온 쓰레드 라고 생각하면 된다. 하나의 프로세스 안에 여러 쓰레드가 존재할 수 있으며, 이 쓰레드를 이용해 여러 작업을 동시에 처리 하고, 각 쓰레드 간의 데이터 교환도 가능하다. Java 에서는 이런 쓰레.. 2024. 4. 1.
[번역] Go 를 위한 OpenStack SDK 사용법 해당 글은 본문; https://www.linux.com/training-tutorials/how-use-openstack-sdk-go /을 번역하였습니다. 해당 글은 OpenStack API 튜토리얼 시리즈의 번외판이다. OpenStack 을 기업 환경에서 배포하고 관리하는 법을 배우기 위해서는, OpenStack training 이라고 하는 Linux foundation 을 확인해야 한다. 준비가 되었다면, OpenStack API 지식을 이용해서 OpenStack SDK 에 적용해보도록 하자. API 를 통한 커뮤니케이션은 기본적으로 OpenStack 인프라에 접속하여 통신할 수 있는 방법이다. API 를 이용하여 RESTful 한 호출도 가능하다. 개발 중인 프로그램에서 libcurl 과 같은 라.. 2022. 1. 27.
[번역] [go] go 코드를 작성하는 방법 해당 글은 본문; https://go.dev/doc/code 을 번역한 글입니다. 개요 해당 글은 모듈에 있는 간단한 go 패키지를 개발하고, 기본적인 go 모듈, 패키지, 명령어 설치, 빌드 방법인 go tool에 대해서 소개한다. 주의할 점: 해당 글은 go 1.13 버전 이거나 그 이후버전일 경우를 가정하고, GO111MODULE 환경 변수가 설정되어 있지 않다고 가정한다. 코드 구조화 go 프로그램은 패키지 라고 하는 단위로 구조화되어 있다. 패키지 란, 한 디렉토리에 존재하며 함께 컴파일 되는 소스코드 묶음을 의미한다. 하나의 소스 파일안에 정의된 함수, 타입, 변수, 상수 들은 모두 같은 패키지에 속한 파일에서 접근이 가능하다. 한 레포지토리는 하나 또는 여러개의 모듈을 포함하고 있다. 여기서.. 2022. 1. 27.