728x90

C# 81

24.09.19 C#, CS

C#using System;usingC#의 키워드 중 하나다.SystemC# 코드에 기본적을 필요한 클래스를 담고 있는 네임스페이스다.;(세미콜론)컴파일러에게 문장의 끝을 알려준다.using static어떤 데이터 형식의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다.전역 using(global using)소스파일 한 곳에서만 네임스페이스를 참조하면 프로젝트 내 모든 파일에서 별도의 using문 없이 해당 네임스페이스를 참조할 수 있도록 한다.파일 범위 네임스페이스namespace 선언 뒤에 {} 대신 ;(세미콜론)을 붙이면 그 파일의 모든 코드는 해당 네임스페이스 소속으로 들어간다.Static void Main(string[] args){}이 메소드는 프로그램의 진입점(Entry Point..

24.08.16 CS, C#, DEV

C#Async/AwaitC#에서 비동기 프로그래밍을 쉽게 할 수 있게 해주는 키워드이다. 이 두 키워드는 복잡한 비동기 코드를 간결하게 작성할 수 있게 해주며, 동기 코드처럼 읽기 쉽고 유지 보수하기 좋은 코드를 작성할 수 있게 도와준다.asyncasync 키워드는 메서드, 람다식, 또는 익명 메서드에 사용된다.이 키워드는 해당 메서드가 비동기적으로 실행될 것임을 컴파일러에게 알려준다.async 메서드는 반드시 await 키워드를 포함하지 않아도 되지만, 포함하는 것이 일반적이다.awaitawait는 비동기 작업이 완료될 때까지 메서드의 실행을 일시 중지하고, 작업이 완료되면 계속 실행한다.await 키워드는 비동기 작업이 끝날 대까지 호출된 메서드를 기다렸다가, 그 이후의 코드를 계속 실행한다.중요한 ..

CompareTo

CompareToC#에서 객체 간의 비교를 위해 사용되는 메서드이다.이 메서드는 특정 타입의 두 객체를 비교하여, 그 객체가 다른 객체보다 작거나, 같거나, 큰지를 나타내는 정수 값을 반환한다.CompareTo 메서드는 주로 정렬 알고리즘에서 객체들을 정렬하는 데 사용된다.CompareTo 메서드의 반환값음수 값(’-1’)호출하는 객체가 비교하는 객체보다 작음을 의미한다.0호출하는 객체와 비교하는 객체가 같음을 의미한다.양수 값(’1’)호출하는 객체가 비교하는 객체보다 큼을 의미한다.사용 예제CompareTo 메서드는 주로 IComparable 인터페이스와 함께 사용되며, 기본 데이터 타입과 사용자 정의 클래스에서 사용할 수 있다.기본 데이터 타입 int a = 5;int b = 10;int result..

언어/C# 2024.08.16

Exception has been thrown by the target of an invocation

Exception has been thrown by the target of an invocation.NET 응용 프로그램에서 리플렉션(Reflection)을 사용하여 메서드나 속성을 호출할 때 발생하는 예외이다.이 예외는 호출된 메서드나 속성에서 내부적으로 예외가 발생했을 때, 리플렉션이 이 예외를 포착하고, 이와 같은 일반적인 예외 메시지를 반환할 때 나타난다.예외의 원인이 오류는 특정한 예외에 대한 직접적인 정보가 없기 때문에, 예외의 원인이 무엇인지 알기 위해서는 내부 예외(Inner Exception)를 확인해야 한다. 내부 예외에는 실제로 발생한 문제에 대한 구체적인 정보가 포함되어 있다.일반적인 발생 시나리오리플렉션을 통한 메서드 호출리플렉션을 사용하여 메서드를 호출할 때, 그 메서드 내부에..

언어/C# 2024.08.16

Protobuf

ProtobufgRPC는 IDL(Interface Design Language)로 Protobuf를 사용한다. Protobuf IDL은 gRPC 서비스에서 보내고 받는 메시지를 지정하기 위한 언어 중립적인 형식이다. Protobuf 메시지는 파일에 정의 .proto 된다.Protobuf 메시지메시지는 Protobuf의 기본 데이터 전송 개체이다. 개념상 .NET 클래스와 유사하다.syntax = "proto3";option csharp_namespace = "Contoso.Messages";message Person { int32 id = 1; string first_name = 2; string last_name = 3;}위의 메시지 정의는 세 필드를 이름-값 쌍으로 지정한다. .NET..

언어/C# 2024.08.14

24.08.13 CS, C#

