흐음..
타차고 강변북로나 올림픽 대로를 지나가는 것도 힘들려나?
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
기절기절 (0) | 2022.10.09 |
---|---|
일정 망함 (0) | 2022.10.08 |
비가 그치질 않네 (0) | 2022.10.03 |
어제는 운동회 오늘은 워크샾 (0) | 2022.09.30 |
100MBps 지만 그래도 행복해! (0) | 2022.09.28 |
흐음..
타차고 강변북로나 올림픽 대로를 지나가는 것도 힘들려나?
기절기절 (0) | 2022.10.09 |
---|---|
일정 망함 (0) | 2022.10.08 |
비가 그치질 않네 (0) | 2022.10.03 |
어제는 운동회 오늘은 워크샾 (0) | 2022.09.30 |
100MBps 지만 그래도 행복해! (0) | 2022.09.28 |
refelct 패키지의 reflect.TypeOf()를 통해 :=로 할당된 객체의 타입을 알아낼 수 있다.
package main import ( "fmt" "reflect" ) func main() { tst := "string" tst2 := 10 tst3 := 1.2 fmt.Println(reflect.TypeOf(tst)) fmt.Println(reflect.TypeOf(tst2)) fmt.Println(reflect.TypeOf(tst3)) } |
Hello, playground string int float64 |
[링크 : https://stackoverflow.com/questions/20170275/how-to-find-the-type-of-an-object-in-go]
func TypeOf(i any) Type TypeOf returns the reflection Type that represents the dynamic type of i. If i is a nil interface value, TypeOf returns nil. |
[링크 : https://pkg.go.dev/reflect]
golang shared memory 모듈 (0) | 2022.11.22 |
---|---|
golang net.TCPConn (0) | 2022.10.07 |
cgo (0) | 2022.10.04 |
golang unsafe package (0) | 2022.10.01 |
golang 의 장단점. 개인적인 생각 (2) | 2022.09.28 |
그나저나 얘 쓰면.. 크로스컴파일은 알아서 찾아서 하나?
포인트는 import "C"
그리고 C.함수명
package main // typedef int (*intFunc) (); // // int // bridge_int_func(intFunc f) // { // return f(); // } // // int fortytwo() // { // return 42; // } import "C" import "fmt" func main() { f := C.intFunc(C.fortytwo) fmt.Println(int(C.bridge_int_func(f))) // Output: 42 } |
[링크 : https://pkg.go.dev/cmd/cgo]
golang net.TCPConn (0) | 2022.10.07 |
---|---|
golang 변수 타입 알아내기 (0) | 2022.10.05 |
golang unsafe package (0) | 2022.10.01 |
golang 의 장단점. 개인적인 생각 (2) | 2022.09.28 |
golang json/encoding marshal() unmarshal() (0) | 2022.09.28 |
아침에 개 산책 나갔다가 비 왕창 맞고 개 씻기고 저녁까지 비가 그치질 않는다.
재활용도 비가 와서 비 맞으면서 하고 난리구만 ㅠㅠ
일정 망함 (0) | 2022.10.08 |
---|---|
내일 여의도 불꽃축제 (0) | 2022.10.07 |
어제는 운동회 오늘은 워크샾 (0) | 2022.09.30 |
100MBps 지만 그래도 행복해! (0) | 2022.09.28 |
김치 냉장고 지름 (0) | 2022.09.25 |
민주당 "'부대 열중쉬어' 안 한 윤 대통령, 군 면제라 이해해야 하나"
> 군대나 가라 에혀..
[링크 : https://v.daum.net/v/20221002174148510]
https://v.daum.net/v/20221002153519538
마약 청정국이 아니게 된 거 같은데..
> 마약 유통이 이렇게 손쉬워(?) 졌는데 법이나 경찰에서 왜 이런걸 몰랐을까?
[링크 : https://v.daum.net/v/20221002174459544]
돈스파이크, 유흥업소 종사자들과 함께 마약 투약? '거짓 해명 의혹'
> 약 천명분.. 투약이 아니라 그정도 살 금액이면 유통 수준 아닌가?
[링크 : https://v.daum.net/v/20220929085107907]
> 솔찍히 보험 신뢰할 수 있나? 비교를 통해 조금이라도 더 나은 정보가 소비자에게 주어지면 찬성
[링크 : https://v.daum.net/v/20221002172603229]
"국방부 병영생활관 예산 대통령실 이전에 사용..국방부 "장병시설 영향 없어"
> 청와대 이전으로 이것저것 합치면 1조라던데 더 커지겠네
할로윈이 머길래 (0) | 2022.10.30 |
---|---|
회사차를 몰아보니.. (2) | 2022.10.26 |
한국 대통령 미국 의회에서 망언? (0) | 2022.09.22 |
어느쪽이 거짓말을 하는걸까 (4) | 2022.08.29 |
기사 : 긍정 평가 이유 1위 '모름·응답거절' (0) | 2022.08.05 |
golang에 포인터는 지원하는데 산술연산자를 지원하지 않기에
unsafe가 필수인데.. 그렇다면.. golang은 포인터를 지원한다고 할 수 있는게 맞...나?
[링크 : https://stackoverflow.com/questions/32700999/pointer-arithmetic-in-go]
[링크 : https://medium.com/a-journey-with-go/go-what-is-the-unsafe-package-d2443da36350]
[링크 : https://pkg.go.dev/unsafe]
golang 변수 타입 알아내기 (0) | 2022.10.05 |
---|---|
cgo (0) | 2022.10.04 |
golang 의 장단점. 개인적인 생각 (2) | 2022.09.28 |
golang json/encoding marshal() unmarshal() (0) | 2022.09.28 |
golang mac address 얻기 (0) | 2022.09.28 |
비행기 30분 지연되서 제주까지 날이옴
내일 여의도 불꽃축제 (0) | 2022.10.07 |
---|---|
비가 그치질 않네 (0) | 2022.10.03 |
100MBps 지만 그래도 행복해! (0) | 2022.09.28 |
김치 냉장고 지름 (0) | 2022.09.25 |
병원 투어 (0) | 2022.09.24 |
golang이 어쩔수 없이 쓰긴 하지만 마음에 들진 않는다 정도가 현재까지 결론
장점.
1. 멀티플랫폼 지원.
> 리눅스건 맥이건 윈도우건 GOOS= 라는 선언 하나 주면 아주 간단하게 크로스빌드가 된다.
2. 정적 바이너리 생성(기본 값)
> 양날의 검. 물론 hello world 하나 출력하는데 2MB 정도 먹고 몇가지 모듈들을 불러오면 기하급수적으로 늘지만
> 별다른 의존성 라이브러리 없이 독립적으로 빌드해서 실행가능한 단일 파일 하나만 복사하면 되는 건
> 임베디드에서 관리의 편의성을 제공함
3. 컴파일 언어
> node.js나 python과 같이 메모리 관리 불가능(?)한 실행환경이 아닌 컴파일 된 바이너리가 실행되는 것.
> 상업 프로그램, 배포환경, 임베디드라는 조건에서는 오히려 장점
4. net/http 등과 같은 고수준 라이브러리 제공
> c로도 curl 을 쓰면 REST 구현은 가능하지만 기본 라이브러리로 푸짐하게 제공하는 golang이 편하긴 하다.
단점.
1. 고정된 문법. 왜 내 마음대로 괄호 위치를 못 하냐고!!!
> c로는 warning 뜰만한 것도 죄다 error로 중단되고, 사용하지 않는 변수 있다고 빌드 에러
> 게다가 if () { 식으로 마치 python 처럼 indent가 문법에서 강요되는 느낌이라 드럽게 거부감이 가시질 않음)
2. IDE 가 약함. vi로 하려면 어우.. 다 외우지 않으면 더 귀찮..
> 방대한 라이브러리를 제공하는 신형 언어들의 득과 실이긴 하지만.. vscode에서 잘 지원되려나
> 외부 라이브러리 등에 대한 자동 완성을 얼마나 지원하는지 테스트는 해봐야 할 듯.
3. npm이나 pip 같은 중앙관리 되는 라이브러리 저장소 부재
> 언어의 발달이 빠른 시기라 라이브러리 버전 문제와 엮여 구버전 소스 빌드가 쉽지 않음
> 게다가 npm 처럼 얼마나 인기있고 숙성된 라이브러리인지 간접적으로 예측할 지표가 없어서
> 매번 검색해서 누군가의 소스를 써야 하는 불안함을 지울 수 없음
4. 문서 부족. tour of go 정도로는 어림도 없다.
> effective go 정도는 봐야 하지 않나 싶은데, 그런 문서를 찾는 것 자체가 어떻게 보면 접근성 측면에서 최악.
> 꼰대가 되서(?!) html 보단 pdf로 된 걸 받고 싶은데 그런 것도 없고
> 어떤 언어를 하나 배우는데 있어서 학습 커브 상승에 상당히 일조하는 부족한 문서
5. 자동화.
> 양면의 날이긴 하지만 자동화로 인해서 자동화 돌리기 위한 구조를 알아야 하는 문제가 발생
> 부족한 문서와 음의 시너지를 일으킴. go build . 으로 빌드는 가능하지만 도대체 어떻게 묶일지
> 빌드 하려면 기본적으로 패키지 이해를 해야 한다. 근데 문서들도 자세한 설명은 없다는게 함정.
결론
특정 환경에서 어쩔수 없는 선택지 라는 수준의 언어.
좋다 나쁘다를 떠나서 내 취향은 아니지만 웹 서비스를 구동하기에는 임베디드에서 이 만한 녀석은 없다는게 슬프다.
cgo (0) | 2022.10.04 |
---|---|
golang unsafe package (0) | 2022.10.01 |
golang json/encoding marshal() unmarshal() (0) | 2022.09.28 |
golang mac address 얻기 (0) | 2022.09.28 |
golang method (0) | 2022.09.27 |
encoding/json 의 json.Unmarshal() 이나 json.Marshal()은 특이(?)하게도
구조체의 변수가 대문자여야 변환을 해준다.
어떤 버전이 그런 영향을 주는건진 모르겠지만.. 참고해야 할 듯..
package main import ( "net" // "net/http" "fmt" "encoding/json" _ "io" "os" ) const conf_file = "config.json" const server_url = "https://localhost" type Config struct { Server string } func main() { var config Config conf, err := os.ReadFile(conf_file) if err != nil { fmt.Println(err) fmt.Println("create default configuration file") config.Server = server_url jsonbyte, _ := json.Marshal(config) fmt.Println(config) fmt.Println(jsonbyte) os.WriteFile(conf_file, jsonbyte, 0644) } fmt.Println(conf) err = json.Unmarshal(conf, &config) fmt.Println(config) fmt.Println("*** Client start ***") temp, _ := net.InterfaceByName("enp0s25") mac := temp.HardwareAddr.String() fmt.Println(mac) } |
[링크 : https://www.joinc.co.kr/w/man/12/golang/json]
[링크 : https://jeonghwan-kim.github.io/dev/2019/01/18/go-encoding-json.html]
[링크 : http://golang.site/go/article/104-JSON-사용]
golang unsafe package (0) | 2022.10.01 |
---|---|
golang 의 장단점. 개인적인 생각 (2) | 2022.09.28 |
golang mac address 얻기 (0) | 2022.09.28 |
golang method (0) | 2022.09.27 |
go mod init 과 go build (0) | 2022.09.27 |