반응형 전체 글111 3 아이고, 통신 문제로 제 설명이 중간에 끊겨버렸군요! 현장에서 장비 통신(Heartbeat)이 끊긴 것처럼 아찔했습니다. 흐름이 끊기지 않도록, 질문하셨던 Program.cs 통합 아키텍처에 대한 완벽한 전체 답변을 다시 전수해 드리겠습니다.질문하신 "여기에 적용하는 게 맞는 건가?"에 대한 시니어의 대답은 "네! 아주 정확하게 찾아오셨습니다."입니다.보여주신 Program.cs 파일이 바로 우리 비전 프레임워크(OmniSight)의 모든 인프라스트럭처가 결집하는 최상위 관문(Bootstrapper)입니다. 앞서 우리가 공들여 만든 인프라들이 이 Main 메서드 안에서 정확한 의존성 순서(Dependency Order)에 맞춰 조립되어야 비로소 24시간 멈추지 않는 FA 장비의 소프트웨어가 완성됩니다.끊.. 2026. 8. 23. 2 하하, 정곡을 찌르셨습니다. 걱정 마십시오!세팅 화면이나 파라미터(Recipe) 설정 화면에 들어가는 수십 개의 텍스트박스(TextBox), 콤보박스(ComboBox), 체크박스(CheckBox)를 전부 코드로 치고 있다면 그건 아키텍처가 아니라 '노가다'입니다.시니어로서 명확한 'UI 설계의 황금률(Golden Rule)'을 정해 드리겠습니다.코드로 짜는 영역 (Framework & Dynamic UI): MainForm의 전체 뼈대(비율), 17개의 탭 메뉴(Header), 실시간으로 개수가 변하는 검사 이력 그리드, 초당 수십 번 그려지는 비전 영상 뷰어. (유지보수와 렌더링 성능이 극도로 중요하기 때문입니다.)디자이너로 그리는 영역 (Static & Parameter UI): 모델 설정, 카메라 .. 2026. 8. 21. 1 Step 2: 심층 아키텍처 및 엣지 케이스 검증 (Code Breakdown & Risk Audit)단순히 폼을 분할하는 것을 넘어, 현장에서 발생할 수 있는 UI 크래시와 렌더링 병목을 사전에 차단하는 방어막입니다.컨트롤 과부하 및 GDI+ 화면 껌뻑임(Flickering) 방어:의심 시나리오: 검사 이력 그리드에 데이터가 1초에 10번씩 추가되고, 상/하단 카메라 영상 2개가 20fps로 업데이트됩니다. 일반적인 WinForms TableLayoutPanel은 자식 컨트롤이 갱신될 때마다 전체 레이아웃을 다시 계산하며 화면이 미친 듯이 껌뻑거립니다.방어 분석: CreateTableLayoutPanel 메서드 내부의 Reflection(리플렉션) 기법이 핵심입니다. Microsoft는 TableLay.. 2026. 8. 21. 1. 중복실행 방지. FA 장비 소프트웨어에서 중복 실행 방지는 단순한 편의 기능이 아니라 '필수 안전장치(Safety Interlock)'입니다.카메라 프레임 그래버(Frame Grabber)나 PLC 통신 포트(COM/Socket)는 기본적으로 독점(Exclusive) 연결을 요구합니다. 만약 작업자가 실수로 아이콘을 두 번 눌러 프로그램이 두 개 켜지면, 두 프로세스가 하나의 하드웨어에 동시에 접근하려다 장비가 뻗거나 블루스크린이 발생할 수 있습니다..NET Framework 환경에서 이를 OS 레벨에서 완벽하게 차단하는 가장 확실한 방법인 Mutex (Mutual Exclusion, 상호 배제) 객체를 활용하여 Program.cs를 업데이트해 보겠습니다. Step 1: 현업용 코드 (The Solution)프로젝트 루.. 2026. 5. 25. 1. 머신비전이란? 시스템 구성 요소, 4대 기능, 그리고 최신 AI 기술 동향 총정리 머신비전(Machine Vision)은 단순히 사진을 찍는 기술이 아닙니다. 산업용 카메라, 광학계, 조명, 그리고 소프트웨어 알고리즘을 통합하여 "이미지 데이터를 기반으로 자동화된 판단을 내리는 시스템"을 의미합니다.컴퓨터 비전(Computer Vision)이 일반적인 이미지 처리와 이해에 집중한다면, 머신비전은 가혹한 공장 환경에서의 신뢰성, 정밀도, 그리고 실시간성(Real-time)에 초점을 맞춘 공학의 집약체입니다.1. 머신비전 시스템의 5대 핵심 요소성공적인 머신비전 시스템은 하드웨어와 소프트웨어의 완벽한 조화로 이루어집니다.① 광학계 및 조명 (Optics & Lighting)비전 시스템에서 가장 중요한 단계는 '좋은 이미지'를 획득하는 것입니다.조명: 검사 대상의 재질과 형태에 따라 반사,.. 2026. 5. 12. winform - DataGridView나 ListView 같은 컨트롤에 데이터가 많거나 갱신이 잦을 때 화면이 번쩍거리는 것을 막아주는 핵심 코드, 더블버퍼링 네, 이 코드는 Windows Forms 개발에서 화면 깜빡임(Flickering) 현상을 해결하기 위해 매우 중요하고 실용적인 역할을 합니다.특히 DataGridView나 ListView 같은 컨트롤에 데이터가 많거나 갱신이 잦을 때 화면이 번쩍거리는 것을 막아주는 핵심 코드입니다.상세한 분석은 다음과 같습니다.1. 역할: 더블 버퍼링(Double Buffering) 강제 활성화이 코드는 특정 컨트롤(Control)의 DoubleBuffered 속성을 true로 설정하는 확장 메서드입니다.더블 버퍼링이란? 화면에 그림을 그릴 때, 1) 화면에 직접 그리는 방식(싱글 버퍼) 대신, 2) 메모리(백그라운드 버퍼)에 먼저 그림을 완성한 뒤, 화면에 한 번에 복사하는 방식입니다.싱글 버퍼: 그리는 과정이 눈에.. 2026. 1. 23. visual studio 2019 sn 만료 재설치 후에도 프로페셔널 제품 키 등록은 당연히 가능합니다. 하지만 재설치에 관해 두 가지 중요한 사실을 미리 알고 계시는 것이 좋습니다.1. 재설치해도 "기간 만료"는 바로 뜰 수 있습니다Visual Studio의 라이선스 정보는 프로그램 폴더가 아닌 레지스트리와 시스템 깊숙한 곳에 저장됩니다. 따라서 단순히 프로그램을 지웠다 다시 깔더라도 "평가 기간이 만료되었습니다"라는 창이 바로 뜰 가능성이 매우 높습니다. (재설치 시간만 낭비하실 수 있습니다.)2. 바로 종료되지 않습니다 (안심하세요)기간이 만료되었다고 해서 프로그램이 즉시 강제 종료되거나 켜지지도 않는 것은 아닙니다.만료 알림창이 뜨면서 편집 화면으로 진입을 막을 뿐입니다.이 알림창에는 반드시 [제품 키로 잠금 해제(Unlock with a .. 2026. 1. 21. [C# WinForms] 시스템 설정 저장 시 '변경 이력(Change Log)' 자동 기록 및 Restore 패턴 구현하기 1. 핵심 설계 포인트Audit Trail (감사 추적): 설정을 저장할 때 단순히 덮어쓰지 않고, "어떤 항목이 [기존 값]에서 [새로운 값]으로 바뀌었는지" 로그를 남겨 트러블 슈팅을 용이하게 합니다.DRY (Don't Repeat Yourself): UI 컨트롤에 값을 채워 넣는 코드를 SetControlsFromConfig 함수 하나로 통합하여, Form_Load와 Restore 버튼에서 재사용합니다.UX (사용자 경험): 중요한 변경이나 복원 전에는 반드시 MessageBox로 재확인을 거칩니다.2. 전체 소스 코드C# using System;using System.Collections.Generic;using System.IO;using System.Windows.Forms;using A2_S.. 2026. 1. 8. 네트워크 경로 접근성 해결을 위한 '탐색기 스타일' 다이얼로그 도입 [UI/UX 개선] 네트워크 경로 접근성 해결을 위한 '탐색기 스타일' 다이얼로그 도입도입 이유 3가지 요약1. 네트워크(UNC) 경로 접근성 한계 극복기존 (FolderBrowserDialog): 트리(Tree) 구조로 되어 있어, \\192.168.10.5 같은 네트워크 경로를 찾아가려면 '네트워크' 아이콘부터 수동으로 클릭해 들어가야 하며 속도가 매우 느립니다.변경 (CommonOpenFileDialog): 윈도우 탐색기와 동일한 주소창이 있어, 네트워크 경로를 복사/붙여넣기 하여 즉시 이동할 수 있습니다.2. 사용자 경험(UX) 표준화기존: 윈도우 XP 시절의 구형 UI로 인해 오퍼레이터가 이질감을 느낍니다.변경: 사용자가 평소 쓰던 '파일 열기' 창과 동일한 UI를 제공하므로, '즐겨찾기', '.. 2026. 1. 8. .NET Framework 4.8 vs 4.8.1: 머신비전 현장에서 4.8을 선택해야 하는 이유 결론부터 말씀드리면, FA(공장 자동화) 및 머신비전 현장에서는 .NET Framework 4.8이 "국룰(표준)"이며 훨씬 안전합니다..NET Framework 4.8.1은 4.8의 "옆그레이드" 버전으로, 특정 목적(ARM64, 고해상도 UI)이 없다면 호환성 문제만 일으킬 뿐 굳이 사용할 이유가 없습니다.두 버전의 핵심 차이를 현업 관점에서 정리해 드립니다.1. 한 눈에 보는 비교표비교 항목.NET Framework 4.8 (추천).NET Framework 4.8.1출시 년도2019년2022년핵심 목적최대 호환성 및 안정성ARM64 지원 및 Windows 11 최적화운영체제 지원Windows 7 SP1 이상 ~ Windows 11Windows 10 20H2 이상, Windows 11설치 편의성Win.. 2026. 1. 8. 이전 1 2 3 4 ··· 12 다음 반응형