728x90

언어/C# 62

GeneratedClrTypeInfo

GeneratedClrTypeInfoProtobuf 메시지 파일을 C#으로 컴파일 할 때 생성되는 클래스들에서 사용되는 메타데이터 클래스이다.이 클래스는 주로 Protobuf 메시지의 메타데이터를 설명하고, 메시지의 필드와 속성에 대한 정보를 제공하는 데 사용된다.Google Protocol Buffers(Protobuf)는 데이터 직렬화 형식으로, 여러 프로그래밍 언어에서 사용될 수 있도록 설계되었다. C#의 경우, Protobuf 메시지를 정의한 .proto 파일을 컴파일러로 컴파일하여 C# 클래스로 변환한다.역할과 기능GeneratedClrTypeInfo 클래스는 Protobuf메시지와 관련된 다음과 같은 메타데이터를 포함한다.CLR 유형 정보Protobuf 메시지에 해당하는 C# 클래스의 이름, ..

언어/C# 2024.08.09

Datatime 연산

Datatime 연산주로 사용되는 연산날짜 간 차이 계산DateTime 객체를 서로 빼면 TimeSpan 객체가 반환된다.DateTime date1 = new DateTime(2023, 1, 1);DateTime date2 = new DateTime(2023, 12, 31);TimeSpan difference = date2 - date1;Console.WriteLine($"Days between: {difference.Days}");날짜에 시간 더하기/빼기DateTime에 TimeSpan을 더하거나 뺄 수 있다.DateTime now = DateTime.Now;DateTime future = now.AddDays(7);DateTime past = now.AddHours(-3);날짜 비교DateTime 객..

언어/C# 2024.08.09

HasRows

HasRowsSystem.Data.SqlClient.SqlDataReader 클래스에서 제공하는 속성으로, 현재 데이터베이스 쿼리의 결과 집합에 행이 있는지 확인하는 데 사용된다.이 속성은 쿼리 결과가 하나 이상의 행을 포함하고 있을 때 true를 반환하고, 그렇지 않으면 false를 반환한다. 이를 통해 쿼리 결과를 처리하기 전에 결과가 있는지 빠르게 확인할 수 있다.사용 사례존재 여부 확인특정 조건을 만족하는 데이터가 존재하는지 확인할 때 유용하다.결과 처리 최적화쿼리 결과가 없는 경우 데이터 처리를 건너뛸 수 있어 성능 최적화에 도움이 된다.UI 피드백결과가 없는 경우 사용자에게 적절한 메시지를 제공할 수 있다.

언어/C# 2024.08.08

ExecuteNonQueryAsync

ExecuteNonQueryAsyncC#의 System.Data.SqlClient.SqlCommand 클래스에서 제공하는 비동기 메서드로, 데이터베이스에서 데이터 행을 수정하는 SQL문(INSERT, UPDATE, DELETE 등)을 비동기적으로 실행한다. 미 메서드는 결과 집합을 반환하지 않는 명령을 실행할 때 사용되며, 수행된 작업의 영향을 받은 행 수를 비동기적으로 반환한다.기본 사용법ExecuteNonQueryAsync를 사용하려면 메서드를 async로 선언하고, await 키워드를 사용하여 비동기 작업을 기다려야 한다.이 메서드는 특히 UI 애플리케이션에서 긴 작업을 수행하는 동안 UI를 차단하지 않기 위해 사용된다.장점응답성 유지UI 스레드를 차단하지 않기 때문에 UI 애플리케이션에서 사용자 ..

언어/C# 2024.08.08

ExecuteReaderAsync

ExecuteReaderAsyncC#의 System.Data.SqlClient.SqlCommand 클래스에서 제공하는 비동기 메서드로, SQL 쿼리를 비동기적으로 실행하고 결과를 SqlDataReader로 반환한다.이 메서드는 비동기 작업을 수행할 때 사용되며, 데이터베이스 쿼리 실행 중에 UI 스레드나 다른 중요한 작업을 차단하지 않기 때문에 비동기 프로그래밍 모델에서 매우 유용하다.기본 사용법ExecuteReaderAsync를 사용하려면 메서드가 async로 선언되어 있어야 하고, 반환값을 처리하기 위해 await 키워드를 사용해야 한다. 또한 System.Data.SqlClient 네임스페이스를 포함해야한다.장점응답성 유지특히 UI 애플리케이션에서는 UI 스레드가 긴 작업 동안 차단되는 것을 방지하..

언어/C# 2024.08.08

System.Data.SqlClient

