컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 조훈, 심근우, 문성주 저 | 길벗 우연찮게 최근 이런저런 개발 관련 대화를 나누곤 하는 오픈 채팅방에 저자분이 계셔서 구입하고 주변에 쿠버네티스 관련 볼만한 책 없냐는 질문을 받으면 적극 추천 중인 책입니다. 최근 개발 인프라 시장은 컨테이너 천국 입지요.. 한때 가상 서버가 한참 창궐(?) 해오다 MSA세상이 도래하고 데브옵스니 빌드/배포의 자동화라느니 여러 가지 이슈들이 복합적으로 등장하면서 급속도로 시장을 지배하기 시작한 놈이 쿠버네티스라고 할 수 있겠습니다. 실무자가 아닌 취준생이나 전공학과 학생들만 해도 많이들 관련 정보를 수집하고 무언가를 해보시려고 하시는데요. 이에 기본적인 테스트 환경을 구성하는 방법들과 여러 툴들에 대해서도 충실히 소..
현재 배포중인 모두의 플러그는 Go언어로 만들어 졌습니다. 초기에 배포한 모두의 플러그는 MFC로 만들어 졌었구요.. 이래저래 하드 정리를 하다보니 초기버전의 소스가 보여서 깃헙에 공개해 두었습니다. https://github.com/pirogom/9RASTOP GitHub - pirogom/9RASTOP: 구버전 MFC기반 모두의 플러그 전체 소스 구버전 MFC기반 모두의 플러그 전체 소스. Contribute to pirogom/9RASTOP development by creating an account on GitHub. github.com C/C++, MFC, 윈도 프로그래밍 공부하시는 분들에게 작은 도움이나마 되었으면 합니다.
모두의 리모트를 완전히 Go언어로 다시 만들고 기존 구조랑 전혀 다르게 수정을 하면서 기존 모두의 리모트를 1년 넘게 사용해오면서 가장 불편하게 느낀 점이 한영키가 먹지 않는다는 점입니다. 모두의 리모트에서 사용중인 TightVNC뿐 아니라 대부분의 VNC계열의 RDP 프로그램들에서 발생하는 문제이긴 한데요.. TightVNC 2.8.59-gpl 버전 소스코드를 받아서 한영키 관련된 부분을 수정하고 아무래도 멀티플랫폼에 맞춰 개발된 프로그램이라 소스코드들이 UTF-8인코딩으로 되어 있어서 Visual Studio 에서 윈도용으로 컴파일시에 뜨는 이런저런 Warning 과 몇가지 define 관련 충돌나는 부분들과 함께 한영키 처리에 대한 부분을 수정하였습니다. 이미 한글에 대한 여러가지 부분이 적용이 되..
워낙 큰 건이 터진지라 제가 배포하는 프로그램들과 관련해서 log4j에 영향받는 부분이 없느냐 라고 문의해주시는 분들이 계십니다. 아마 회사내에서 사용하시는 경우가 있으셔서 그런것 같은데요. 그리고 구버전의 모두의 PDF의 경우 웹기반 관리페이지를 사용했어서 더 그런 문의가 있는것 같습니다. 우선 모두의 프린터의 경우 2.66 이전의 웹기반 관리페이지를 사용하던 시절에도 자바(Java)는 전혀 포함되지 않은 순수하게 Go와 C/C++, 약간의 어셈이 동원된 네이티브 바이너리로 컴파일된 프로그램입니다. 이마저도 2.66 이후부터는 웹기반 기술은 1도 사용되지 않고 있으며 윈도 API에 기반한 네이티브 GUI 프로그램으로 변경된지라 자바 진영에서 발생한 log4j 와는 아무런 관련이 없습니다. 기타 모두의 ..
데이터 백업 차원에서 글 하나 올려둡니다. 프로그램 개발을 하다보면 사설인증서를 만들어야 하는 경우가 있는데요 그에 사용되는 몇가지 프로그램들이 있는데 .. OpenSSL 을 사용하는 방법도 있고 MS에서 제공하는 관련 툴들을 사용하는 방법도 있습니다만. MS의 프로그램들을 이용하는 방법을 설명하는 사이트들도 많이 있습니다만.. 관련 프로그램들을 다 제공을 하는게 아닌데다 .. 필요 프로그램들이 MS에서도 하나의 패키지로 제공하는게 아닌 어떤놈은 VS 설치 폴더에서 찾고 어떤놈은 DDK 를 깔아야 하거나 윈도SDK에 포함되어 있거나 하는 등의 일들이 많아서.. 관련 파일들을 모아서 올려둡니다. 포함된 파일은 .. 이렇게 5가지 입니다. 다른 것보다 pvk2pfx.exe 를 제공하는 사이트들이 별로 없어서..
Go언어는 기본적으로 다른 Managed 언어들과 유사하게 Json 이나 Xml 같이 포멀한 데이터 포맷에 대한 Parser를 제공하고 있습니다...만!!! 이런 비정형화 된 텍스트 베이스의 데이터를 구조체 없이 interface를 통해 map 데이터 등으로 Unmarshal해서 사용하는건 엄청난 노가다 및 예외처리의 지옥을 경험하게 되겠지요. 그래서 권장하기론 해당 자료구조에 맞는 구조체를 만들어 사용하기를 권장합니다만 .. 이게 복잡하고 많은 Key가 존재하는 Json이나 Depth가 어마무시한 Xml 파일을 한땀 한땀 구조체로 만드는것도 ㅋㅋ 엄청난 노가다이기도 하지요. 그래서 이러한 빡침을 격은 선각자들께서 유용한 온라인 사이트를 제공해 주시고 계십니다. 우선 Json을 Go 구조체로 만들어주는 ..
윈도 관련 많은 API들이 COM 방식으로 지원을 하는데요.. MS의 관련 문서에 예제 코드부터 다양하게 제공을 하고 있습니다만. 간혹 이유를 알 수 없는 메모리 누수가 발생하여 곤란해하시는 분들이 계십니다. 우선 기본적으로 IUnknown 개체들은 전부 사용 후 Release를 호출해 주셔야 하고요. IUnknown 객체에서 Get으로 얻어온 값을 저장한 변수들도 반드시 VariantClear 함수로 비워주셔야 합니다. 컴파일러 버전에 따라서는 Release 하거나 VariantClear 된 변수라 하더라도 NULL로 초기화를 해주셔야만 레퍼런스 카운트가 감소하여 메모리 해제가 가능한 경우도 있었으니 NULL로도 초기화해주시고요. 이렇게 모든 메모리 관련 처리를 하였는데도 지속적으로 메모리 사용량이 누..
이런저런 강좌 시작하기 합서 제가 애정해 마지 않는 Go 라는 언어의 개발환경 설정에 대한 글을 작성해 봅니다. 우선 Go 를 설치 하셔야 겠지요 일단 윈도 사용자를 기준으로 설명합니다. https://golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fib..