본문 바로가기

Work158

[Go언어] embedded struct bson marshaling 시 struct 이름으로 키가 생성되는 문제 아래와 같이 Sample struct에서는 Inner struct를 embedded 하고 있다. type Inner struct { ID string `json:"id,omitempty" bson:"_id,omitempty" Name string `json:"name" bson:"name"` CreatedAt int64 `json:"created_at,omitempty" bson:"created_at,omitempty"` ModifiedAt int64 `json:"modified_at,omitempty" bson:"modified_at,omitempty"` } type Sample struct { Inner } 이 때 marshaling을 수행하면 json의 경우에는 아래와 같이 원하는 대로 변환 된다... 2020. 9. 18.
[Go언어] tcp로 웹 서버 구동시 tcp6로 Listen Golang echo framework로 웹 서버 실행 시 tcp를 지정하여 IPv4를 사용하도록 설정을 했는데도 서버가 실행된 후 LISTEN 상태를 보면 아래와 같이 tcp6만 실행되어있다. netstat -anp | grep 8080 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 :::8080 :::* LISTEN - 그럼에도 ACL이 허용된 다른 서버에서 telnet으로 접근을 시도하면 정상적으로 접근이 된다. telnet 10.0.13.35 8080 Trying 10.0.13.35... Connected t.. 2020. 9. 14.
[쿠버네티스패턴] 2장 예측 범위 내의 요구사항 공유 클라우드 환경에서 애플리케이션 배포, 관리 및 공용(Coexistence)을 성공적으로 수행하려면 애플리케이션 자원 요구사항과 런타임 의존성을 명확히 식별하고 정의해야 한다. 여기서 공용(Coexistence)이란? Coexistence를 찾아보면 쿠버네티스 보다는 주파수, 블루투스와 같은 신호나 기기 간의 충돌 현상을 이야기하는 글들이 많다. 위 의미와 빗대어 쿠버네티스에서의 Coexistence를 생각해보면 다양한 어플리케이션이 Pod의 형태로 같은 노드에 배치되는 것이라 볼 수 있다. 자원 요구사항은 쿠버네티스 위에서 동작하는 어플리케이션들의 CPU와 메모리 사용량을 의미하고, 런타임 의존성은 Pod 실행 시점에 결정되는 볼륨이나 ConfigMap 과 같은 의존성을 의미한다. 이 의존성에 따라.. 2020. 9. 12.
[Flutter] Drawer 위젯 만들어보기 앱을 사용하면서 메뉴 화면이 슬라이딩 되는 것이 신기하기도 하고 구현하기가 굉장히 어렵고 노가다가 많을 것 같다는 생각이 들었었는데 Flutter를 사용하면 의외로 간단하게 만들 수 있다. 먼저 간단한 테스트를 위한 앱이기 때문에 동적으로 액션이 들어가는 부분이 없어서 StatelessWidget으로 생성하고, 앱 화면을 그리기 위해 Scaffold 위젯을 사용하였다. body는 중요하지 않아 임의의 텍스트를 표시하였다. class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: .. 2020. 9. 11.