go 4

[Go] 구조체를 여러가지 방법으로 깊은 복사 하는 방법 + 성능비교 (How to deep copy a struct in various ways + Performance comparison)

개요구조체를 여러가지 방법으로 깊은 복사각 복사 방법의 성능 비교 (Benchmark)벤치마크 참고: https://dogfootman.com/14 [Go] Benchmark 사용법 (How to Use Benchmarks)개요Benchmark의 사용법   1. 기본 사용법func BenchmarkXxx(*testing.B) 의 형태를 가지고 있으면 벤치마크로 간주되며-bench 의 플러그가 있으면 go test 의 명령에 의해서 실행된다  샘플코드package main...fdogfootman.com  1. 수동으로 깊은 복사package mainimport "fmt"type Address struct { City string State string}type Student struct { ..

[Go] 2024.06.25

[Go] 슬라이스의 얕은 복사와 깊은 복사 (Shallow Copy and Deep Copy of Slices)

개요 슬라이스의 얕은 복사와 깊은 복사에 대해서 1. 얕은 복사 package main import ( "fmt" "sort" ) type obj struct { Name string Age int32 } func main() { list1 := []*obj{ {Name: "A", Age: 1}, {Name: "B", Age: 2}, {Name: "C", Age: 3}, } list2 := list1 sort.Slice(list2, func(i, j int) bool { return list2[i].Age < list2[j].Age }) fmt.Printf("List1 [%p]\n", list1) for _, item := range list1 { fmt.Printf("Name: %s, Age: %d [..

[Go] 2023.08.03

[Go] golang sort.Slice를 사용할때의 주의점 sort.SliceStable와의 차이점 (Important Considerations When Using golang sort.Slice and Differences from sort.SliceStable)

개요 sort.Slice를 사용했을때와 sort.SliceStable를 사용했을때의 결과를 비교 1. sort.Slice package main import ( "fmt" "sort" ) type Person struct { Name string Age int } func main() { people := []Person{ {"Alice", 30}, {"Bob", 30}, {"Charlie", 30}, {"David", 30}, {"Eve", 30}, {"Alice", 10}, {"Bob", 10}, {"Charlie", 10}, {"David", 10}, {"Eve", 10}, {"Alice", 20}, {"Bob", 20}, {"Charlie", 20}, {"David", 20}, {"Eve", 20..

[Go] 2023.07.27

[Go] 고랭으로 간단한 HTTP Server 작성 (Writing a simple HTTP Server with Golang)

개요 고랭으로 HTTP 서버 작성 1. Hello World func main() { http.HandleFunc("/", handler) fmt.Println("Start Http Server: http://localhost:8080") err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("Error:", err) } } http.DefaultServeMux에 기본적으로 핸들러가 등록 포트를 지정해서 대기 func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World") } 핸들러 작성 결과 값 확인 2. 임의 로그인 api 작성 func main..

[Go] 2023.07.23