모두의 프린터는 어떠한 경우에도 회원가입, 카드결제를 요구하지 않습니다.

Vscode에서 Goland로 전환 후기

매우 오랜 시간 MS의 Visual Studio Code를 이용해서 Go언어 개발을 해 왔습니다만.. Vscode 에서 go언어를 지원하기 이전에는 서브라임텍스트 라던가 gVim등 정말 많은 편집기들을 전전 긍긍 했고 한때는 Notepad++ 로 Go언어 개발을 하던 시절도 있었습니다. Vscode 에서 go언어를 지원하기 시작하고 디버깅도 가능해지고 각종 go 언어 관련 부가적인 기능들을 지원하기 시작하면서 부터는 주로 Vscode 로 개발을 해 왔습니다. 우선 무료라는 점이 가장 큰 이유였고, 별다른 플러그인들 없이 git 자체도 IDE외부에서 관리하는 편이고 대부분은 콘솔에서 명령어를 쳐서 무언가를 하거나 자동화를 시켜 버리는 편이어서 .. 크게 불편함 없이 사용해 왔습니다. JetBrains에서 Goland 라는 IDE가 나온 시점에서도 이런저런 사람들의 극찬에도 불구하고 … 더 보기…

HTTP GET 헤더추가 + gzip 처리

웹 관련 개발을 하게되면 HTTP GET 방식으로 단순 데이터를 수신해야 하는 경우가 있습니다. 이런 경우 Response 데이터의 크기가 큰 경우에 서버측에서 데이터를 gzip 으로 압축해서 전송하는 경우도 종종 있습니다. 트래픽 비용을 cpu 연산으로 커버 치는 샘이겠지요.. 이런식의 처리가 가능하려면 Reqeust Header 상에도 accept-encoding 같은 정보에 gzip 을 지원 한다는 명시를 해주지 않을 경우 서버측에선 에러를 리턴하게 됩니다. 상대가 gzip 압축을 처리하지 못한다는데 굳이 gzip 으로 압축된 응답을 할 이유 자체가 없기 때문이겠지요 .. 여튼 그런 상황에서 사용 가능한 간단한 함수하나 던져봅니다.

[Go언어 윈도 GUI] walkmgr에 트리뷰(TreeView) 추가 2편

앞서 기본적인 트리뷰 생성법에 대해서는 아래 링크를 참고하시구요. 몇가지 예제를 가지고 추가 사용법을 알려드리도록 하겠습니다. 트리뷰에서 선택된 아이템의 이름을 변경하는 예제입니다. 현재 선택된 아이템의 객체를 얻는 방법과 명칭을 변경하는 방법입니다. 1,2,3 이라는 이름을 가진 3개의 아이템을 트리뷰의 루트에 추가하였습니다. 여기까진 앞서 알려드린 예제들과 같이 AddItem 메소드의 사용법만 알고 계시다면 큰 차이는 없습니다. “선택 아이템 이름 변경” 이라는 버튼을 하나 만들고 이 버튼이 클릭되면 동작할 함수를 작성합니다. 현재 트리뷰에 선택된 아이템은 CurrentItem() 메소드로 얻을 수 있습니다. 전달되는 파라미터는 없고 그냥 호출만 하시면 됩니다. 만약 현재 선택된 아이템이 없으면 이 메소드의 리턴값은 nil입니다. CurrentItem 메소드의 리턴값은 항상 체크하셔야 … 더 보기…

[Go언어 윈도 GUI] walkmgr에 트리뷰(TreeView) 추가 1편

