일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- nested virtualization
- ALB
- 504
- vscode
- curl
- Kind
- go
- 묘공단
- code-server
- ansible
- passwd
- 쿠버네티스
- calico
- 네트워크 네임스페이스
- 컨테이너
- 중첩가상화
- Docker
- kubernetes
- containerd
- Pane
- 패스워드 재설정
- 워커노드
- windows
- kubernets
- 도커
- 코어 쿠버네티스
- web ide
- network namespace
- ubuntu
- WSL
- Today
- Total
목록Book Study/Tucker의 Go Programming (6)
a story
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 31장 써머리입니다. 이 책의 마지막 스토디 노트입니다. Todo 리스트 웹 서비스 만들기 Todo 리스트 웹 서비스는 프론트 엔드 코드와 백엔드 코드로 나눠진다. 프론트 엔드는 웹서비스의 화면을 담당하고, 백엔드는 데이터와 로직을 담당한다. 구현 순서 먼저 RESTful API에 맞춰 서비스를 정의한다. Todo 구조체를 만든다. RESTful API에 맞춰 각 핸들러를 만든다. 화면을 구성하는 HTML 문서를 만든다. 프론트엔드 동작을 나타내는 자바스크립트 코드를 만든다. 웹 브라우저로 동작을 확인한다. 시작 하기 전에 웹서버를 만들기 앞서 gorilla/mux 외 두 가지 패키지를 더 설치한다. urfave/negroni 패키지: 자주 사용되..
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 27~30장 써머리입니다. 27장 객체지향 설계 원칙 SOLID 객체지향 설계의 5가지 원칙인 SOLID를 살펴보고 좋은 설계가 무엇인지 살펴본다. 좋은 설계: 상호 결합도(coupling)가 낮고 응집도(cohesion)가 높은 설계를 말한다. 반대로 상호 결합도가 높다는 것은 모듈이 서로 강하게 결합되어 있어서 떼어 낼 수 없다는 의미이다. 한편 응집도가 낮다는 것은 하나의 모듈이 스스로 자립하지 못한다는 의미로, 다른 모듈에 의존적인 관계를 가지는 경우이다. 단일 책임의 원칙(single responsibility principle, SRP) 모든 객체는 하나의 책임만 져야 한다. → 코드의 재사용성을 높여준다. 아래는 나쁜 사례로, 회계 보..
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 23~26장 써머리입니다. Go에서 에러를 처리하는 방법과 동시성 프로그래밍에 대한 주제를 다루고 있습니다. 23. 에러 핸들링 에러 핸들링(error handling)은 프로그램의 에러를 처리하는 방법을 말한다. 특정 에러가 발생했을 때 프로그램이 강제 종료 되는 것보다는 적절한 메시지를 출력하고, 에러를 다른 방식으로 처리해서 사용자 경험을 향상 시킬 수 있다. package main import ( "os" ) const filename string = "data.txt" func main() { file, _ := os.Open(filename) defer file.Close() } 이렇게 하면 Program exited.로 종료한다. pa..
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 18~22장 써머리입니다. 여기서 부터 주제가 조금씩 어려워지고 생각이 필요한 부분이 많습니다. 18. 슬라이스 일반적인 배열은 고정 길이를 가진다. 아래의 배열은 10개까지 값을 저장할 수 있다. var array [10]int 슬라이스는 배열과 비슷하지만 []안에 개수를 지정하지 않고 선언하는 동적 배열이다. 다만 슬라이스를 초기화 하지 않으면 길이가 0인 슬라이스가 만들어 지는 것이기 때문에 임의로 인덱스를 접근하면 패닉이 발생한다. package main func main() { var slice []int slice[1] = 10 } // 에러 panic: runtime error: index out of range [1] with len..
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 12~17장 써머리입니다. 12. 배열 배열(array)은 같은 타입의 데이터들로 이루어진 타입이다. 배열의 각 값은 요소(element)라고 하고, 이를 가리키는 위치값을 인덱스(index)라고 한다. // var 변수명 [요소개수]타입 var t [5]float64 days := [3]string{"monday","tuesday","wednesday"} x := [...]int{10,20,30} // 요소 개수 생략 var b = [2][5]int{ // 다중 배열 {1,2,3,4,5}, {6,7,8,9,10}, // 초기화 시 닫는 중괄호 } 가 마지막 요소와 같은 줄에 있지 않은 경우 마지막 항목 뒤에 쉼표, 를 찍어줘야 함! } // 추후..
이 글은 골든래빗 ‘Tucker의 Go 언어 프로그래밍의 3~11장 써머리입니다. 이 책은 다른 언어에 익숙한 분들은 go의 특성을 이해할 수 있고, 다른 언어에 대한 이해가 없어도 프로그래밍에 대한 기본을 이해하기 쉽게 쓰여진 장점이 있습니다. 03 Hello Go World 03.01. Go에서 코드 실행 단계 코드가 프로그램이 되어 실행되기 까지 5가지 단계를 거쳐야 한다. 폴더 생성 모든 코드는 패키지 단위로 작성된다. 같은 폴더에 위치한 .go 파일은 모두 같은 패키지에 포함되고, 패키지 명으로 폴더명을 사용한다. 예를 들어, goproject/hello/extra 여기서 hello 폴더에 든 .go 파일은 hello 패키지가 된다. extra 폴더에 든 .go 패키지는 extra 패키지가 된다..