Go language 살펴보기

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

Data serialisation

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

소켓 프로그래밍

소켓 프로그래밍이번 장에서는 네트워크 프로그래밍을 위한 기본적인 기술들을 살펴볼 것이다. 다루는 내용은 호스트와 서비스 주소를 다루는 법과 ,UDP 통신에 대한 것들이다. 그리고 GO API를 이용해서 TCP와 UCP 기반의 네트워크 프로그램을 개발하는 방법도 살펴볼 것이다.네트워크는 시리얼 링크, 구리선, 광섬유, 무선 등 다양한 매체로 구성되어 있다....

Go HTTP

Go HTTPWWW(World wide web)은 수억명의 유저가 접근하는 (그리고 역시 수억의 컴퓨터가 연결하는) 가장 큰 분산 시스템다. 그리고 그 중 가장 성공한 서비스는 HTTP 기반의 웹 서비스일 것이다. 웹 브라우저라고 부르는 웹 클라이언트 프로그램을 이용해서 서핑이라는 행위를 하는 정보의 바다 말이다. 현재 HTTP(Hyper-Text Tra...

보안

보안인터넷은 군사적인 공격에 견딜 수 있는 시스템을 구축하는 걸 목표로 설계를 했다. 이때의 공격은 외부에서 이루어지는 것으로 내부 네트워크는 신뢰 관계에 있는 것으로 가정을 했다. 그 시절의 인터넷은 어차피 허가 받은 조직(혹은 사람)만 접속할 수 있었으니, 내부 네트워크에서 발생할 수 있는 공격은 크게 신경쓸 필요가 없었다. 하지만 시대가 바뀌어서 인...

XML

XMLXML(Extensible Markup Language)은 데이터 구조의 저장과 직렬화를 위해서 사용하는 텍스트 기반의 마크업 언어다. XML은 문서의 내용을 나타내는데 강점을 보이지만, 인터넷 등에서 임의의 자료구조를 정의하기 위한 용도로도 널리 사용하고 있다.XML은 복잡한 데이터 구조를 저장하고 재현하기 위해서 널리 사용하고 있는 데이터 저장 ...

revel - Tutorial

revel - Tutorial 이미 을 만든 것으로 가정한다. 우분투 리눅스 14.04 go 1.3.1 # go get github.com/revel/revel# go get github.com/revel/cmd/revelrevel cli 툴이 설치된다.# revel help~~ revel! http~usageThe commands are new cre...

golang slice

golang sliceGo의 slice를 이용하면 연속된 데이터 타입을 효과적으로 다룰 수 있다. 연속된 데이터를 다룬 다는 점에서 배열(array)와 비슷한 측면이 있다. 실제 배열 처럼 사용 할 수 있는데, 몇 가지 다른 점들이 있다. 이 문서에서 slice가 무엇인지 자세히 살펴본다. 슬라이스(slice)타입은 Go의 내장타입으로 배열의 추상이다. ...

예제로 살펴보는 Go : Timeout

타임아웃은 외부에서의 네트워크 연결과 데이터베이스 작업등의 수행 시간을 설정하기 위해서 사용한다. Go에서는 select를 이용해서 타임아웃을 구현할 수 있다.예제 코드를 보자.예제 코드의 첫번째 고루틴은 2초를 sleep 한 다음에 c1 채널로 메시지를 보낸다. main 함수는 select 에서 c1로 부터 메시지를 기다린다. 그리고 time.After ...

예제로 살펴보는 Go : Select

Go의 select를 이용하면 여러 개의 채널로 부터 메시지를 기다릴 수 있다.예제 코드는 두 개의 고루틴을 가지고 있다. main 함수는 이들 고루틴으로 부터 메시지를 기다리는데, 고루틴에 따라서 서로 다른 처리를 해야 한다. 22 번째 줄에서 select를 이용해서 복수의 채널로 부터의 메시지를 기다리며 블럭된다. 어떤 채널로 부터 메시지가 발생하면, ...