728x90

전체 글 715

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

오토스케일링(AutoScaling)

오토스케일링(AutoScaling)일반적으로 컴퓨팅 리소스 측면에서 시스템이 자동으로 규모를 조절(scale)하는 기능(ability)이다.오토스케일링 시스템을 사용하면, 리소스가 필요할 때 자동으로 추가되고 변화를 거듭하는 사용자 요구에 맞게 규모를 조절할 수 있다. 오토스케일링 프로세스는 다양하며 메모리 또는 처리 시간과 같은 다른 메트릭을 기반으로 규모를 조절하도록 설정할 수 있다. 관리형 클라우드 서비스에는 일반적으로 오토스케일링 기능이 관계되어 있는데, 이는 대부분의 온프레미스(on-premises) 배포보다 더 많은 옵션과 구현을 제공하기 때문이다.이전에는 인프라와 애플리케이션이 시스템의 최대 사용치(peak usage)를 고려하도록 설계하였다. 이 아키텍처에서는 많은 리소스가 충분히 활용되지..

Dev 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

System.Data.SqlClient.SqlConnection.OnError

System.Data.SqlClient.SqlConnection.OnErrorADO.NET의 SqlConnection 클래스에서 발생한 오류를 처리하기 위한 내부 메서드이다.이 메서드는 SQL 서버와의 연결 중 오류가 발생했을 때 호출된다. 특히 OnError 메서드는 데이터베이스 작업 중 발생한 예외(SqlException)를 처리하고, 필요시 연결을 중단하거나 다른 후속 작업을 처리할 수 있도록 하는 역할을 한다.이 메서드는 SqlConnection 클래스의 내부 메서드이므로 직접 호출하거나 오버라이드할 수는 없다. 주로 SqlConnection 객체와 관련된 예외 처리 흐름의 일부로 사용되며, 개발자가 직접적으로 사용하는 경우는 드물다. 예외가 발생했을 때의 로그 또는 스택 트레이스를 통해 이 메서..

언어/C# 2024.08.08

24.08.07 C#

24.08.07 C#C#Sealedsealed 클래스C#에서 클래스 또는 메서드에 적용할 수 있는 키워드로, 주로 상속과 관련된 기능을 제어하는 데 사용된다.sealed 키워드를 클래스에 적용하면 그 클래스를 상속할 수 없게 된다. 상속하려고 하면 컴파일러가 오류를 발생시킨다. 이는 특정 클래스가 더 이상 파생 클래스를 가질 필요가 없거나, 의도적으로 확장을 제한하고자 할 대 유용하다.sealed 메서드sealed 키워드는 메서드에도 사용할 수 있으며, 이 경우에는 override 키워드와 함께 사용된다. sealed 키워드를 사용해서 메서드를 재정의하면, 해당 메서드를 더 이상 하위 클래스에서 재정의할 수 없게 된다.사용 이유보안 및 무결성특정 클래스나 메서드가 더 이상 변경되지 않도록 하여 프로그램의..

728x90