회사 업무로 진행한 신규 개발 프로젝트입니다. Winform으로 개발된 프로그램이 있는 상황에서 수정이 필요한데 기존 개발자분이 퇴사하셔서 제가 맡게 되었습니다. Winform으로도 간단한 개발은 경험이 있기 때문에 할 수 있겠거니 했는데 너무너무 어렵습니다... 계측기 UI 재개발 프로젝트 후기 요구 사항 해상도 변경 사용자 입력 UI 변경 속도 개선 문제점 하루반나절 정도 코드 이해 및 수정을 검토했으나 포기하고 WPF로 재개발을 결정했습니다. 가장 큰 문제점은 코드가 너무나도 보기 어렵습니다. 1. 너무 긴 함수의 소스코드 - 함수 1개가 1000 line 이 되는 소스코드를 보는 것은 너무나도 힘든 일이었습니다. 2. 이해하기 어려운 함수명, 변수명 - 코드가 길면 변수명이라도 이해가 되면 도움이..

전체 글
JSON은 JavaScript Object Notation의 약자로 가벼운 데이터를 주고받는 용도로 많이 사용됩니다. 또한, 문자를 사용하기 때문에 프로그래밍 언어뿐 아니라 사람이 확인하기도 매우 좋습니다. 그래서 JSON은 데이터 표준 방식 중 하나가 되었습니다. C#에서 JSON을 사용하는 것은 아주 쉬운데 제가 사용하고 있는, 아주 조금 더 편하게 쓰는 방법을 소개합니다. ✅ C# : Newtonsoft.Json Newtonsoft.Json은 nuget에서 가장 많이 설치된 패키지 중 하나로 Visual Studio에서 nuget 찾아보기 탭을 들어가면 항상 상위에 위치하고 있습니다. Newtonsoft.Json 패키지를 설치합니다. class -> JSON 변환에는 Newtonsoft.Json를 ..
프로그램의 상태를 저장하는 방법으로 INI를 많이 사용합니다. INI는 사용이 간편하고 초기화가 쉽기 때문에 많이 사용하지만 암호화가 제외된 만큼 보안에 취약하기도 합니다. 하지만 간단한 프로그램에서는 여전히 유용한 기능이니 알아두시면 좋습니다. ✅ INI 설정파일 C#에서 INIManger라는 Class로 .ini 파일을 관리하는 방법입니다. INI를 사용하기 위해 WINApi의 kernel32.dll 를 사용합니다. 우선 Kernel32Handler 라는 클래스를 만듭니다. 클래스명과 같은 파일명으로 생성합니다. Kernel32Handler.cs using System; using System.Runtime.InteropServices; using System.Text; namespace INI { ..

WPF의 XAML 디자이너는 참 재미있는 녀석입니다. 그리고 종종 아주 분노하게 만들기도 합니다. 보통 디자이너가 활성화 상태면 디자이너 자체에서 프로그램을 실행해 버립니다. XAML의 수정사항이 즉각 반영되는 것은 좋은데 연산량이 많은 프로그램이라면 디자이너가 못 버티고 비주얼 스튜디오가 종료되어 버리는 황당한 상황이 발생하곤 합니다. ✅ Designer 에서 실행 차단 방법 현재 개발 중인 프로그램인데 100 FPS 정도로 Data를 가져와서 화면에 Chart를 그립니다. XAML을 조금 수정하려고 하면 종료되어 버립니다. 물론 소스코드도.. 디자이너에서 프로그램 실행을 막고 싶은데 비주얼 스튜디오 옵션에서는 찾을 수가 없어서 구글링을 했습니다. 디자이너 차단 코드 #if DEBUG if (Desig..
이 방법은 최신 C# 에서 동작하지 않습니다.조만간 다시 포스팅하겠습니다. ICloneable 인터페이스는 단 한개의 메서드(Clone) 를 가지는 간단한 인터페이스입니다.이름과 같이 기존 객체의 복사를 위한 Clone()을 구현하면 되는데 얕은 복사 (ShallowCopy)와 깊은 복사 (DeepCopy)를 적절하게 사용해야합니다. 얕은 복사와 깊은 복사에 대해서는 다음 포스팅에서 알아보고 이 포스팅에서는 ICloneable 구현 미세팁을 공유합니다. ✅ ICloneable.Clone() Return Type Clone()을 그대로 구현하면 아래와 같은 형태가 됩니다. public class Person : ICloneable{ public string Name { get; set..

Windows의 기본 Window UI, 최소화, 최대화, 닫기 버튼을 Custom 디자인으로 변경해서 사용하고자 할 때 WindowsStyle=None 으로 설정하면 상단에 크기 조절 영역이 흰색으로 남아서 보기 좋지 않습니다. 없애야겠죠? ✅ WindowStyle=None 일 때 상단의 StripBar 삭제 xaml 수정으로 간단하게 해결할 수 있습니다. WindowChrome 속성을 사용한 Style을 적용해서 없앨 수 있습니다. 짧은 팁이었습니다. ✅ WindowStyle=None 일 때 상단의 StripBar 삭제 - 끝 관련 포스팅 WPF: Global Style 적용하기 (xaml) 프로젝트 내의 같은 컨트롤에 동일한 Style을 적용하기 위해서 App.xaml에 Style을 정의하면 모든 ..