Golang 으로 맛보는 TDD(테스트 주도 개발)
Golang 으로 맛보는 TDD(테스트 주도 개발)
2021.09.15요즘 핫하다는 TDD 와 핫한 언어 Golang 으로 TDD 를 찍먹해보겠습니다. 일단 간단한 웹 어플리케이션을 만들어줄게요 개발환경은 golang version 1.16 에서 진행되었습니다. main.go package main import ( "made-go/myapp" "net/http" ) func main() { http.ListenAndServe(":3030", myapp.NewHttpHandler()) } myapp/app.go package myapp import ( "encoding/json" "fmt" "net/http" "time" ) type User struct { FirstName string `json:"first_name"` LastName string `json:"last_..
Go lang 에서 Mysql 연동하기
Go lang 에서 Mysql 연동하기
2021.09.10golang 에서 mysql 드라이버를 사용하기위해 라이브러리를 사용합니다. http://github.com/go-sql-driver/mysql GitHub - go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package - GitHub - go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package github.com 고객 정보를 조회하는 간단한 예제를 만들어 보..
구조체 슬라이스 정렬
구조체 슬라이스 정렬
2021.09.07구조체 슬라이스를 나이순으로 정렬하는 예제입니다. package main import ( "fmt" "sort" ) type Student struct { Name string Age int } // ❶ []Student의 별칭 타입 Students type Students []Student func (s Students) Len() int { return len(s) } func (s Students) Less(i, j int) bool { return s[i].Age < s[j].Age } // ❷ 나이 비교 func (s Students) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func main() { s := []Student{ {"화랑", 31}, {"백두산..
Go - 스택 메모리와 힙메모리
Go - 스택 메모리와 힙메모리
2021.09.05대부분 프로그래밍 언어는 메모리를 할당할 때 스택 메모리 영역 또는 힙 메모리 영역을 사용합니다. 이론상 스택 메모리 영역이 힙 메모리 영역 보다 훨씬 효율적이기 대문에 스택 메모리 영역에서 메모리를 할당하는 게 더 좋지만, 스택 메모리는 함수 내부에서만 사용 가능한 영역 입니다. 그래서 함수 외부로 공개되는 외부 메모리 공간은 힙 메모리 영역에서 할당합니다. C/C++ 언어에서는 malloc() 함수를 직접 호출해서 힙 메모리 공간을 할당합니다. 자바에서는 클래스 타입을 힙에 기본 타입을 스택에 할당합니다. Golang 은 탈출 검사 (excape analysis)를 해서 어느 메모리에 할당할지를 결정합니다. 함수 외부로 공개되는 인스턴스의 경우 함수가 종료되어도 사리지지 않습니다. package ma..
번아웃 탈출을 위한 새로운 언어 Go 배워보기
번아웃 탈출을 위한 새로운 언어 Go 배워보기
2021.09.05Go - 재귀를 이용한 이진수 출력하기 package main import "fmt" func dfs(x int) { if x == 0 { return } else { dfs(x / 2) fmt.Print(x % 2) } } func main() { var num int fmt.Scanln(&num) dfs(num) } 파이썬으로 알고리즘 공부를 하다가 번아웃 비슷하게 오기 시작하여 새로운 걸 배우면서 극복하기로 했다. 요즘 핫하다는 Go 언어로 입문 해보기로 했다. 하지만 모르는 것 하나하나 찾는게 일이엿다.. 불행중 불행으로 재귀 스택 프레임을 디버거로 찍어보려고 했지만 이게 무슨일인가 go 의 디버거 devel 이 go version 1.16 M1 칩을 지원하지 않았고 나는 아직 Go 에 익숙치 않..