C#
C# History
C# History
2024.10.28C# 은 매년 새로운 기술을 포함한 버전을 발표합니다. [1] 여기에서 주목할 점은, 1)C# 버전, 2)닷넷 프레임워크 버전, 그리고 3)비주얼 스튜디오 버전의 호환성 입니다.- 예를들어 은, + 에서만 가능합니다. [2] 그리고 매년 이렇게 새로운 기능이 추가된다면, 학습과 유지보수 측면에서 어떤 문제가 발생할지 생각해봅시다.
.NET Standard
.NET Standard
2024.03.121. 닷넷(.NET) Standard.NET 구현에서 공통적인 API의 공식 사양 2. 닷넷(.NET) 5.0 이전 더보기2.1 닷넷(.NET)의 기본 라이브러리와.NET Standard 닷넷 플랫폼은, 개발환경 플랫폼으로, 다양한 "프로그래밍 언어"를 활용해 Linux, macOS, Windows, iOS, Android 등의 다양한 운영체제에서 콘솔, 데스크톱, 웹 및 모바일 애플리케이션을 만들 수 있는 개발환경을 서비스를 제공하는 플랫폼입니다. 닷넷(.NET) 의 최초 구현체는 .NET Framework 이었습니다. .NET Framework 는 .NET Framework 를 위한 라이브러리 모듈이 존재했고, 이후 추가된 프레임워크(.NET Core, Xamarin 등)를 제공했지만, 각각의 구..
.NET Framework
.NET Framework
2024.03.121. 프레임워크(Framework)란?더보기1.1 용어[어원] 'FRAME (틀, 규칙)' + 'WORK (작업)' ≒ 시스템 1.2 시스템은 왜 사용할까? 커피 프렌차이즈 매장을 새로 개업한다고 예를 들어 봅시다.프렌차이즈는, 매장 인테리어, 메뉴구성, 결제 시스템, 접객 및 운영 방법까지 모든 것을 제공합니다.제조공정 - 분업과 대량생산, 그리고 생산 효율 향상 1.3 UI 프레임워크 예 버튼, 폼 양식, 다이얼로그 등과 같이 자주 사용되는 UI를 미리 구현해서 제공하는 프레임워크이다. WPF(Windows Presentation Foundation)데스크톱 클라이언트 애플리케이션을 만드는 UI(사용자 인터페이스) 프레임워크입니다. WPF는 애플리케이션 모델, 리소스, 컨트롤, 그래픽,..
.NET 빌드와 실행
.NET 빌드와 실행
2024.03.111. 프로그래밍이란?더보기1.1 컴퓨터 동작 컴퓨터는 다양한 하드웨어 부품으로 이루어져 있습니다.복잡해 보이는 컴퓨터가 실행되는 원리는 매우 간단합니다.전기 신호가 “있다" 와 “없다" 라는 두 가지 상태만으로 동작합니다. 조금 더 자세히 말하자면, 컴퓨터는 “있다" 와 “없다"로 이루어진 패턴에 맞춰 특정 동작을 실행합니다.개발자는 “있다" 와 “없다" 라는 두 가지 상태를 0과 1이라는 숫자를 사용해 패턴을 만듭니다. 즉, 개발자가 컴퓨터를 동작시키려면 0과 1로 이루어진 10011011 과 같은 패턴 만들어 컴퓨터에게 보내면, 패턴에 맞는 동작을 컴퓨터가 실행시킵니다. 1.2 기계어 (Machine Code) 0과 1로 이루어진 기계어는 컴퓨터에게, 정확하게 말하자면 CPU에게 던져주면 바로 ..
.NET Platform
.NET Platform
2024.03.091. 닷넷(.NET, dotnet)더보기1.1 닷넷 학습 관점 '닷넷'은 프로그램 개발에 사용되는 여러가지 편리한 기술의 묶음 개념입니다.마치 프로그래밍을 '음식'이라고 가정하면, 닷넷은 '한식', '중식', '일식', '양식' 에 가깝습니다. '한식'은 밥과 국이 기본을 이루고, 한상에는 다양한 반찬들이 함께 차려지는 것이 일반적인 특징이듯이'닷넷'은 C#이라는 프로그래밍 언어로, .Net Standard 라는 라이브러리를 사용하며, .Net 컴파일러로 빌드되어, CLR이라는 실행 환경으로 실행합니다. 닷넷을 학습한다는 것은, 한식만이 가지는 고유한 특징처럼, 닷넷을 이루는 구성요소를 이해해야 합니다. 하지만, 닷넷 구성 요소를 이해하기에 앞서, 1)플랫폼 2)빌드와 실행환경 개념을 먼저 이해합시..
01. <Win> Visual Studio 설치 & C# 환경설정
01. <Win> Visual Studio 설치 & C# 환경설정
2024.03.091. Visual Studio 설치 프로그램 다운로드더보기1.1 Visual Studio 2022를 사용하고자 하는 경우, 아래 링크로 이동하여 Download Visual Studio Tools - Install Free for Windows, Mac, LinuxDownload Visual Studio IDE or VS Code for free. Try out Visual Studio Professional or Enterprise editions on Windows, Mac.visualstudio.microsoft.com 1.2 Community 버전을 다운로드합니다. - Visual Studio 버전 선택더보기일반적으로 C#을 학습한다면, 최신 버전의 Visual Studio를 설치하고, 최신 C..
delegate 02. Event
delegate 02. Event
2024.03.04이벤트는 대리자와 같은 개념으로, 대리자를 이해한 후 이벤트를 학습해야 한다.이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다. 이벤트가 시작되는 로직과, 이벤트에 영향을 받아 동작하는 로직을 구분하는것이 먼저다. 아래 예제는, 버튼이 눌려지면, 레이블에 문자열이 수정되는 구조를 구현한다고 가정하자.eg) [버튼 클릭 > 이벤트(대리자)] > 레이블 수정 1. 이벤트 선언 방법이벤트는 대리자를 event 한정자로 수식해서 만든다.[ event 키워드 ] [ 대리자 ] [ 이벤트이름 ]; 2. 이벤트 선언의 목적위 예제 구조에서 구현된 이벤트는, 이벤트를 형태의 선언이 목적이 아니다.레이블의 수정이 목적이다.시작은 Button 객체의 click 함수의 실행목적..
delegate 01.
delegate 01.
2024.03.04C# 은 MSDN이 정답이다. 함수 & 매개변수 학습목표언제나 그렇듯 프로그래밍 학습은 개발자 관점에서 대리자(delegate)라는 기술이, 프로그래밍에서 어떤 기존 개발 방법을 조금이라도 쉽고, 편리하게 하기 위한 것일까? 를 파악하는 것이 목표다. 학습순서Callback 개념과 Delegate 용어대리자를 사용하는 이유Delegate를 선언하고 사용하는 방법일반화 대리자를 사용하는 방법Multicast Delegete (대리차 체인) 01. Callback 개념과 Delegate 용어 01.1 Callback 의 구조 01.2 C# 의 Callback 의 구조 01.3 Delegate 용어 Delegate 라는 용어는, 한국어로 '대리자', '대리인'을 의미합니다.대신해서 일해주는 것을 전문..
Winform async, await
Winform async, await
2023.10.12윈폼 동기버튼을 누르면, RefreshLable( ) 이 실행되는 동안 다른 작업을 할 수 없다. 윈폼 비동기버튼을 누르면, RefreshLableAcync( ) 함수가 비동기로 동작하여 UI 동작에 영향이 없다.이 실행되는 동안 다른 작업을 할 수 있다. 윈폼 비동기, await C# async는 컴파일러에게 해당 메서드가 await를 가지고 있음을 알려주는 역할을 한다. async라고 표시된 메서드는 await를 1개 이상 가질 수 있다.하나도 없는 경우라도 컴파일은 가능하지만 Warning 메시지가 표시된다.
delegate 3. MulticastDelegate
delegate 3. MulticastDelegate
2023.10.10멀티캐스트 대리자 함수 실행1 using System; namespace delegate_test3 { class Program { static void Main(string[] args) { Program program = new Program(); program.run("실행1"); program.SomethingHappend("실행2"); program.MyAreaClick("실행3"); program.AfterClick("실행4"); } void run(string sender) { Console.WriteLine(sender + " run 클릭!"); } void SomethingHappend(string sender) { Console.WriteLine(sender + " SomethingHa..
delegate 2. 사용 방법
delegate 2. 사용 방법
2023.10.09C#의 대리자는 함수를 변수처럼 사용하는 방법일 뿐이다. C/C++ 에서는 함수 포인터의 개념과 비슷하고, 대부분의 언어에서 Callback(콜백) 개념으로 구현되어 있다. 대리자 선언 1. 선언방법 델리게이트_키워드 함수_반환형 델리게이트_이름(함수_시그니처); delegate return_type delegate_name(int num1, int num2); [.NET Frame 1.0] 델리게이트_키워드 함수_반환형 델리게이트_이름 = new 델리게이트_키워드(함수_이름) delegate return_type delegate_name = new delegate(funtion); [.NET Frame 2.0] 델리게이트_키워드 함수_ 반환형 델리게이트_이름 = 함수_이름 delegate void de..
5. 비동기 TCPListener 예제
5. 비동기 TCPListener 예제
2023.10.06동기화 코드의 문제점 데이터를 보내는 작업과 받는 작업이 블록되는 문제 상황을 강제로 발생시켜보자.네트워크 프로그램은 많은 부분에서 비동기 코드가 필요하다. Read( ) 함수의 동작은 C언어의 Scanf( ) 동작과 유사하다.Read( ) 함수는 stream에 전달받은 데이터가 있다면, 데이터를 읽어들인다. 하지만 읽을 데이터가 없다면, 데이터가 들어올 때까지 대기하는데, 이때 실행 흐름은 블록된다. 만약 이 상태에서 데이터를 전송시키고 싶다면, Send( ) 가 실행 제어권을 가지지 못하기에 전송 작업 실행은 불가능하다.위의 예제 프로젝트의 소스코드는, 이전 포스트와 동일하다.TCPServer, TCPClient_Protocol 을 실행시면, 한 번의 전송 이후 각자 Read( ) 에서 서로 멈춘상태..