Data serialisation 

Data serialisationSerialisation을 번혁하면 직렬화니, 데이터 직렬화라고 하는게 맞는 것 같긴하다. 머리에 잘 들어오지 않는게 문제지. 국어 사전을 봐도, 데이터 직렬화라는 용어에서 얻을 수 있는 정보는 없다. 데이터 직렬화에 대해서 이렇게 정의 하고 있다. 컴퓨터 과학에서 직렬화라는 것은 메모리 버퍼, 파일, 혹은 네트워크를 통해...

Go language 살펴보기 

Go language 살펴보기 미완성여기에서는 개요만 살펴볼 뿐이다. 자세한 내용은 "참고"에 링크해둔 문서들을 참고하자. Golang이라고 부르기도 하는 Go는 2007년 Robert Griesemer, Rob Pike, Ken Thompson에 의해서 개발된 프로그래밍 언어다. Go는 C와 매우 유사한 형식을 가지는데, C 보다 느슨한 문법을 제...

애플리케이션 레벨 프로토콜 

애플리케이션 레벨 프로토콜클라이언트와 서버 프로그램은 데이터의 타입과 데이터를 교환하는 것으로 서비스를 수행한다. 이러한 작업을 위해서는 클라이언트와 서버가 주고 받는 데이터를 해석하기 위한 프로토콜을 맞추는 작업이 선행되야 한다. 이번 장에서는 클라이언트 - 서버간 데이터 통신 프로토콜 설계 방법을 (작동 하는)예제 프로그램을 만들면서 고민해 보려 한다...

golang 네트워크 프로그래밍 

golang 네트워크 프로그래밍이 문서의 원문은 http문서는 원문에 대한 번역물로 몇몇 부분에서 변경이 있을 수 있다. 번역은 다음의 과정을 거친다. 초벌 번역 Copy & Paste 하는 코드는 없다. 문서의 모든 코드는 직접 만들고 테스트 한다. 번역 감수 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. HTML 1. 1...

Go maps in action 

Go maps in action해시 테이블(hash table)는 컴퓨터 과학에서 가장 많이 사용되는 자료구조 중 하나다. 많은 종류의 해시 테이블 구현이 있고, 이들 마다 기능이 다르긴 하지만 fast lookups, add, delete는 공통으로 가지고 있다. Go는 해시 테이블의 구현인 map 타입을 내장하고 있다. Go map 타입은 다음과 같은...

Golang error 처리 

Go로 프로그램을 개발하다보면, 내장된 error타입을 이용해서 에러를 처리하게 된다. 이 타입은 에러의 상태를 알려주기 위해서 사용한다. os.Open 함수의 경우 파일 열기에 실패했다면 nil이 아닌 error 값을 반환한다. os.Open의 선언을 보자.func Open(name string) (File, error)파일 디스크립터인 File, err...

데이터 타입과 변수 

데이터 타입과 변수 프로그램을 실행하기 위해서는 반드시 처리할 데이터를 저장하기 위한 메모리를 확보해야 한다. 에를 들어 두개의 숫자를 더하기를 원한다면 이들 숫자를 저장하기 위한 메모리가 있어야 한다. 메모리는 마구 쓸 수 있는게 아니라서, 프로그래머는 매번 메모리 공간을 할당(memory allocate)해야 한다. 메모리 할당은 매우 귀찮은 작업일 ...

golang 시작하기 - 개발환경 만들기 

(2019년 5월 5일)현재 Go의 최신 버전은 1.12.4이다. 이전 문서는 1.9.1 기준이었는데, 1.11 버전이후로 Go의 패키지 관리 정책이 변경됐다. 가 생겼으므로 변경점에 맞춰서 새로 작성하기로 했다.이 문서의 내용은 우분투리눅스 18.04를 기준으로 한다. 우분투 리눅스가 기준인 이유는 그냥 내가 리눅스 개발자라서이다. # cat /etc/i...

Go를 이용한 객체지향 프로그램 개발 

Go를 이용한 객체지향 프로그램 개발Go 언어는 클래스와 객체를 가지고 있지 않다. 클래스와 객체를 가지고 있지 않아도 객체지향 프로그래밍 언어라고 할 수 있을까 ? "객체지향"은 일종의 소프트웨어 개발 방법론으로 언어의 종류와는 상관없다. 예컨데, 절차지향 언어라는 C 언어로도 객체지향적인 프로그래밍이 가능하다. C로 구현한 GUI 툴킷인 GTK의 경우...

Function 

Function함수는 독립적으로 실행할 수 있는 코드로 입력을 받아서 처리하고 출력하는 일을한다. 프로시져(procedures)이나 서브루틴(subroutin)이라고 부르기도 한다. 함수는 종종 블랙박스로 표현한다. Go에서 가장 유명한 함수는 아마도 main 함수일 것이다. 독립적으로 실행되는 모든 go 프로그램은 반드시 하나의 main 함수를 포함해야...