Go/Golang - Channel & Context Channel Channel 이란 무엇인가? Channel(채널) 이란 고루틴끼리 메세지를 전달받을 수 있는 메세지 큐를 의미한다. Channel 사용업 func square(wg *sync.WaitGroup, ch chan int) { // square goroutine은 빈 채널이...

8. channel & context

7. concurrent programming
Go/Golang - Concurrent Programming Go Routine GoRoutine 은 Go언어에서 관리하는 lightweight thread 이다. 그리고 이런 여러 GoRoutine 을 가지는 프로그램을 동시성 프로그래밍(Concurrent Programming)이라고 한다. 아래와 같은 방법으로 GoRoutine을 선언하게 되면...

6. error-handling
Go/Golang - Error-Handling 에러 핸들링 기본적인 에러 반환 처리 (go bufio) func ReadFile(filename string) (string, error) { file, err := os.Open(filename) // 파일 열고 if err != nil { return "", err // 에러시 반환 }...

5. datastructure
Go/Golang - Datastructure container package list container package 중 list를 구현하는 구조체 코드와 사용되는 함수는 다음과 같다. (참고로 go container list package는 소스코드를 공개하고 있으며, 쓰이는 요소는 다음과 같다.) // 리스트 요소 구조체 형태 // ...

4. function(adv)
Go/Golang - Function Function 심화 vartadic function(가변인수 함수) 만들기 // ex) func sum(nums ...int) int { sum := 0 fmt.Printf("nums 타입: %T\n", nums) for _, v := range nums {sum += v} ...

3. interface
Go/Golang - Interface Interface 기본 Interface 선언 형태 // type interface_name interface_keyword type employeeInterface interface { Work() Rest(hour int) int // method 선언 시 주의사항 ...

2. method
Go/Golang - Method Method 기본 Go에서의 함수(Function)와 메소드(Method) 엄밀히 말하면, Go에서 method는 함수의 일종이다. 보통 흔히들 생각하는 프로그래밍 언어에서의 function는 파라미터를 받아 로직을 처리한 뒤 리턴하는 역할을 담당하지만, Go에서 method는 구조체 밖의 method 를 정의...

1. slice
Go/Golang - Slice Slice 기본 Go 에서 제공하는 동적배열 var slice1 = []int{1,2,3} // {} 를 통한 초기화 var slice2 = make([]int, 3) // make() 를 통한 초기화 // make(배열을 가르키는 포인터, 요소 개수, 실제 배열의 길이) var slice2 = make([]in...

12. restful-api
Go/Golang - Restful-API ##

11. web-server
Go/Golang - Web Server HTTP Web Server 기초 1. Add Handler func IndexPathHandler(w http.ResponseWriter, r *http.Request) { ... } http.HandleFunc("/", IndexPathHandler ) 2. Web Server Start func ...