728x90

전체 글 715

24.08.14 CS, Dev

24.08.14 CS, DevCS멀티 프로세스 VS 멀티 스레드멀티 프로세스와 멀티 스레드는 한 어플리케이션에 대한 처리방식이라고 보면 된다. 단순히 프로그램을 여러개 띄워놓는 것이 멀티 프로세스가 아니라 이 둘은 언제 어느때에 어떤 방식으로 처리하느냐에 따라 다른 것으로 이해해야 한다.멀티 프로세스멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다. 보통 하나의 프로그램 실행에 대해 하나의 프로세스가 메모리에 생성되지만, 부가적인 기능을 위해 여러개의 프로세스를 생성하는 것이다.멀티 프로세스 내부를 보면, 하나의 부모 프로세스가 여러 개의 자식 프로세스를 생성함으로서 다중 프로세스를 구성하는 구조이다. 한 프로세스는 실행되는 도중 프..

Visual Studio Solution Build, Rebuild, Clean

Visual Studio Solution Build, Rebuild, CleanSolution Build (솔루션 빌드)프로젝트 단위로 소스코드 및 헤더 파일을 컴파일 및 링크한다.이전 빌드 파일이 있다면, 변경된 코드 및 헤더 파일에 대해서만 빌드를 진행한다. 이전 빌드 내역이 있는 경우, 불필요한 작업을 줄이고 빠른 빌드를 수행할 수 있다.Solution Rebuild (솔루션 다시 빌드)프로젝트 단위로 소스코드 및 헤더 파일을 컴파일 및 링크한다. 이전 빌드 내역에 관계없이 전체 프로젝트를 다시 빌드한다. 빌드는 프로젝트 단위 및 순서로 진행된다. 예를 들어 프로젝트 A, B로 구성된 솔루션의 경우 프로젝트 A를 솔루션 정리 및 솔루션 빌드한 후에 프로젝트 B를 솔루션 정리 및 빌드한다.이때 프로젝..

Dev 2024.08.14

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..

빌드 이벤트 지정

빌드 이벤트 지정과정솔루션 탐색기에서 빌드 이벤트를 지정할 프로젝트를 선택한다.프로젝트 메뉴에서 (ProjectName) 속성을 클릭하거나, 솔루션 탐색기에서 Alt+Enter를 누른다.빌드 > 이벤트를 선택한다.빌드 전 이벤트 섹션에서 빌드 이벤트의 구문을 지정한다.프로젝트가 최신 상태이고 빌드가 트리거되지 않으면 빌드 전 이벤트가 실행되지 않는다.빌드 후 이벤트 섹션에서 빌드 이벤트의 구문을 지정한다..bat 파일을 실행하는 모든 빌드 후 이벤트 명령 앞에 call 문을 추가한다. 예를 들어 call MyFile.bat 또는 call MyFile.bat call MyFile2.bat 이다. 경로는 프로젝트 폴더의 상대 경로이거나 절대 경로일 수 있다.빌드 후 이벤트 실행 상자에서 빌드 후 이벤트를 실..

Dev 2024.08.13

CI/CD 파이프라인

CI/CD 파이프라인CI(Continuous Integration)CI/CD의 CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로, 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.CD(Continuous Delivery / Deployment)CI/CD의 CD는 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다.두 가지 의미 모두..

Dev 2024.08.13

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