본문 바로가기

Programming

(10)
Electron | Electron 시작하기 + 틱택토 만들기 윈도우 데스크톱 애플리케이션 개발을 하다 보니 Javascript 및 웹 관련 기술에는 전혀 접점이 없었습니다. 그런데 회사에 입사하고 나서 이런저런 일을 하다가 윈도우 태블릿 애플리케이션을 개발해야 할 일이 생겼습니다. Winform과 WPF 둘 중에 어떤 GUI 프레임워크를 사용할지 고민하다가 신규 프로젝트니까 그나마 신기술인 WPF를 사용하고자 했습니다. (UWP는 경험이 없어 고려 대상조차 아니었습니다...) 문제는 태블릿의 스펙으로는 WPF가 버벅인다는 점이었습니다. 산업용 태블릿 PC도 그랬고, 서피스 3도 그랬죠. 퍼포먼스가 나오지를 않아서 기껏 만들었던 애니메이션들을 삭제하고 어찌어찌 완성을 했지만, 아쉬움이 많이 남았습니다. 그렇게 가벼운 데스크탑 애플리케이션을 어떻게 만들 수 있을까 찾..
WPF, MVVM | Calibrun.Micro와 C#으로 WPF 애플리케이션 만들기 (2) 이번에는 Caliburn.Micro를 사용해서 간단한 프로그램을 작성해보겠습니다. 공식 문서에는 따로 Model에 대한 설명이 없어 Model 없이 View와 ViewModel로만 프로그램 작성을 해야 하는가 조금 헷갈릴 수도 있지만, Model 역시 사용 가능합니다. 예를 들어, 학생부 프로그램을 작성하기 위해 'Student'에 대한 Model이 필요하다면 namespace MVVMDemo.Models { public class StudentModel { public BitmapImage Picture { get; set; } // 학생 사진 public string Grade { get; set; } // 학년 public string Name { get; set; } // 이름 public str..
WPF, MVVM | Calibrun.Micro와 C#으로 WPF 애플리케이션 만들기 (1) Calibrun.Micro Caliburn.Micro · 'Xaml made easy' · Caliburn.Micro A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability. Features Bind view caliburnmicro.com Caliburn.Micro는 XAML을 사용하는 모든 플랫폼에서 MV* 패턴, MVC·MVP·MVVM ..
WPF, MVVM | 초심자를 위한 MVVM C#은 풍부한 라이브러리를 통한 높은 생산성과 GUI 프로그래밍이 용이하다는 장점이 있습니다. 저 역시 이러한 점에 매료되어 C#을 공부하기 시작했지만 '디자인 패턴'에 대한 필요성은 느끼지 못했습니다. 학부 시절에는 제가 짠 코드를 남이 볼일이 없는데다가, 프로젝트 구조가 어찌되었던 간에 결과물만 제대로 기능하기만 하면 아무런 문제가 없이 성적을 받을 수 있었기 때문이죠. 하지만, 이제 갓 사회 생활을 시작하게 되면서 '디자인 패턴'에 대해 조금 생각할 시간이 있었습니다. 직장에서의 프로젝트는 혼자 개발할 수가 없기 때문입니다. 특히 신규 프로젝트를 WPF로 진행하게 되면 MVVM이라는 디자인 패턴을 적용하는 것이 유지보수 측면에서도 굉장히 유리할테니 스스로 공부하고 싶은 마음이 생겼습니다. 그래서 개..
Unity | 2D Side Scroller 저는 대전 액션, FPS, RTS, MOBA 등 여러 장르의 여러 게임을 줄곧 해왔지만 항상 제 마음속에 최고의 게임 중 하나는 '메탈슬러그' 시리즈였습니다. 오락실 전성기의 마지막 세대였던 저는 물론이고 제 친구들 역시 '메탈슬러그' 시리즈와 'KOF' 시리즈로 대표되는 SNK의 게임을 즐겨했었습니다. 특히 '메탈슬러그' 시리즈는 횡스크롤 런앤건 장르의 명작이라고 불리며, 현재는 시리즈의 명맥이 끊겼지만 그럼에도 불구하고 아직까지도 플레이하는 사람이 많은 게임입니다. 직관적인 조작법, 스테이지 - 보스라는 친숙한 레벨 디자인, 화려하고 디테일이 느껴지는 픽셀 아트(도트 그래픽), 강렬한 BGM 이외에도 모든 요소들이 게임에 잘 어우러져 게임 플레이 자체의 재미는 물론 게임 요소들을 '구경'하는 재미도 ..
Unity | AR 사용설명서 해당 프로그램은 2018년 2학기 ~ 2019년 1학기, 1년 과제로 제작했던 컴퓨터공학과 졸업작품입니다. 최근 컴퓨터공학과 졸업작품은 대부분 교통 관련, 컴퓨터 비전이나 머신 러닝과 같은 일반 학부생이 쉽게 완성하기 힘든 부분에 집중되어 있었습니다. 실제로 1년이란 기간에 해당 주제를 가지고 완성을 못한 팀도 상당히 많았습니다. 또한 이런 주제들은 이미 상용화가 되어 있거나 실생활에 적용하기 어려운 매우 조잡한 형태였다는 것도 문제였습니다. 게다가 이런 주제를 선택한 팀들 중에서는 암묵적으로 졸업작품을 개인 개발자들에게 맡겨 사고 파는 방식도 있다는 것도 알고 있었고 실제로 본 적도 있었습니다. 저는 어찌됐건 졸업작품은 대학 생활에서 배운 것들을 마무리하는 작업이었기 때문에 첫째, 스스로 개발할 수 있..
C#, Winform | 열차 예약 프로그램 오라클 + C#(Winform)을 이용해 제작한 열차 예약 및 열차 구간 관리 프로그램입니다. 2018년 2학기 데이터베이스 프로그래밍 개인 프로젝트였으며, 발표를 끝낸 뒤라 블로그에 업로드하기로 마음먹었습니다. 데이터베이스 설계 부분은 스스로 공부해보는 것이 가장 도움이 되는 방법이라 전체를 다 보여드리지는 않고, 쿼리 역시 제가 정말 고생하며 구현했기 때문에 공개하지 않도록 결정했습니다. 다만, 참고가 되기를 바라는 마음에 Winform으로 제작된 부분만 보여드릴 생각입니다. + 2021.05.06 오래된 소스기도 하고, 오라클 DB도 유실되긴 했지만 많은 분들이 소스코드를 필요로 하는 것 같아서 github 주소를 첨부하도록 하겠습니다. 괜한 똥고집 부린 것 같아 미안하기도 합니다. github.c..
C#, WPF | 악보 제작 프로그램 [실행화면] MIDI를 이용하여 WPF에서 구현한 악보 제작 프로그램입니다. 기존의 MIDI 라이브러리 대부분이 WPF에서 지원하지 않아 관련 라이브러리를 찾느라 많이 고생을 했습니다. 여러 라이브러리를 계속해서 검색하다가 'Toub.Sound.Midi'라는 라이브러리를 찾아서 적용을 했습니다. http://grouplab.cpsc.ucalgary.ca/cookbook/index.php/VisualStudio/HowToPlayMIDIInstruments [관련링크] MidiPlayer.Play에 대한 4개의 파라미터는 다음과 같습니다.1. Delta Time2. Channel : 0 ~ 15 사이의 범위를 가집니다.3. Note : 음악 표기법에서 음표를 나타내는 문자열. 값의 범위는 "C0" ~ "G1..