이번에 모두의 PDF에 책갈피 기능을 추가하면서 PDF의 책갈피 기능이 Parent, Children 을 이용한 무한 계층구조 인지라 이런 형태를 다루는데 가장 적합한 UI요소는 아무래도 트리뷰(TreeView)라서 관련 기능을 walkmgr 에 추가해 봅니다. MFC나 윈도 API를 다루던 시절에도 사실 트리뷰는 진짜 쓰기 싫어라 하던 놈중 하나인데요 가능하면 리스트컨트롤로 대충 땜빵해서 쓰곤 했는데 .. 계층구조를 리스트 컨트롤로 다루는건 매우 비효율적인지라 미루고 미루다 추가해 봅니다. 이런놈을 보통 트리뷰라고 하지요.. 우리가 가장 흔히 접하는 경우를 보자면 윈도 탐색기의 폴더구조를 들 수 있겠습니다. 대표적인 계층구조의 트리뷰를 사용하고 있는 놈입니다. 기존에 pirogom/walk 나 pirogom/walkmgr 을 쓰시던 분들은 go get -u 명령으로 업데이트 하시면 업데이트된 … 더 보기…

[Go언어 윈도 GUI] walkmgr 메뉴(Menu) 예제

walkmgr 에 메뉴관련 기능과 예제는 한참 전에 추가를 해두긴 했습니다만.. 메뉴와 관련된 글은 작성을 제대로 안한것 같아서 예제도 조금더 보강을 하고 관련 글을 작성해봅니다. 관련 예제는 위의 링크 참고 하시면 됩니다. 윈도 프로그래밍을 하다보면 진짜 유용하고 친숙하게 사용하는게 메뉴입니다. UI나 그런거 귀찮으면 ㅎㅎ 그냥 메뉴에 다 때려넣어도 ;;; 첫번째 예제 부터 가봅시다.. walkmgr 을 이용해서 생성된 윈도에 메뉴기능을 사용하는 방법은 단순합니다. 우선 메뉴 객체를 구성한 뒤에 해당 객체를 추가하고자 하는 대상에 AddMenu 로 추가해서 넣으면 되겠습니다. 왜 윈도가 아닌 추가하고자 하는 대상에 AddMenu 를 하냐 표현 하냐면 .. 메뉴라는 것은 메뉴 안에 메뉴가 또 들어가는 서브메뉴 … 더 보기…

[Go언어 윈도 GUI] walkmgr에 스크롤뷰(ScrollView) 추가

업데이트된 패키지는 walkmgr, walkmgr_example 2개 입니다. 네이티브 GUI 프로그래밍을 하다 보면 .. 한 화면에 매우 많은 UI요소를 배치해야 하는 경우가 있습니다. 보통 일반 사용자용 프로그램을 만들때 보다는 내부에서 사용할 각종 툴(Tool)같은 것들을 만들때에는 사용성 보다는 기능에 집중하는 경우 같은.. 내가 만들어서 나 혼자 쓰는 프로그램이 아니라면 사용자 컴퓨터의 해상도나 모니터 크기 등을 특정할 순 없다보니 일반적으로 최근에 FHD 모니터는 사용하는 편이라 생각 하고 최대 1920*1080 해상도에 맞춰 개발을 했더니 뜬금없이 HD 해상도의 사용자가 화면이 잘린다는 등의 ㅎㅎ  여튼! 그리하야 lxn/walk 에 존재하던 ScrollView를 walkmgr 체계(?)에 끌어다 넣고 관련 예제도 추가해서 Git에 Push 해 두었습니다.  간단한 설명도 … 더 보기…

[Go언어 윈도 GUI] walkmgr 에 ListControl 추가

Go언어로 윈도API를 이용한 GUI 프로그래밍과 관련된 글을 최근에 계속 작성하고 있는데요.. 기존 lxn/walk, win 등에서 개인적으로 수정할 부분들을 고쳐서 따로 제 깃헙에 클론한 패키지들을 계속 손봐서 업데이트 하고 있습니다. 그중 walk 로 gui 프로그래밍을 하면서 가장 복잡한 구조를 가지게 되는 것이 .. 리스트컨트롤.. 입니다. 기존에 글을 올린것에서 TableView 라고 하여 walk 에서 기본적으로 제공하는 리스트컨트롤을 이용하는 방법을 글을 쓴적이 있습니다만. 그 구조는 테이블을 하나 만들때마다 model 구조체를 만들고 실제 사용되는 자료형과 매칭시켜서 동작이 되다보니 매번 중복된 코드를 계속 양산해야 하는 불편함이 존재했습니다. 그래서 개인적으로 자주 쓰는 구조와 형태로 MFC의 리스트컨트롤과 비스무리한 구조를 만들어 봤습니다. 우선 그러기 … 더 보기…

