VS Code에서 아발로니아 UI(AvaloniaUI, "아발로니아 UI에 대한 고찰" 참조)를 응용을 빌드하고 실행하는 과정을 수행하려면 일단 닷넷 SDK와 아발로니아 프로젝트 템플릿을 준비해야 한다. 닷넷 SDK는 위의 그림처럼 명령창을 열어서 "dotnet --list-sdks"로 간단히 확인할 수 있으며("설치된 닷넷 SDK와 닷넷 런타임을 확인하기" 참조), 아발로니아 프로젝트 템플릿도 "dotnet new install Avalonia.Templates" 명령으로 간편하게 설치할 수 있다. 설치 결과를 보면 많이 사용하는 "Avalonia .NET App", "Avalonia .NET MVVM App" 템플릿 이외에도 여러 템플릿이 있음을 확인할 수 있다. 닷넷 SDK 버전은 "Avalonia..
프로그램 개발 후 필요가 있을 때 일시적으로 사용하는 프로그램이 아니라면 시간이 흐름에 따라 문제가 발생하는지 꼭 확인할 필요가 있다. Long Run Test, Aging Test와 연관된다고 할 수 있다. 코어 덤프로 프로그램이 죽는다면 어디가 문제인지 명확하지만 메모리 누출, 핸들 누출등이 있다면 조금은 난감한 상황이 될 수 있다. 재현이 빠르게 될 수 있다면 어떻게든 문제를 찾을 수 있겠지만 장시간 수행 시켜야 알 수 있다면 정말 난감할 수 있다. 그럼에도 메모리 누출, 핸들 누출, CPU 과점 등은 얼마간의 모니터링으로 그 추세를 판단할 수 있다. 본 포스팅은 윈도우의 성능 모니터를 통해서 간편하게 프로그램과 연관된 시스템 자원 정보를 로그로 남기는 과정을 다루고자 한다. 윈도우+R 단축키로 p..
닷넷 기반의 크로스플랫폼 프로그램을 개발하려다 보니 자연스레 닷넷 SDK와 닷넷 코어 또는 닷넷 런타임이라는 용어를 자주 접하게 된다. 윈도우 전용이라 할 수 있는 닷넷 프레임워크는 "설치된 닷넷 프레임워크 버전 확인하기"에서와 같이 조금 복잡하게 확인하지만 닷넷 SDK와 닷넷 런타임은 조금 더 간단하게 확인할 수 있다. 그리고 명령어도 크로스플랫폼이다. 윈도우+r 단축키로 실행창에서 cmd를 구동시켜서 "dotnet --info" 명령을 수행하면 위의 그림처럼 설치된 SDK와 런타임을 한 번에 확인할 수 있다. 리눅스에서는 콘솔창에서 해당 명령을 수행하면 된다. 위의 그림은 우분투에서 "dotnet --info" 명령을 수행한 결과이다. SDK나 런타임 설치 내역만 조회하려면 다음의 명령을 사용한다..
프로그램 개발 및 유지 보수의 생산성을 높이고, 협업으로 시너지를 높일 수 있는 아키텍처는 지속적으로 개발되어 왔는데 대표적인 예들은 아래와 같다.MVC (Model, View, Controller)MVP (Model, View, Presenter)MVI (Model, View, Intent)MVVM (Model, View, View Model)이번에 다룰 MVVM은 MVC에서 파생된 것으로 차이점이라면 MVC 모델에서는 Controller가 입력을 받는다면 MVVM에서는 View에서 입력을 받는다. 무엇보다 WPF 응용에서 가장 널리 사용하는 프로그래밍 패턴이다. 물론 크로스플랫폼 UI인 아발론 UI에서도 MVVM을 채용하고 있다. MVVM은 각 요소를 독립적으로 개발 및 테스트를 진행할 수 있도록 만..
VSCode의 인기는 나날로 늘어가고 있는 모양새다. 이런저런 용도로 개발자에게 큰 도움을 주는 도구가 되어 가고 있다. 통합 개발 환경에서도 텍스트 편집기에서도 소스코드를 열면 언어별 문법 요소에 따라 색상을 구분해서 출력해 주는데 이런 기능을 Syntax Highlighting이라 부른다. 그런데, 개인적인 취향 또는 특정한 필요에 따라서 이 색상을 변경할 경우가 있다, 이번 포스팅은 문법 구분 색상을 바꾸는 방법을 간단히 메모한다. 파일> 기본 설정> 설정 메뉴 또는 Ctrl+, 단축키로 설정창을 연다. 설정 창에서 확장> CSS 언어 기능> JSON을 선택하고 우측에서 [settings.json에서 편집]을 클릭한다. 편집창이 열리면 위의 그림처럼 "editor.tokenColorCustomiza..
필자가 아날로니아 UI를 사용하는 크로스플랫폼 앱을 개발하기 위한 사전 단계로 WPF 프로그램을 만드는 과정을 밟아 보고자 한다. 비주얼스튜디오 2019를 사용하고 있는 관계로 비주얼스튜디오를 기반으로 프로그램을 만들어 본다. Window+R 단축키로 "devenv"를 입력하여 비주얼스튜디오 2019를 실행시킨다. [새 프로젝트 만들기]를 선택하고 위의 그림처럼 템플릿 검색창에 wpf를 입력하면 연관된 다양한 템플릿을 만날 수 있는데 C# 기반의 닷넷 코어를 사용하는 템플릿을 선택하고 [다음]을 누른다. 프로젝트 구성은 원하는 폴더와 이름으로 적절히 입력한 다음에 [다음]으로 진행한다. 끝으로 적용할 닷넷 버전을 선택하고 [만들기]를 클릭하면 지정한 템플릿으로 프로그램을 생성한다. 프로젝트가 생성되면 위..
C# 닷넷 환경에서 개발한 프로그램을 윈도우나 리눅스, 맥에 그대로 실행하는 데 있어 가장 큰 장애가 되는 것은 UI 프레임워크이다. WinForms 기반으로 뚝딱뚝딱 프로그램을 만들었던 경험이 있던 개발자가 닷넷 환경을 생각하며 리눅스에서 프로그램을 실행하면 아주 간단한 프로그램이야 별 차이 없이 동작하는 것처럼 보이기도 하지만 UI가 조금이라고 복잡해지고 깊이가 있으면 화면이 깨지거나 아예 실행이 실패하기도 한다. 그래서, 크로스플랫폼을 지원하는 UI 프레임워크를 찾아보다가 아발로니아 UI를 만나게 되었다. 크로스플랫폼을 바이너리 레벨, 즉, 런타임 레벨로 지원하는 것은 아니다. 하나의 소스 코드로 여러 가지 플랫폼에서 구동하는 프로그램을 작성하고자 하는 개발자에게 적절한 솔루션이다. 소스 코드는..
CD-ROM이 있다면 간단히 해결될 일이지만 USB 스틱에 쓰기 금지를 설정하는 작업이 그리 녹록지 않았다. 일부 제품에는 SD 카드처럼 쓰기 방지 스위치가 있어서 Lock 위치로 스위치를 옮겨 놓으면 쓰기 방지를 간단히 수행할 수 있다. 이러한 Lock 스위치가 없는 경우에는 소프트웨어적인 방법을 적용해야 하는데 첫 번째 방법은 위의 그림처럼 윈도우에 내장된 diskpart 프로그램으로 드라이브에 읽기 전용 속성을 설정하는 것이다. 이 방법을 사용하면 내 컴퓨터에서는 USB 메모리에 대한 읽기 전용 속성이 잘 동작하지만 다른 컴퓨터에서는 동작하지 않는 문제점이 있다. 다른 컴퓨터에서도 읽기 전용 속성이 적용되도록 하려면 다른 방법을 적용해야 한다. 일단 위의 그림처럼 USB 메모리를 FAT가 아니라 ..