분류 전체보기 149

C# 동적으로 메서드 호출하기: Reflection과 Type 활용

Reflection 기본 설명 및 구조 종종 메서드의 이름이나 구조가 변경될 수 있는 환경에서 동적으로 메서드를 호출해야 때가 있습니다. Reflection 은 프로그램이 실행 중에 자신의 구조를 검사하고 조작할 수 있는 기능을 제공하는데 예를 들어 특정 유형의 멤버를 찾거나 인스턴스를 동적으로 생성하는 데 사용될 수 있습니다. Reflection 기능을 사용할 필요가 없는 경우는 다음과 같이 일반 객체를 생성해서 사용합니다. BS2Event instance = new BS2Event(); object value = instance.FieldName; 리플렉션을 사용하는 경우는 다음과 같이 사용합니다. Type structureType = typeof(BS2Event); FieldInfo field = ..

C# 2023.12.28

Binary(이진 파일)의 장점 및 사용

Binary 컴퓨터 프로그래밍에서 데이터를 저장하고 전송하는 방식 중 하나인 이진 파일은 많은 이점을 제공합니다. 이 글에서는 이진 파일의 개념, 사용 이유, 장점, 그리고 어떻게 사용되는지에 대해 알아보겠습니다. 1. 이진 파일이란? 이진 파일은 0과 1로 이루어진 이진 데이터를 담고 있는 파일 형식입니다. 이는 텍스트 파일과는 대조적으로 텍스트 형식이 아닌 이진 데이터로 구성되어 있습니다. 2. 사용 이유와 장점 2.1 효율성 이진 파일은 텍스트 파일에 비해 더 적은 공간을 차지하며, 이는 데이터를 더 작은 크기로 저장하고 빠른 입출력을 가능하게 합니다. 특히 대용량 데이터를 다룰 때 효과적입니다. 2.2 속도 이진 파일을 사용하면 데이터 직렬화와 역직렬화 과정에서 생기는 오버헤드가 적습니다. 이는 ..

C# 2023.12.19

ASP.NET Core 서비스 라이프타임 종류 및 특징

ASP.NET Core에서 서비스 라이프타임은 서비스가 생성되고 사용되는 시간 동안의 범위를 나타냅니다. 서비스 라이프타임은 서비스의 인스턴스가 어떻게 관리되고 언제 생성되고 소멸되는지를 결정합니다. ASP.NET Core는 주로 세 가지 라이프타임을 제공합니다: Singleton, Scoped, 그리고 Transient. 1. Singleton 라이프타임 특징: 애플리케이션 전체에서 하나의 인스턴스를 공유합니다. 애플리케이션이 시작될 때 생성되고 종료될 때까지 유지됩니다. 활용 예시: 애플리케이션 설정, 캐싱, 로깅 등과 같이 공유 자원을 관리할 때 사용됩니다. 예시 코드: builder.Services.AddSingleton(); builder.Services.AddSingleton(); 2. Sco..

C# 2023.12.14

Interop 라이브러리

Interop Interop.xxx.dll 파일들은 COM(Components Object Model) 형식의 라이브러리를 .NET 환경에서 사용하기 위한 인터오퍼 라이브러리이다. COM은 플랫폼 간 상호 운용성을 지원하기 위한 마이크로소프트의 기술로, 여러 언어와 환경에서 사용할 수 있는 컴포넌트 기반의 소프트웨어 개발 모델이다. COM 컴포넌트와 .NET 언어 간의 통신 지원 : COM은 C++ 등의 언어로 작성된 컴포넌트를 .NET 언어에서 사용할 수 있게 해주는 인터페이스를 제공한다. Interop 라이브러리는 이러한 인터페이스를 .NET 에서 호출할 수 있도록 *래핑 하고 변환한다. *타입 라이브러리(Typelib)에서 정보 추출 : COM 컴포넌트들은 타입 라이브러리에 정보를 저장하고, Int..

C# 2023.12.12

C# 라이브러리 만들기

