728x90

dev 11

24.08.16 CS, C#, DEV

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

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

빌드 이벤트 지정

빌드 이벤트 지정과정솔루션 탐색기에서 빌드 이벤트를 지정할 프로젝트를 선택한다.프로젝트 메뉴에서 (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.09 C#,DEV

C#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;}위의 메시지 정의는 세 필드를 이름-값 쌍으로 지정한다. .N..

젠킨스(Jenkins)

젠킨스(Jenkins)젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다.CI(Continuous Integration) 툴 이라고 표현한다.다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.장점프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출자동화 테스트 수행정적 코드 분석에 의한 코딩 규약 준수여부 체크프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시결합 테스트 환경에 대한 배포작업이외 500여가지가 넘는 플러그인을 온라인으로 간단하게 인스톨 할 수 있는 기능을 제공하고 있으며 파이썬과 같은 스크립트를 이용해 손쉽게 자신에게 필요한 기능을 추가 할 수도 있..

Dev 2024.08.09

24.08.08 Dev, C#

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

오토스케일링(AutoScaling)

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

Dev 2024.08.08

데이터베이스 샤딩

데이터베이스 샤딩대규모 데이터베이스를 여러 머신에 저장하는 프로세스이다.단일 머신 또는 데이터베이스 서버는 제한된 양의 데이터만 저장하고 처리할 수 있다. 데이터베이스 샤딩은 데이터를 샤드라고 하는 더 작은 청크로 분할하고 여러 데이터베이스 서버에 저장함으로써 이러한 한계를 극복한다.모든 데이터베이스 서버의 기본 기술은 일반적으로 동일하며 함께 작동하여 대량의 데이터를 저장하고 처리한다.샤딩분할된 데이터 청크를 논리적 샤드라고 한다. 논리적 샤드를 저장하는 시스템을 물리적 샤드 또는 데이터베이스 노드라고 한다. 하나의 물리적 샤드는 여러 개의 논리적 샤드를 포함할 수 있다.샤드 키소프트웨어 개발자는 샤드 키를 사용하여 데이터 세트를 분할하는 방법을 결정한다.데이터 세트의 열은 함께 그룹화되어 샤드를 구성..

Dev 2024.08.07
728x90