본문 바로가기

반응형

분류 전체보기

(64)
[MAKE GPT C# 라이브러리] JsonHelper WPF나 C# 프로젝트를 만들다 보면 JSON 직렬화/역직렬화 코드를 정말 자주 쓰게 됩니다.처음에는 그냥 이렇게 씁니다.var json = JsonSerializer.Serialize(model);var model = JsonSerializer.Deserialize(json);그런데 프로젝트가 조금만 커지면 바로 이런 문제가 생깁니다.“enum을 문자열로 저장하고 싶은데?”“null 값은 JSON에 안 나오게 하고 싶은데?”“대소문자 다른 JSON도 받을 수 있어야 하는데?”“IPAddress나 IPEndPoint는 어떻게 직렬화하지?”“매번 JsonSerializerOptions 만들기 귀찮은데?”이럴 때 공통으로 쓰기 좋은 Helper가 바로 JsonHelper입니다.이번 글에서는 System.Te..
[MAKE GPT C# 라이브러리] ImageHelper WPF 프로젝트를 만들다 보면 이미지 데이터를 파일 경로가 아니라 byte 배열로 다뤄야 하는 경우가 꽤 자주 있습니다.예를 들면 이런 상황입니다.DB에 저장된 이미지 byte[]를 화면에 보여줘야 할 때API에서 받은 JPEG 바이너리 데이터를 Image 컨트롤에 바인딩해야 할 때소켓이나 스트림으로 받은 이미지 데이터를 즉시 표시해야 할 때썸네일 이미지를 파일로 저장하지 않고 메모리에서 바로 처리하고 싶을 때이때 WPF의 Image.Source는 보통 BitmapImage나 ImageSource 타입을 사용합니다.그래서 byte[] 데이터를 바로 화면에 보여주려면byte[] → MemoryStream → BitmapImage 변환 과정이 필요합니다.이번 글에서는 이 작업을 간단하게 처리하는 ImageH..
[MAKE GPT C# 라이브러리] EnumHelper [MAKE GPT C# 라이브러리] EnumHelperWPF 프로젝트를 만들다 보면 enum을 단순한 분기 값으로만 쓰기 아까운 순간이 있습니다.예를 들어 CCTV 상태, 알람 상태, 버튼 상태, 장비 상태처럼화면에서 색상까지 같이 표현해야 하는 값들이 있죠.LIVEDEADNOT_USEDNOT_AVAILABLE이런 값을 화면에 보여줄 때마다 switch문으로 색상을 매핑하다 보면 코드가 금방 지저분해집니다.switch (status){ case DeviceStatus.Live: return "#2ECC71"; case DeviceStatus.Dead: return "#E74C3C";}처음에는 별문제 없어 보이는데,상태 값이 늘어나고 여러 화면에서 같은 색상을 써야 하는..
[MT Game] 13. MT게임 앱인토스 출시 - MT, 워크숍, 단체 모임에서 바로 쓰는 레크레이션 게임 앱 [MT Game] 13. MT게임 앱인토스 출시 - MT, 워크숍, 단체 모임에서 바로 쓰는 레크레이션 게임 앱MT나 워크숍을 가면 꼭 이런 순간이 옵니다.“게임 뭐 하지?”“초성퀴즈 문제 누가 준비했어?”“몸으로 말해요 제시어는 어디서 뽑지?”“점수는 누가 적어?”“분위기 띄울 만한 단체 게임 없나?”저도 MT나 모임 게임을 준비하다 보면 항상 이 부분이 제일 귀찮았습니다.게임 자체는 재밌는데,문제 준비하고, 팀 나누고, 점수 적고, 다음 게임으로 넘어가는 과정이 생각보다 번거롭더라고요.그래서 만들었던 MT Game을 이번에 실제로 앱인토스에 출시했습니다.이번 글에서는 코드 설명보다는, 실제 앱을 어떤 상황에서 쓰면 좋은지와MT, 여행, 레크레이션, 행사, 워크숍, 파티, 단체 게임, 모임 게임에서 어..
[MAKE GPT C# 라이브러리] ControlHelper WPF에서 VisualTree 자식 컨트롤 찾기: ControlHelper로 타입과 Name 기준 검색하기WPF로 화면을 만들다 보면 이런 순간이 꼭 온다.“이 UserControl 안에 있는 특정 TextBox를 코드에서 찾아야 하는데?”“템플릿 안에 들어간 Button을 어떻게 가져오지?”“타입만으로 찾고 싶은데, 같은 타입이 여러 개라 Name까지 같이 보고 싶다…”MVVM을 쓰다 보면 코드비하인드를 최대한 줄이는 게 맞지만, 실무에서는 템플릿 내부 컨트롤 접근, 동적 UI 처리, 커스텀 컨트롤 보조 로직 때문에 VisualTree를 직접 탐색해야 하는 경우가 종종 있다.이럴 때 간단하게 만들어두면 꽤 자주 쓰이는 유틸이 바로 ControlHelper다.✅ TL;DR이 글에서는 WPF에서 다음 두 ..
[MAKE GPT C# 라이브러리] InverseBooleanToVisibilityConverter [MAKE GPT C# 라이브러리] InverseBooleanToVisibilityConverterWPF로 화면을 만들다 보면 bool 값에 따라 UI를 보여주거나 숨기는 상황이 정말 자주 나온다.예를 들면 이런 경우다.public bool IsLoading { get; set; }IsLoading이 true일 때는 로딩 화면을 보여주고, false일 때는 실제 콘텐츠를 보여주고 싶다.이럴 때 WPF에는 기본으로 제공되는 BooleanToVisibilityConverter가 있다.이 Converter는 true면 Visible, false면 Collapsed로 바꿔준다.그런데 실무에서는 반대 상황도 꽤 자주 나온다.IsLoading == true → 실제 콘텐츠 숨김IsLoading == false →..
[MT Game] 12. MT 퀴즈 게임 코드리뷰 10편 - 총정리와 개선 포인트 MT Game 12 [MT Game] 12. MT 퀴즈 게임 코드리뷰 10편 - 총정리와 개선 포인트 사이트 주소: https://mtgame.vercel.app/ 이번 글의 목표는 03~11번에서 살펴본 내용을 바탕으로 MT Game 코드의 장점과 앞으로 개선하면 좋은 지점을 정리합니다. MT Game 코드리뷰 시리즈 바로가기번호글 제목주요 내용03[MT Game] 03. MT 퀴즈 게임 코드리뷰 1편 - 프로젝트 전체 구조 뜯어보기프로젝트 폴더 구조와 전체 흐름04[MT Game] 04. MT 퀴즈 게임 코드리뷰 2편 - app/page.tsx 상태관리와 모드 전환메인 페이지 상태관리와 화면 전환05[MT Game] 05. MT 퀴즈 게임 코드리뷰 3편 - 데이터 모델 이해하기퀴즈, 제비뽑기,..
[MT Game] 11. MT 퀴즈 게임 코드리뷰 9편 - 점수 카운팅 MT Game 11 [MT Game] 11. MT 퀴즈 게임 코드리뷰 9편 - 점수 카운팅 사이트 주소: https://mtgame.vercel.app/ 이번 글의 목표는 ScoreCounter가 팀을 추가하고 점수를 더하거나 빼며, 실시간 순위를 계산하는 방식을 정리합니다. MT Game 코드리뷰 시리즈 바로가기번호글 제목주요 내용03[MT Game] 03. MT 퀴즈 게임 코드리뷰 1편 - 프로젝트 전체 구조 뜯어보기프로젝트 폴더 구조와 전체 흐름04[MT Game] 04. MT 퀴즈 게임 코드리뷰 2편 - app/page.tsx 상태관리와 모드 전환메인 페이지 상태관리와 화면 전환05[MT Game] 05. MT 퀴즈 게임 코드리뷰 3편 - 데이터 모델 이해하기퀴즈, 제비뽑기, 점수판 타입 ..

반응형