흔히 DLL 파일이라고 불리기도 하는 라이브러리는 재사용 가능한 범용 모듈을 말합니다. 특별한 기능을 하는 프로그램을 만들고 이를 공용으로 쓸 수 있게, 재사용 가능하게 만드는 이 라이브러리를 만드는 방법과 그 라이브러리를 어떻게 사용할 수 있는지에 대해 알아보겠습니다. 1. 프로젝트 만들기 [클래스 라이브러리. NET]을 선택하여 새로운 프로젝트를 생성합니다. 2. 라이브러리로 만들 코드 작성 namespace MyDLL { public class MyCal { public double Add(double a, double b) { return a + b; } public double Subtract(double a, double b) { return a - b; } public double Multi..

C# 2023.11.28

C# Delegate , 제네릭(Generic)

C# Delegate에 대한 소개 C#에서 Delegate(델리게이트)는 메서드에 대한 참조를 나타내는 형식입니다. 이는 다른 언어에서의 함수 포인터와 유사한 역할을 합니다. Delegate를 사용하면 메서드를 변수에 할당하고 다른 메서드로 전달하거나, 이벤트 처리, 콜백 등의 기능을 쉽게 구현할 수 있습니다. Delegate의 선언과 사용 // 델리게이트 선언 delegate void MyDelegate(string message); class Program { static void Main() { // 델리게이트 인스턴스 생성 MyDelegate myDelegate = new MyDelegate(DisplayMessage); // 델리게이트를 통한 메서드 호출 myDelegate("Hello, Del..

C# 2023.11.27

C# 데이터 형식 (정수형, 실수형, 문자형, 부울린형)

정수형 (Integer Types): sbyte: 8비트 부호 있는 정수, 범위: -128 ~ 127 byte: 8비트 부호 없는 정수, 범위: 0 ~ 255 short: 16비트 부호 있는 정수, 범위: -32,768 ~ 32,767 ushort: 16비트 부호 없는 정수, 범위: 0 ~ 65,535 int: 32비트 부호 있는 정수, 범위: -2,147,483,648 ~ 2,147,483,647 uint: 32비트 부호 없는 정수, 범위: 0 ~ 4,294,967,295 long: 64비트 부호 있는 정수, 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ulong: 64비트 부호 없는 정수, 범위: 0 ~ 18,446,744,073,709,5..

C# 2023.11.27

C# .NET 프레임 워크 && Entity Framework

. NET 프레임워크 ASP.NET Web Forms 서버 측 컨트롤과 사용자 인터페이스를 생성하는 데 사용됩니다. Windows Forms와 유사한 방식으로 동작하여 UI를 쉽게 구축할 수 있게 합니다. 특히, 이는 이전의 Windows Forms 개발자들이 웹 애플리케이션을 구축하기 쉽게 만들어주는 장점이 있습니다. 그러나 최근에는 ASP.NET MVC나 ASP.NET Core 등의 새로운 웹 개발 패러다임이 등장하면서, 더 모던하고 유연한 웹 애플리케이션을 구축하는 데에는 이들이 더 적합할 수 있습니다. ASP.NET MVC (Model - View - Controller) MVC는 Model-View-Controller 아키텍처를 기반으로 하는 웹 응용 프로그램 개발을 지원합니다. 이는 더 테스트..

C# 2023.11.20

[Java17] javax.xml.bind.DatatypeConverter 오류 해결

E r r o r 이번에 JWT 이용한 로그인을 구현하였는데 javax.xml.bind.DatatypeConverter 에러코드가 나왔다. 원인은 Java 17 버전 이상에서는 javax.xml.bind 패키지가 제거되었으며, 이로 인해 관련된 클래스와 메서드에 접근할 수 없는 오류가 발생한 거였다. JWT 라이브러리는 종종 javax.xml.bind.DatatypeConverter를 사용하기 때문에 이러한 문제가 발생할 수 있다고 한다. S o l u t i o n 의존성 추가 저같은 경우 이번 Project는 Maven을 사용하였기에 아래와 같이 javax.xml.bind 의존성을 maven에 추가하여 해결하였습니다. javax.xml.bind jaxb-api 2.3.1 여기서 사용한 버전은 2.3...

error , solution 2023.10.26

Execution failed for task ':test'.> No tests found for given includes: (--tests filter) 테스트 에러

Error Execution failed for task ':test'.> No tests found for given includes: (--tests filter) 위와 같은 오류가 뜨면서 test 가 안 돼서 해결을 위해 여러 가지 방면으로 찾아보았는데 위 오류를 야기시킬 수 있는 여러 상황들을 정리하면 아래와 같다. 테스트 클래스 이름 확인: 해당 클래스가 프로젝트 내에 실제로 존재하는지 확인하십시오. 또한 클래스의 패키지 구조가 정확한지 확인합니다. 테스트 코드가 올바르게 작성되었는지 확인: 테스트 클래스 내에 테스트 메서드가 올바르게 작성되었는지 확인하십시오. 테스트 메서드는 일반적으로 테스트할 기능을 테스트하는 코드를 포함하며 메서드 이름에 "test"라는 접두사를 포함해야 합니다. 테스트 ..

error , solution 2023.10.12