데이터 타입과 변수

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

Golang 코드 모음

...

Go를 이용한 Web 애플리케이션 개발

앞서 다루었던 HTTP 챕터의 연장이다. 이번 장에서는 go 언어를 이용해서 완전히 작동하는 웹 서버를 만들 것이다. 원문에서는 중국어 flash card(단어장)를 서비스하는 예제를 제공하고 있는데, 예제로 하기에는 좀 직관적이지 않다는 생각이 들었다. 그래서 단어장 서비스 대신에, 유저 정보를 관리하는 "유저 정보 데이터 베이스" 서비스를 만들기로 했다...

GoLang을 이용한 http client 개발

http client 애플리케이션을 위한 구조체와 함수들은 net/http에서 찾을 수 있다. http.NewRequest("METHOD", "URL", nil) 메서드를 이용해서 요청객체를 만들 수 있다. METHOD는 GET, POST, DELETE, PUT 등을 사용 할 수 있다.요청 객체는 "어느 URL에 대해서 어떤 요청을 하라라는 정보"만 담고 ...

배열 회전

n개의 원소를 가진 배열을 k번 만큼 오른쪽으로 회전하라. 예를 들어 n=7, k=3 이라면, 배열 가 된>다.원본 배열과 동일한 크기의 배열을 만들어서, 순환된 결과를 복사한다. 공간복잡도 O(N), 시간복잡도 O(N)이다.버블소트를 응용해서 공간 복잡도를 O(1)로 줄일 수 있다.공간 복잡도는 O(1)이지만 시간 복잡도는 O(nk)다. 예제의 경우 시간...

역폴란드 표기 수식 평가

를 따르는 수식을 평가하는 코드를 작성하라. 사용 할 수 있는 연산자는 +, -, , /이다. 연산대상으로는 int를 사용 할 수 있다.예제 -> ((2 + 1) 3) -> 9 -> (4 + (13 / 5)) -> 6역폴란드 표기법 자체가 스택에 최적화 돼 있다.코드를 단순화 하기 위해서 에러처리는 하지 않았다....

배열 뒤집기

n개의 원소를 가진 배열을 뒤집는다. n=7 때, 배열 로 회전하기 위한 몇 개의 방법이 있는가.아마도 가장 간단하게 생각 할 수 있는 방법일 것이다. 원본 배열과 같은 크기의 배열을 만들고, 원본 배열의 맨 뒤에서 부터 순환하면서 값을 복사한다. O(n) 공간과 O(n) 시간이 필요하다. O(1) 공간을 사용하는 방법을 찾아보자.O(1)이며 공간 복잡도는...

Golang 에서의 Actor 모델

액터 모델(Actor Model)은 컴퓨터 과학에서 동시성(concurrent)문제를 해결하기 위해서 사용하는 소프트웨어 개발 모델이다. 연극 무대는 여러 액션들이 동시에 일어난다. 감독은 하나 이상의 액터(배우)에게 명령(큐 사인이라고 하던가 연극을 잘 몰라서)을 전달하는 데, 명령을 받은 액터들은 자기의 액션과 대본을 소화한다. 감독은 큐 사인만 내릴 ...

Go Template

Go Template많은 언어들이 문서를 다른 형태로 변환하는 기능을 가지고 있다. Go는 컨텐츠에 포함된 특정 문자열을 변환하거나 삽입하는 템플릿 매커니즘을 제공한다. 템플릿은 특히 처리 결과를 HTML 문서로 표시하기 위해서 널리 사용한다. 많은 컨텐츠들은 고정된 부분과 동적인 부분으로 구성이 된다. 이름, 전화번호, E-mail, 주소 같은 것들은 ...

예제로 살펴보는 Go : Closures

Go는 클로져(혹은 anonymous function이라고 부르는) 지원한다. 익명 함수(Anonymous function)는 코드 중간에 이름 없이 함수를 정의하기 위해서 사용한다. 이름이 없기 때문에 외부에서 사용 할 수 없다. 실용적인 관점에서는 데이터가 오직 하나의 메서드만 가지고 있을 때, 데이터가 정의된 함수 내에서 처리 하고자 할 때 사용한다....