[Go언어 윈도 GUI] walkmgr 에 Progress Bar 추가

walkmgr 에 progress bar 기능 추가했습니다. walkmgr_example 저장소에도 예제 적용 되었습니다. 설치나 다운로드시에 진행률을 표시할때 사용하기 좋은 기능입니다. walk 에 기본 내장되어 있었으나 제가 사용빈도가 거의 없어서 추가하지 않았던 기능인데.. 필요하시다는 분들이 계셔서 추가 했습니다. 단순합니다.. WalkUI 의 ProgressBar 메소드를 사용하시면 되구요.. 입력 파라메터는 Min, Max, Current 입니다. 그러니까 Bar 를 구성하는 최소값, 최대값 그리고 현재값 .. 0, 100, 0 으로 생성하면 0~100 까지 값으로 만들어지는 막대에 시작 값은 0이니 진행 상태가 전혀 없는 바가 생성 될것이고 0, 100, 50 으로 생성하면 0~100 까지 값으로 만들어지는 막대에 시작은 50이니 절반쯤 진행된 상태의 바가 생성될 것입니다. 사용 … 더 보기…

[Go언어 윈도 GUI] walkmgr 에 라디오 버튼 추가

최근에는 lxn/walk, lxn/win 등을 클론해서 따로 필요한 부분을 수정해서 깃헙에 올려두고 있습니다. walk 를 통한 윈도 GUI 프로그래밍을 조금 수월하게 하고자 walkmgr 이라는 패키지를 만들어 쓰고 있구요.. 이와 관련된건 이 1일1고 카테고리의 이전 글들에 간단히 강좌 비슷한 글을 작성해 두었으니 참고 하시구요 .. 이 walkmgr 은 제가 만드는 모두의 프린터, 모두의 PDF등을 비롯한 윈도 GUI 프로그래밍에 모두 사용되고 있는 패키지들 입니다. 기존 walkmgr에는 checkbox 는 제공을 하고 있었으나 walk 에서 제공하는 radio button 은 아직 지원을 하지 않고 있었습니다. 라디오 버튼을 잘 쓸일이 없었던 것도 있고 walkmgr 작업하기 귀찮아서 checkbox 로 라디오버튼 같은 식으로 쓰곤 했었는데.. … 더 보기…

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 – 조훈, 심근우, 문성주 저 | 길벗  우연찮게 최근 이런저런 개발 관련 대화를 나누곤 하는 오픈 채팅방에 저자분이 계셔서 구입하고 주변에 쿠버네티스 관련 볼만한 책 없냐는 질문을 받으면 적극 추천 중인 책입니다. 최근 개발 인프라 시장은 컨테이너 천국 입지요.. 한때 가상 서버가 한참 창궐(?) 해오다 MSA세상이 도래하고 데브옵스니 빌드/배포의 자동화라느니 여러 가지 이슈들이 복합적으로 등장하면서 급속도로 시장을 지배하기 시작한 놈이 쿠버네티스라고 할 수 있겠습니다. 실무자가 아닌 취준생이나 전공학과 학생들만 해도 많이들 관련 정보를 수집하고 무언가를 해보시려고 하시는데요. 이에 기본적인 테스트 환경을 구성하는 방법들과 여러 툴들에 대해서도 충실히 소개하고 있고 쿠버네티스, … 더 보기…