[권희진의 세계는] "핵잠수함 기항"‥신냉전 최전선에 선 한국 (2023.04.29/뉴스데스크/MBC)

이미지

AI가 개발자를 대체한다😭?!

이미지

I built the Quietest Keyboard (so I can finally sleep)

이미지

Jigsaw - Sky High [HQ]

이미지

WPF 잡담

이미지
몇달째 WPF 로 윈도즈 데스크탑 네이티브 앱을 만드는 일을 하고 있습니다. 며칠전 경험을 기록으로 남기려고 몇자 적습니다. 아시는 바와 같이 WPF 는 주로 XAML 이라는 마크업 언어를 통해 UI 를 구성합니다. CSS 와 용도가 비슷한 Style 이라는 Tag 를 통해 UI 컨트럴들의 모양을 조정할 수 있어요. Style 만 따로 모아서 리소스 파일처럼 불러오고, Style 은 원하는 Tag (사실 WPF 에선 이게 Class - Type 입니다) 를 조질 수(?) 있어요. 웃기게도 CSS 와 유사한 문제점들이 생깁니다. 여러가지 조건에 의해 선언한 Style 이 무시당하는 거죠. CSS 는 최근 웹브로우저들의 훌륭한 개발자모드로 인해 대충 실시간으로 어떻게 무시(?) 당하고 있는지 구경할 수 있잖아요. Visual Studio 2015 까지는 내장된 Runtime Style Monitor 가 없어서 외부 툴들을 썼지만 VS 2017 부터는 내장 Tool 로 Style 이 Runtime 에서 어떻게 적용되고 있는지 구경할 수 있게 되었죠. 얼마전 이것으로 작업을 진행하다가 뭔가 이상하다고 생각되었습니다. 위 그림은 특정 Style (여기서는 DialogHost 에 적용되는) 의 속성을 디버깅 모드로 실행한 상태에서 보고 있는 것인데요. 제 기억에는 예전에 주황색 점선 영역에 뭔가 보였던거 같은데 이게 안보이는 겁니다. 다른 프로젝트들을 열어서 이것 저것 뒤지다가 발견한 것이 아래 그림의 것입니다. 요즘 제가 작업중인 프로젝트에서 사용하는 오픈소스 XAML Theme 라이브러리인  Material Design In XAML  의 데모 프로젝트에서 어떤 UI 부분의 속성을 실행시에 열어본 화면입니다. 위의 그림에서 보는 바와 같이 노란 네모 안에 이전 그림과 다른 파란 텍스트가 한줄 보입니다. 이게 현재 보고 있는 Style 이 선언된 XAML 파일을 뜻하며 파란 텍스트를 누르면 그 파일을 볼 수 있습니다. 같...

WPF 에서 초간단 런타임 다중 언어 지원

이미지
  제가 다니는 직장에서 최근에 시작한 프로젝트는 WPF (윈도즈 앱의 GUI 를 만드는 기술중 하나) 기반입니다. 제 매니저는 50대중반으로 당연히 WinForm 에 익숙하고, 올해 딱 50인 저의 직속 시니어는 WPF에 익숙하고, 전 그냥 다 해봐서 새 프로젝트이니 UWP (저도 이건 그냥 Hello World 찍는 수준입니다만, 다른 OS 에서도 쉽게 잘 되는 이유로...) 로 합시다! 했다가 윈도7 지원 문제로 까이고, 결국 WPF 로 시작되었습니다. 대충 골격은 저희 회사의 주력인 Windows CE 기반의 통신기기 (PBX에 가깝죠) 를 PC 윈도즈에서 모니터링하는 거고, 제가 담당한 부분은 오로지 GUI입니다. ㅋㅋㅋ 캐나다 제품들의 특징 중에 하나가 공용언어인 불어가 들어가는 경우가 많고, 미국 시장에도 진출한 제품들은 멕시코 이민자들이 너무 많은 관계로 스페인어를 지원합니다. 그러니 당연히 제가 담당한 부분도 그게 되야 하는거죠. 헐~   저도 WPF 로 Localization 은 처음 해보는거라, 구글님과 스텍오버플로님에게 열심히 매달리고 있는데... 기본적으로 WPF 의 컴파일 타임 다중 언어 지원은 M$ 의 문서가 잘되어 있습니다만, 런타임간에 언어 전환은 네트에서 수많은 해결책들을 찾아 볼 수 있습니다. WPF Localization – On-the-fly Language Selection WPF Localization Using RESX Files WPF Runtime Localization WPF Localization Extension Localizing WPF Applications using Locbaml Simple WPF Localization 대충 이 정도가 있는데요. 더 찾아보면 더 있을 것 같습니다. 저 리스트 중에 제일 단순한 방법은 마지막 6번에 있는 방법이에요. Resource.resx 를 여러 언어 버전을 만들어주고 - 예를 들면, 불어는 Resource.fr.resx - 런...

10월 마지막 밤 단상

이미지
IU 가 부르는 이용의 잊혀진 계절   퇴근 후, 작은 녀석 할로윈 'Trick or Treat' 하는 것 따라 다니는 것을 마치고 설거지하고 리사이클 분류하고 나서 컴퓨터 앞에 앉았더니, 10시가 넘었군요. 올해도 열달이 지나가고 이제 두달 남았습니다. 올해가 시작되었을 때 여러가지 New Year's Resolution 를 번지르르하게 세우지만 역시 지킨 건 별로 없네요. 특히 소프트웨어 개발자로 새 언어나 새 프레임웍을 마스터하고 회사 프로젝트나 개인 프로젝트에 적용해 보는 계획을 매년 세웠을거에요. 하지만 아직도 2달이나 남았네요. 하루에 1시간을 내면, 한달에 20시간 정도는 공부할 수 있겠죠? 그래서 이것 저것 뒤지다가 적당한 시간이 필요한 온라인 강좌하나 등록했습니다. 거금 CAD$15 가 나갔습니다. Udemy 에 Vue.js 웹프레임웍 강좌중 한가지. 18시간 짜리 과연 잘 끝낼수 있을지 저도 궁금하군요. ㅋㅋㅋ 여하튼 공개적으로 뭘한다고 했으니 쪽팔리지 않으려면 열심히 해야겠군요. 두달 남은 올해도 뭔가 하나 완료해 보시기 위해 시도해 보셔요. 뭐 몇개씩 해놨다면 할말 없고요. ^^;;;