24.08.13 CS, C#CSAuthentication/Authorization보통 우리가 권한이라고 불리우는 것엔 인증(Authentication)과 인가/승인(Authorization) 두 가지 단어가 존재하는데, 비슷해보이지만 엄연한 차이가 존재한다.인증(Authentication)본인이 누구인지 확인 (로그인)승인(Authorization)특정 리소스에 권한이 있는지 확인 (등급 권한)인증 (Authentication) 인가(Authorization)기능자격 증명 확인권한 허가/거부진행 방식비밀번호, 생체인식, 일회용 핀보안 팀에서 관리하는 설정사용자가 볼 수 있는가?예아니요사용자가 직접 변경할 수 있는가?부분적으로 가능불가능데이터 전송ID 토큰 사용액세스 토큰 사용참조https://inpa.t..

24.08.12 CS, C#

24.08.12 CS, C#CS컴파일/트랜스파일/인터프리터컴파일(Compile)한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것이 컴파일이다.C언어를 기계어로 옮기는 것, Java를 Bytecode로 옮기는 것 모두 이 정의에 따르면 Compile에 해당한다. 심지어 TypeScript를 JavaScript로 옮기는 것 역시 이 범주안에 속한다고 할 수 있기도 하다. (엄밀히 말하면 트랜스파일링이다.)고수준의 언어를 바이트 단위의 기계어로 변환해야 컴파일이라고 말하는 것이 아니다. 컴파일은 한 언어로 작성된 코드를 다른 언어로 옮기는 일 자체를 통칭한다고 보면 된다.트랜스파일(Transpile)한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것이 트랜스파일이다.Tra..

MergeFrom

MergeFromGoogle Protocol Buffers(프로토콜 버퍼)에서 사용되는 메서드로, 두 개의 메시지 인스턴스를 병합하는 데 사용된다. 주로 두 메시지를 하나로 결합하여 누락된 필드를 채우거나, 한 메시지의 필드를 다른 메시지로 덮어쓰는 작업을 수행할 때 사용된다.주요 특징메시지 병합MergeFrom은 소스 메시지의 필드를 대상 메시지로 복사한다. 이는 소스 메시지에서 설정된 필드만 복사되며, 대상 메시지에서 이미 존재하는 필드 값을 덮어쓰지 않는다.필드 추가대상 메시지에 소스 메시지의 필드가 존재하지 않을 경우, 해당 필드를 추가한다.복합 필드 병합반복되는 필드나 중첩된 메시지 같은 복합 필드는 소스 메시지의 항목을 대상 메시지의 항목에 추가하는 방식으로 병합된다.동작 방식스칼라 값 필드기..

언어/C# 2024.08.12

JsonFormatter.ToDiagnosticString

JsonFormatter.ToDiagnosticStringGoogle Protocol Buffes에서 제공하는 JSON 직렬화 기능의 일부로, 프로토콜 버퍼 메시지를 사람이 읽을 수 있는 JSON 문자열 형식으로 변환하는 메서드이다. 주로 디버깅 및 로깅 목적으로 사용되며, 메시지의 내용을 쉽게 확인할 수 있도록 도와준다.주요 특징가독성ToDiagnosticString은 메시지의 필드 값을 사람이 읽기 쉬운 형식으로 변환한다. 이는 일반적인 JSON 직렬화 출력보다 가독성을 높이기 위한 것이다.디버깅 용도메시지의 내부 상태를 쉽게 확인할 수 있도록 설계되어 있어, 디버깅 과정에서 유용하게 사용할 수 있다.형식일반적으로 JSON 형식의 문자열로 반환되며, 이는 JSON 구문을 지원하는 대부분의 텍스트 뷰어..

언어/C# 2024.08.12

ProtoMsg.ProtocolMessageReflection.Descriptor.MessageTypes

ProtoMsg.ProtocolMessageReflection.Descriptor.MessageTypesGoogle Protocol Buffers(프로토콜 버퍼)에서 특정 메시지 타입의 메타데이터를 접근하는 데 사용되는 코드 구조이다. 이를 통해 프로토콜 버퍼 정의 파일(.proto 파일)에 정의된 메시지 타입들의 정보를 반영(reflection) 메커니즘을 통해 얻을 수 있다.구성요소ProtoMsg보통 이 이름은 네임스페이스를 나타내며, 개발자가 정의한 프로토콜 버퍼 메시지 파일에서 생성된 코드와 관련이 있다. 예를 들어, ProtoMsg는 protocol.proto라는 파일에서 생성된 C# 코드를 담는 네임스페이스일 수 있다.ProtocolMessageReflection이 클래스는 프로토콜 버퍼 컴파..

언어/C# 2024.08.12
728x90