분류 전체보기
인생의 목표
1. 상황: - 현재 저축 금액은 230만원입니다. 2. 목표: - 1차 목표: 2024년 6월까지 저축 금액 300만원 달성하자! - 2차 목표: 2024년 6월까지 크몽에서 프로그램 판매 성공으로 월 30만원 매출 달성하자!! - 3차 목표: 2026년 2월 2일까지 1억을 모으자!!! - 4차 목표: 2027년 12월 31일까지 7억 아파트(구축 or 신축)를 매매하자!!!! - 5차 목표: 배당금 500만원 받을 수 있는 시스템을 만들자!!!!! - 마지막 목표: 일 안하고 자산이 늘어나는 사람이 되자!!!!!! 월급으로 만족하지 말고 추가적인 소득을 만들 수 있도록 최선을 다하자!!

[C#] - async/await 사용
저는 프로젝트를 진행하면서 Thread 클래스를 활용하여 필요할 때마다 스레드를 생성하여 사용하였습니다. 하지만 C# 프로그래밍에서 이미 존재하는 ThreadPool에서 사용 가능한 작업 쓰레드를 할당받아 사용하는 것이 권장하는 방식임을 알게 되었습니다. ThreadPool의 작업 쓰레드를 활용한 방식 Task Task BackgroundWorker ThreadPool 클래스 비동기 델리게이트(Async Delegate) 저는 WPF에서 async/await를 활용하는 간단한 코드를 작성하였습니다. 과연 Console.WriteLine() 부분은 어떤 순서대로 콘솔에 표시될까요? public partial class MainWindow : Window { public MainWindow() { Initi..

[C#] - 레지스트리의 사용
안녕하세요! 오늘은 프로그램에서 윈도우 레지스트리를 사용하는 방법을 정리해보았습니다. 프로그램이 실행될 때, 레지스트리에 저장된 데이터를 불러와서 기존의 환경을 유지할 수 있습니다. 저는 보통 프로그램 설정창에 데이터를 저장하는데 레지스트리를 사용하는 편입니다. 레지스트리란 윈도우 계열 시스템 구성 정보를 저장한 데이터 베이스를 의미합니다. 레지스트리는 Key, Value로 이루어져 있습니다. 아래 그림의 5가지 항목을 하이브라고 합니다. 전 응용 프로그램이 가지는 데이터를 보관하기 위해 [HKEY_CURRENT_USER\SOFTWARE\프로그램이름] 을 Key로 하여 접근 후 Name, Value를 등록하여 데이터를 저장합니다. 이제 레지스트리를 사용하는 방식을 정리하겠습니다. 레지스트리의 사용 클래스..

[WPF] - 리소스 적용하기
오늘은 리소스를 적용하는 방법에 대해서 정리하였습니다. 목적: 리소스 경로는 Resource/Strings.en-US.resx 파일을 적용 MainWindow가 로드되기 전에 리소스를 변경을 적용 리소스 추가 프로젝트 -> 새항목 -> 리소스 파일(Strings.resx) 을 통해 파일을 생성합니다. Strings.resx 파일은 생성되면 Strings.Designer.cs 파일이 자동으로 생성되고 리소스 정보가 기록됩니다. 1. Strings.en-US 2. Strings.ko-KR 위 2개의 파일을 추가하고 Strings.resx의 이름과 똑같이하고 값을 각각의 언어로 설정합니다. 액세스 한정자가 존재하는데 WpfApp1 프로젝트 내부에서 사용했으므로 Internal이 가능합니다. App.xaml S..

[WPF] - INotifyPropertyChanged를 이용한 Binding 방법
클래스 내부의 Property가 변경 되었을 때, 메인 컨트롤에 표시 될 수 있게 하는 바인딩 방법을 정리하였습니다. 순서대로 하나씩 정리해보겠습니다! 제가 테스트한 구조는 아래와 같습니다.(쉬운 이해를 위해 아래와 같이 구성하였습니다.) 1. MainWindow.xaml : 컨트롤을 생성하고 값을 표시하는 곳 2. MainWindow.xaml.cs : 버튼을 눌렀을 때, TestInfo 클래스 내부의 Property 값을 변경 3. Data.cs : Singleton 패턴이 적용된 Data 클래스 4. TestInfo.cs: Data 클래스를 통해 접근이 가능한 클래스, 이 클래스 내부에 Property가 들어있다. MainWindow.xaml Value 변경 Value변경 버튼을 누르면 TEST1, ..

[WPF] - Border
Xaml을 디자인 하기위해 Border 클래스 사용 방법을 정리하였습니다. 우선 Border 클래스는 System.Windows.Controls에 포함되어 있습니다. 간단하게 사용방법을 알아보겠습니다. 1. XAML로 컨트롤 구성 📌 XAML Label1 Label2 우선 을 사용하게 되면 컨트롤들을 수평 or 수직으로 쌓을 수 있게 됩니다. 기본적으로 수직으로 쌓이고 수평으로 쌓고 싶으면 Orientation ="Horizontal"로 선언하면 됩니다. WPF 컨트롤들은 계층 구조로 쌓이기 때문에 StackPanel 내부에 2개의 Border 컨트롤을 배치하기 위해 내부에 넣은 것을 볼 수 있습니다. 내부에는 다양한 속성들이 있고 위에서 사용한 속성들만 표로 정리했습니다. Background 컨트롤의 ..

[WPF] - Style, ControlTemplate
WPF에서 사용되는 ComboBox는 Background 속성이 설정되지 않습니다. 그래서 ComboBox를 디자인하는 방법을 알기 위해서는 Style, ControlTemplate의 적용이 필수라는 것을 알게 되었습니다. Style, ControlTempate에 대한 사용법과 이 2가지를 조합하여 ComboBox를 만드는 법을 설명하겠습니다. Style의 사용

[WPF] - ResourceDictionary 사용
오늘은 메인 프로그램에 직접 만든 xaml 파일을 적용하는 방법을 정리하였습니다. ResourceDictionary 사용 📌직접 생성 [프로젝트 -> 새 항목] 에서 리소스 사전을 선택하고 xaml 파일을 생성한다. (전 MS의 ExpressionDark.xaml로 했습니다.) 그러면 아래와 같은 Xaml이 만들어 집니다. 📌파일 가져오기 ExpressionDark.xaml는 MS에 지원하는 WPF 테마 입니다. https://github.com/StanislawSwierc/WpfThemesCollection/blob/master/Themes/ExpressionDark.xaml GitHub - StanislawSwierc/WpfThemesCollection: Collection of WPF Themes ..

[WPF] - 프로젝트 생성 및 시작
WPF 프로젝트를 만들면서 처음에 알아두면 좋은 내용을 정리하였습니다. 1. 프로젝트 생성 1) 새 프로젝트를 만듭니다. 2) 프로젝트 이름 및 경로 등을 설정합니다. 3) 프로젝트가 생성되면 xaml, xaml.cs가 생성되는 것을 볼 수 있습니다. 솔루션: WpfApp2 프로젝트: WpfApp2(보통 솔루션 이름과 같음) Properties : 프로젝트의 속성 참조 : 기본적으로 사용되는 namespace다 App.config : App의 버전이 기록되어 있다. App : 프로그램의 진입점이다. StartupUri가 MainWindow.xaml로 되어있다. xaml, 코드로 이루어져 있다. MainWindow: 실행되는 메인 프로그램이다. xaml, 코드로 이루어져 있다. 4) MainWindow 📌..
[WPF] - 시작
계기 회사에 입사하고 나서 WPF라는 윈도우 애플리케이션 개발 기술에 대해서 알게 되었습니다. 디자인과 프로그램 로직이 분리되어 있어서 코드를 수정하는데 용이했고 XAML을 사용하여 디자인 할 수 있으며 편리하게 컨트롤들을 다룰 수 있었습니다. WPF 파트에서는 다음과 같이 글을 정리할 예정입니다. 컨트롤의 생성 디자인, 프로그램 로직의 연결 다양한 테스트 예제 유용한 기술 처음 시작할 때 WPF 자체를 이해하기 힘들었기 때문에 천천히 내용을 정리하면서 이해시킬 수 있도록 노력하겠습니다 ㅎㅎ