2026/03(33)
-
[WPF 실무 32편] WPF Messenger 패턴 (ViewModel 간 통신 완전 정리)
MVVM 구조에서 가장 많이 막히는 부분 중 하나는 ViewModel 간 데이터 전달입니다.예를 들어A 화면 → B 화면 데이터 전달Dialog 결과 전달전역 이벤트 처리이럴 때 사용하는 것이 바로Messenger 패턴 (CommunityToolkit.Mvvm) 입니다.1. 왜 Messenger가 필요한가?MVVM에서는 ViewModel끼리 직접 참조하면 안 됨문제결합도 증가테스트 어려움구조 깨짐 그래서 중간 전달자 필요2. Messenger 개념Sender → Message → Receiver✔ 메시지를 보내고✔ 필요한 ViewModel만 받는다3. Toolkit Messenger 사용 준비using CommunityToolkit.Mvvm.Messaging;4. 메시지 클래스 정의public class..
2026.03.24 -
[WPF 실무 31편] ObservableProperty / RelayCommand 자동화 심화 (Toolkit 고급 기능 완전 정리)
30편에서 CommunityToolkit.Mvvm의 기본 사용법을 배웠습니다.이번 편에서는 실무에서 자주 쓰는 고급 기능을 다룹니다.✔ ObservableProperty 연동 처리 ✔ NotifyPropertyChangedFor 사용법 ✔ NotifyCanExecuteChangedFor 사용법 ✔ RelayCommand 파라미터 전달 ✔ 비동기 Command (AsyncRelayCommand) 를 정리합니다.1. ObservableProperty 복습30편에서 배운 기본 구조입니다.public partial class MainViewModel : ObservableObject{ [ObservableProperty] private string name;}✔ Name 프로퍼티 자동 생성 ✔ Pr..
2026.03.23 -
[WPF 실무 30편] WPF MVVM Toolkit 사용법 (CommunityToolkit.Mvvm으로 코드 줄이기)
MVVM 패턴을 적용하다 보면 반복되는 코드가 많습니다.INotifyPropertyChanged, RelayCommand, PropertyChanged 호출...이걸 전부 자동으로 처리해주는 것이 바로CommunityToolkit.Mvvm (MVVM Toolkit) 입니다.이번 글에서는✔ MVVM Toolkit 개념✔ 설치 방법✔ ObservableProperty 사용법✔ RelayCommand 자동 생성✔ 기존 MVVM 코드와 차이를 실무 기준으로 정리합니다.1. MVVM Toolkit이란?MVVM Toolkit은 Microsoft에서 제공하는 라이브러리로 MVVM 코드를 자동으로 생성해주는 도구입니다.즉✔ 코드량 감소✔ 유지보수 쉬움✔ 실수 감소2. 설치 방법NuGet에서 설치CommunityTool..
2026.03.23 -
[WPF 실무 29편] WPF Validation (입력 검증 + ValidationRule 사용법 완전 정리)
사용자가 잘못된 값을 입력했을 때UI에서 바로 피드백을 주는 것은 매우 중요한 UX 요소입니다.WPF에서는 Validation 시스템을 통해 바인딩 단계에서 입력 값을 검증할 수 있습니다.이번 글에서는✔ Validation 구조✔ ValidationRule 사용법✔ ErrorTemplate 적용✔ MVVM 방식 검증을 실무 기준으로 정리합니다.1. WPF Validation 구조WPF Validation은 Binding 과정에서 동작합니다.입력 → Binding → Validation → ViewModel✔ 잘못된 값이면 Binding 중단✔ UI에 오류 표시2. ValidationRule 기본 구현public class NumberValidationRule : ValidationRule{ publ..
2026.03.23 -
[리눅스 프로그래밍 시리즈 23편] 공유 메모리 & 메시지 큐: 고급 IPC(프로세스 간 통신) 완전 이해
목표: 공유 메모리와 메시지 큐의 개념과 사용법을 이해한다 결과: 프로세스 간 빠르고 안전하게 데이터를 주고받을 수 있다1. IPC의 진짜 핵심 단계18편에서 pipe를 배웠다.하지만 pipe는 한계가 있다.단방향 통신부모/자식 관계 필요그래서 더 강력한 IPC가 필요하다.공유 메모리 (Shared Memory)메시지 큐 (Message Queue)2. 공유 메모리란?여러 프로세스가 같은 메모리 영역을 공유하는 방식.구조:프로세스 A │ ├── 공유 메모리 ──┤ │프로세스 B장점:매우 빠름 (메모리 직접 접근)대용량 데이터 처리 가능3. 공유 메모리 생성 (shmget)#include #include int shmid = shmget(IPC_PRIVATE, 1024, IPC_..
2026.03.23 -
[리눅스 프로그래밍 시리즈 22편] signal 처리 완전 이해: SIGINT, SIGTERM, SIGCHLD로 프로세스 제어하기
목표: 리눅스 시그널의 개념과 처리 방법을 이해한다 결과: 프로그램에서 인터럽트/종료/자식 종료를 안전하게 처리할 수 있다1. 시그널(signal)이란?시그널은 프로세스에게 보내는 비동기 이벤트 알림이다.예:Ctrl + C → SIGINTkill 명령 → SIGTERM / SIGKILL자식 종료 → SIGCHLD즉 OS가 프로세스에게 "이런 일이 발생했다"고 알려주는 방식이다.2. 주요 시그널 종류시그널의미SIGINT인터럽트 (Ctrl+C)SIGTERM정상 종료 요청SIGKILL강제 종료 (무시 불가)SIGCHLD자식 프로세스 종료SIGSEGV잘못된 메모리 접근3. 기본 동작(Default Action)각 시그널은 기본 동작이 있다.종료무시코어 덤프예:SIGINT → 프로그램 종료4. signal 함수로..
2026.03.20