본문 바로가기

분류 전체보기

(180)
Go 언어 - [6장] (웹 어플리케이션 작성) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 6. 웹 어플리케이션 작성 이번 장에서는 간단한 웹 앱을 만들어보겠습니다. 6.1 Hello, World! func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World!") }) log.Fatal(http.ListenAndServe(":8080", nil)) } 웹 앱에서는 위처럼 아주 간단한 코드로 Hello, Wrold 를 찍을 수 있습니다. 브라우저에서 http://localhost:8080 주소를 열어 확인 가능합니다. 6.2 할 일 목록 관리 웹 앱 ..
Go 언어 - [5장] (구조체) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 5. 구조체 구조체는 필드들을 묵어놓은 것으로 다른 언어들의 구조체, 클래스, 레코드 등과 비슷한 역할을 하며 구조체를 이용하면 더 복잡한 자료형을 정의할 수 있습니다. 인터페이스는 구현은 없고 메서드의 형태만 있는 메서드의 집합입니다. 이번 장에서는 구조체와 인터페이스 이 두가지에 대해 알아보도록 하겠습니다. 5.1.1 구조체 사용법 구조체 자료형으로 된 변수 하나를 선언해보겠습니다. // 1 var task = struct { title string done bool due *time.Time }{"laundry", false, nil} // 2 type Task struct { title S..
Go 언어 - [4장] (함수) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 4. 함수 코드의 덩어리를 만든 후 그 덩어리를 호출하고 귀환할 수 있는 구조를 서브루틴이라고 하는데, Go 에서는 이 서브루틴을 함수라고 부릅니다. Go 에서는 값에 의한 호출 (Call by value) 만을 지원합니다. 함수 내에서 넘겨받은 변수값을 변경하더라도 함수 밖의 변수에는 영향을 주지 않습니다. 따라서 함수 밖의 값을 변경하려면 주소값을 넘겨받아 참조에 의한 호출 (Call by reference) 과 비슷한 효과를 낼 수 있습니다. 이번 장에서는 함수에 대한 여러가지들을 보도록 하겠습니다. 4.1 값 넘겨주고 넘겨받기 4.1.1 값 넘겨 주기 func ReadFrom(r io.Re..
Go 언어 - [3장] (문자열 및 자료구조) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 3. 문자열 및 자료구조 이번 장에서는 문자열 처리, 배열과 슬라이스, 맵과 같은 자료구조, 기본적인 입출력에 대해 보도록 하겠습니다. 3.1 문자열 문자열은 바이트들이 연속적으로 나열되어 있는 것이며, Go 에서는 string 자료형을 이용합니다. 바이트들의 연속을 나타내는 다른 방식으로 []byte 는 변경이 가능하지만, string 은 읽기 전용입니다. 3.1.1 유니코드 처리 Go 언어의 소스 코드는 UTF-8 로 되어 있고, 코드 상에 표시된 문자열 역시 UTF-8 로 인코딩되어 있습니다. for i, r := range "가나다" { fmt.Println(i, r) } fmt.Print..
Go 언어 - [2장] (Go 환경 설정) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 2. 환경 설정하기 2.1 설치하기 맥에서 homebrew 를 통해 golang 을 설치해보도록 하겠습니다. 먼저 터미널에서 brew install golang 을 입력합니다. > brew install golang 설치는 금방 완료됩니다. 이후 터미널에서 go version / go / go env 등의 명령어를 입력했을때 아래처럼 잘 나오면 설치는 성공입니다. > go version go version go1.14.6 darwin/amd64 이제 GOROOT / GOPATH / PATH 설정을 확인하고, 필요하면 추가해보겠습니다. GOROOT : Go 를 설치했을 때 Go 관련된 실행파일, S..
Go 언어 - [1장] (Go 언어 소개) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 1. 시작하기 1.1 Go 언어 소개 범용 프로그래밍 언어 빠른 컴파일, 가비지 컬렉션 지원 정적 자료형 언어이지만 동적 자료형 언어처럼 작성 가능 동시성을 지원 공식 홈페이지 - Go 가 생산성이 높은 이유 부분적이지만 자료형 추론을 통해 자료형 이름을 반복하지 않아도 됨 소스 코드 형식을 자동으로 맞춰주는 도구 포함 편리한 도구들 기본 제공 테스트코드 작성이 쉽고 코드 문서화까지 가능 함수 리터럴 및 클로저 자유롭게 사용 명시적으로 인터페이스를 지정하지 않아도 인터페이스 구현 가능 채널을 이용해 동시성 구현이 편하고 언어 고유의 자원으로 교착, 경쟁상태 파악 쉬움 빠른 컴파일 속도 -> 컴파일..
함수형 자바스크립트 [8장] ※ 함수형 자바스크립트 라는 책을 한 장씩 리뷰해보도록 하겠습니다. 어느덧 마지막 장 입니다. Chapter 8. 비동기 이벤트와 데이터를 관리 " 함수형 프로그래머는 함수형 프로그래밍이 엄청나게 유익하다고 주장합니다. 기존 프로그램보다 한 자릿수나 더 짧은 함수형 프로그램이 생산성은 외려 한 자릿수 더 생산적이라고 하지요 " 이번 장에서는 프로그램의 실행을 그대로 좇아가지 않는 코드에서 비동기 데이터 흐름과 관련된, 실세계의 자바스크립트 난제들을 리액티브 프로그래밍을 활용해 ES6 프로미스와 함수형 프로그램을 접목시켜 콜백 코드를 우아한 표현식으로 변경하는 방법을 볼 것입니다. 8.1 골칫덩이 비동기 코드 자바스크립트 프로그램은 사용자의 필요에 따라 여러 비동기 요청을 동시에 전송해 데이터를 페이지에 ..
함수형 자바스크립트 [7장] ※ 함수형 자바스크립트 라는 책을 한 장씩 리뷰해보도록 하겠습니다. Chapter 7. 함수형 최적화 " 자그마한 효율은 그냥 잊으세요. 대략 97%의 경우 어설픈 최적화가 모든 걸 망쳐놓는 원인이 됩니다. 하지만 나머지 결정적 3%는 최적화할 기회를 절대로 놓쳐서는 안 됩니다. " 이번 장에서는 느긋한 평가, 메모화, 꼬리 호출 최적화 함수형 최적화 기법에 대해 다룰 것입니다. 함수형 프로그래밍은 개별 함수의 평가 속도를 올리기보다는 주로 함수 중복 호출을 피해 코드가 정말 필요할 때까지 평가를 지연시키는 전략을 구사합니다. 7.1 함수 실행의 내부 작동 원리 자바스크릡트에서는 함수를 호출할 때마다 함수 컨텍스트 스택에 레코드 (프레임) 가 생성됩니다. 전역 컨텍스트 프레임은 항상 스택 맨 밑에 위치합..