System.Data.SqlClientC#에서 SQL Server 데이터베이스에 연결하고 작업을 수행하는 데 사용되는 네임스페이스이다. 이 네임스페이스에는 SQL Server와 통신하는 데 필요한 클래스들이 포함되어 있으며, 데이터베이스 연결, 명령 실행, 데이터 읽기, 트랜잭션 관리 등의 기능을 제공한다.주요 클래스SqlConnectionSQL Server 데이터베이스에 대한 연결을 나타낸다.데이터베이스에 연결하려면 SqlConnection 객체를 사용한다. 연결 문자열을 제공하여 데이터베이스의 위치, 데이터베이스 이름, 인증 정보 등을 지정할 수 있다.SqlCommandSQL 쿼리나 저장 프로시저를 데이터베이스에 전달한다.SqlCommand를 사용하여 SQL 쿼리나 저장 프로시저를 실행할 수 있다.S..

언어/C# 2024.08.08

LINQ Count 메서드

LINQ Count 메서드IEnumerable 컬렉션의 요소를 쉽게 셀 수 있다.System.Linq 네임스페이스에 정의되어 있다.리스트의 요소 개수를 반환한다.성능 고려 사항컬렉션 타입에 따른 성능 차이Count 메서드는 ICollection 인터페이스를 구현한 컬렉션에서 O(1) 시간 복잡도를 가진다. 이는 Count 프로퍼티가 직접 제공되기 때문이다. 하지만 IEnumerable만을 구현한 컬렉션에서는 O(n) 시간 복잡도를 가지며, 모든 요소를 순회해야 한다.대안매우 큰 컬렉션의 경우 Count 대신 조건에 맞는 첫 번째 요소만을 확인하려면 Any 메서드를 사용하는 것이 더 효율적일 수 있다. 예를 들어, 조건을 만족하는 요소가 하나라도 존재하는지 확인하려면 Any를 사용할 수 있다.사용Count..

언어/C# 2024.08.08

IEnumerable<out T>

IEnumerableC#에서 제네릭 인터페이스 IEnumeable를 나타내며, 제네릭 타입 매개변수 T가 공변성(Covariance)을 가지는 것을 의미한다.공변성은 타입 계층에서 파생된 타입을 사용할 수 있게 해주는 기능으로, 이는 특히 인터페이스나 델리게이트에서 유용하게 쓰인다.IEnumerable 인터페이스컬렉션을 반복(iterate)할 수 있는 기능을 제공하는 제네릭 인터페이스이다.System.Collections.Generic 네임스페이스에 속하며, 다음과 같은 기본 멤버를 포함한다.IEnumerator GetEnumerator();이 인터페이스는 컬렉션의 요소에 대해 순차적으로 접근할 수 있는 기능을 제공한다. 예를 들어, foreach 문에서 IEnumerable를 사용하여 컬렉션의 모든 요..

언어/C# 2024.08.08

튜플(Tuple)

튜플(Tuple)C#에서 여러 개의 값들을 하나의 값처럼 묶어 사용하는 데이터 구조이다.서로 다른 타입의 값들을 하나의 단위로 묶어서 처리할 수 있어, 메서드에서 여러 값을 반환하거나 임시 데이터 구조를 생성할 때 유용하게 사용된다.튜플을 값 타입이며, C# 7.0 이후로 개선된 ValueTuple 구조를 사용하여 더 간결하고 효율적으로 사용할 수 있다.특징불변성기본적으로 불변(immutable)이다. 한 번 값을 설정하면 수정할 수 없다.이는 다중 스레드 환경에서 데이터의 일관성을 유지하는 데 유용하다.값 타입힙이 아닌 스택에 할당되어 메모리 할당이 더 효율적이다.가변 길이튜플은 최대 8개의 요소를 가질 수 있으며, 필요에 따라 더 많은 요소를 중첩 튜플로 확장할 수 있다.명명된 요소C# 7.0 이후에..

언어/C# 2024.08.08

System.Data.SqlClient.SqlException (0x80131904)

System.Data.SqlClient.SqlException (0x80131904)시간 제한 만료됨 오류‘시간 제한 만료됨’ 문제가 발생하면 다음 오류 메시지 중 하나 이상이 나타난다.시간 제한이 만료되었습니다. 작업이 완료되기 전에 제한 시간이 초과되었거나 서버가 응답하지 않습니다.System.Data.SqlClient.SqlException (0x80131904): 연견 시간 제한이 만료되었습니다. 사전 로그인 핸드셰이크 승인을 사용하는 동안 경과된 시간 제한 기간입니다. 이는 사전 로그인 핸드셰이크가 실패했거나 서버가 시간을 거슬러 응답할 수 없기 때문일 수 있습니다.이 서버에 연결하는 동안 소요된 기간: [사전 로그인] 초기화 =23; 핸드셰이크 = 14979;System.ComponentMod..

언어/C# 2024.08.08
728x90