Programming 321

C#/ 어셈블리(Assembly) 사용

# 어셈블리(Assembly) .NET Framework 또는 .NET Core와 같은 Microsoft의 관리 코드 환경에서 사용되는 단위 컴파일된 코드 패키지입니다. 어셈블리는 하나 이상의 클래스, 인터페이스, 구조체, 열거형 및 리소스와 같은 코드와 관련된 메타데이터를 포함하고 있습니다. 어셈블리는 .NET 애플리케이션의 기본 빌딩 블록 중 하나로서 다음과 같은 주요 특징을 가지고 있습니다: 1. **단위 컴파일**: C# 코드는 컴파일되어 어셈블리로 패키징됩니다. 이러한 어셈블리는 컴파일된 IL(Intermediate Language) 코드와 메타데이터로 이루어져 있습니다. 2. **버전 관리**: 어셈블리에는 버전 번호가 있으며, 이를 통해 다른 어셈블리들과의 호환성을 관리할 수 있습니다. 새로..

C#/ KeyDown 이벤트 핸들러

키보드 키를 사용하여 프로그래밍 제어를 위해 KeyDown에 이벤트 핸들러를 설정해서 사용하고자 할 때, Control 의 ProcessCmdKey 를 오버라이딩 하면 이벤트를 다룰 수 있다. 예시: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Shift | Keys.C)) // Shift + C { btnPayment.PerformClick(); } else if (keyData == (Keys.Control | Keys.Enter)) // Ctrl+Enter { btnPrintDirect.PerformClick(); } else if (keyData == (Keys.Shift | K..

C#/ namsespace(네임스페이스)

# 네임스페이스(Namespace) C# 프로그래밍 언어에서 사용되는 개념으로, 코드를 구조화하고 그룹화하는 데 사용됩니다. 네임스페이스는 코드의 모듈화 및 이름 충돌을 방지하는 데 도움이 되며, 다음과 같은 몇 가지 중요한 특징이 있습니다: 1. **그룹화 및 구조화**: 네임스페이스를 사용하면 클래스, 인터페이스, 열거형 및 함수와 같은 프로그램 요소를 그룹화하고 조직화할 수 있습니다. 이를 통해 코드 기반의 모듈화와 계층 구조를 작성할 수 있습니다. 2. **이름 공간의 격리**: 네임스페이스는 코드 요소의 이름을 격리하여 이름 충돌을 방지합니다. 예를 들어, 동일한 이름의 클래스나 함수가 서로 다른 네임스페이스 내에 있으면, 충돌하지 않고 동시에 사용할 수 있습니다. 3. **.NET 클래스 라이..

C#/ 이벤트 핸들러 함수(Event Handler)

# 이벤트 핸들러 함수 어떤 이벤트가 발생했을 때 실행되는 함수입니다. 이벤트 핸들러 함수는 해당 이벤트에 대한 응답 또는 처리를 정의합니다. 아래는 이벤트 핸들러 함수의 간단한 설명입니다: 1. **이벤트 발생 및 등록**: 프로그램에서 발생하는 이벤트 (예: 버튼 클릭, 키 입력, 마우스 움직임)에 대한 응답을 처리하려면 해당 이벤트에 대한 이벤트 핸들러 함수를 등록해야 합니다. 2. **이벤트 핸들러 함수의 형식**: 이벤트 핸들러 함수는 특정 형식을 따릅니다. 일반적으로 함수는 이벤트의 이름과 함께 특정 매개변수를 받습니다. 이 매개변수에는 이벤트를 발생시킨 개체를 나타내는 "sender"와 이벤트에 대한 정보를 포함하는 "이벤트 아큐먼트 (Event Argument)"가 포함됩니다. 3. **이..

C#/ partial 클래스

# 부분 클래스 (Partial Class): - "부분 클래스"는 클래스를 두 개 이상의 .cs 파일에 나눠 정의할 수 있는 기능입니다. - 부분 클래스는 모든 파일에서 같은 클래스 이름을 사용하여 정의되어야 합니다. 이러한 파일은 각각 부분 클래스의 일부분을 정의합니다. - 주로 대규모 프로젝트 또는 코드 생성 도구에서 사용되며, 여러 사람이 동시에 작업하는 경우 유용합니다. - 주요 클래스 정의를 나눠 여러 파일에 나눠 작성하고, 다른 파일에 확장 메서드 또는 추가 기능을 정의할 때 사용됩니다. 예제: // File 1: MyClass.Part1.cs public partial class MyClass { private int field1; } // File 2: MyClass.Part2.cs pu..

파이썬(python)/ 테서랙트(tesseract) 사용

# 테서랙트(Tesseract) 광학 문자 인식(OCR, Optical Character Recognition) 엔진으로, 이미지나 스캔된 문서에서 텍스트를 추출하는 데 사용됩니다. 테서랙트는 무료 오픈 소스 소프트웨어로, Google이 개발하고 관리하고 있습니다. 이 OCR 엔진은 여러 언어를 지원하며, 높은 정확도로 텍스트를 추출할 수 있습니다. 1. **다양한 언어 지원**: 테서랙트는 다양한 언어에 대한 문자 인식을 지원합니다. 이를 통해 다국어 문서나 다국어 텍스트를 처리할 수 있습니다. 2. **높은 정확도**: 테서랙트는 많은 양의 훈련 데이터와 머신 러닝 알고리즘을 사용하여 높은 정확도로 텍스트를 추출합니다. 3. **텍스트 형식 지원**: 이미지, PDF, 스캔된 문서 등 다양한 형식의 ..

C#/ 델리게이트와 이벤트(delegate, event)

**델리게이트 (Delegate)**: 1. **개념**: - 델리게이트는 메서드를 참조할 수 있는 형식으로, 메서드를 변수처럼 저장하고 전달할 수 있도록 해줍니다. - 델리게이트는 대리자 역할을 하며, 다른 메서드를 호출하거나 이벤트 처리를 위해 사용됩니다. 2. **사용 예**: - 델리게이트는 일반적으로 콜백 메서드, 이벤트 핸들러 등을 저장하고 호출하는 데 사용됩니다. - 다른 객체에 대한 참조를 저장하고 해당 객체의 메서드를 호출할 수 있습니다. 3. **예시**: // 델리게이트 정의 delegate void MyDelegate(string message); // 델리게이트 인스턴스 생성 MyDelegate myDelegate = Console.WriteLine; // 델리게이트를 사용하여 메..

암호화(Encryption)

# 해시 암호화와 AES(Advanced Encryption Standard) 암호화 1. **용도**: - **해시 암호화**: 주로 데이터 무결성 검증을 위해 사용됩니다. 동일한 입력에 대해 항상 동일한 고정 길이 해시 값을 생성하며, 주로 비밀번호 저장, 데이터 무결성 확인 등에 사용됩니다. - **AES 암호화**: 데이터의 기밀성을 유지하기 위해 사용됩니다. 데이터를 암호화하면 오직 허가받은 사용자만 해당 데이터를 볼 수 있으며, 주로 데이터 보호에 사용됩니다. 2. **출력**: - **해시 암호화**: 항상 동일한 입력에 대해 동일한 해시 값이 생성됩니다. 즉, 해싱은 일반적으로 단방향 암호화입니다. 원래 데이터를 복원할 수 없습니다. - **AES 암호화**: 입력 데이터가 암호화되어 암호..

Programming/etc 2023.10.10