C#
![category 대표 이미지](https://blog.kakaocdn.net/dn/cMePTg/btsFjISLhxc/oH7ki83HdozFKyJ25wYboK/img.png)
-
01. 닷넷(.NET) Standard .NET 구현에서 공통적인 API의 공식 사양 02. 닷넷(.NET) 5.0 이전 02.1 닷넷(.NET)의 기본 라이브러리와.NET Standard 닷넷 플랫폼은, 개발환경 플랫폼으로, 다양한 "프로그래밍 언어"를 활용해 Linux, macOS, Windows, iOS, Android 등의 다양한 운영체제에서 콘솔, 데스크톱, 웹 및 모바일 애플리케이션을 만들 수 있는 개발환경을 서비스를 제공하는 플랫폼입니다. 닷넷(.NET) 의 최초 구현체는 .NET Framework 이었습니다. .NET Framework 는 .NET Framework 를 위한 라이브러리 모듈이 존재했고, 이후 추가된 프레임워크(.NET Core, Xamarin 등)를 제공했지만, 각각의 구현..
.NET Standard01. 닷넷(.NET) Standard .NET 구현에서 공통적인 API의 공식 사양 02. 닷넷(.NET) 5.0 이전 02.1 닷넷(.NET)의 기본 라이브러리와.NET Standard 닷넷 플랫폼은, 개발환경 플랫폼으로, 다양한 "프로그래밍 언어"를 활용해 Linux, macOS, Windows, iOS, Android 등의 다양한 운영체제에서 콘솔, 데스크톱, 웹 및 모바일 애플리케이션을 만들 수 있는 개발환경을 서비스를 제공하는 플랫폼입니다. 닷넷(.NET) 의 최초 구현체는 .NET Framework 이었습니다. .NET Framework 는 .NET Framework 를 위한 라이브러리 모듈이 존재했고, 이후 추가된 프레임워크(.NET Core, Xamarin 등)를 제공했지만, 각각의 구현..
2024.03.12 -
윈도우 10 이후부터는 .NET Framework 4.8 이 기본 설치되어 있다. 01. 프레임워크(Framework)란? 01.1 용어 [어원] 'FRAME (틀, 규칙)' + 'WORK (작업)' ≒ 시스템 01.2 시스템은 왜 사용할까? 프렌차이즈를 예로 들면, 매장 인테리어, 메뉴구성, 결제 시스템, 접객 및 운영 방법까지 모든 것을 제공합니다. 제조공정 - 분업과 대량생산, 그리고 생산 효율 향상 01.3 UI 프레임워크 예 버튼, 폼 양식, 다이얼로그 등과 같이 자주 사용되는 UI를 미리 구현해서 제공하는 프레임워크이다. WPF(Windows Presentation Foundation) 데스크톱 클라이언트 애플리케이션을 만드는 UI(사용자 인터페이스) 프레임워크입니다. WPF는 애플리케이션 모..
.NET Framework윈도우 10 이후부터는 .NET Framework 4.8 이 기본 설치되어 있다. 01. 프레임워크(Framework)란? 01.1 용어 [어원] 'FRAME (틀, 규칙)' + 'WORK (작업)' ≒ 시스템 01.2 시스템은 왜 사용할까? 프렌차이즈를 예로 들면, 매장 인테리어, 메뉴구성, 결제 시스템, 접객 및 운영 방법까지 모든 것을 제공합니다. 제조공정 - 분업과 대량생산, 그리고 생산 효율 향상 01.3 UI 프레임워크 예 버튼, 폼 양식, 다이얼로그 등과 같이 자주 사용되는 UI를 미리 구현해서 제공하는 프레임워크이다. WPF(Windows Presentation Foundation) 데스크톱 클라이언트 애플리케이션을 만드는 UI(사용자 인터페이스) 프레임워크입니다. WPF는 애플리케이션 모..
2024.03.12 -
01. 프로그래밍이란? 01.1 컴퓨터 컴퓨터는 다양한 하드웨어 부품으로 이루어져 있습니다. 복잡해 보이는 컴퓨터가 실행되는 원리는 매우 간단합니다. 전기 신호가 “있다" 와 “없다" 라는 두 가지 상태만으로 동작합니다. 조금 더 자세히 말하자면, 컴퓨터는 “있다" 와 “없다"의 패턴에 맞춰 특정 동작을 실행합니다. 개발자는 “있다" 와 “없다" 라는 두 가지 상태를 0과 1이라는 숫자를 사용해 패턴을 만듭니다. 즉, 개발자가 컴퓨터를 동작시키려면 0과 1로 이루어진 패턴 만들어 컴퓨터에게 보내면, 패턴에 맞는 동작을 컴퓨터가 실행시킵니다. 01.2 기계어 (Machine Code) 0과 1로 이루어진 기계어는 컴퓨터에게, 정확하게 말하자면 CPU에게 던져주면 바로 해독할 수 있는 유일한 언어입니다. 기..
.NET 빌드와 실행01. 프로그래밍이란? 01.1 컴퓨터 컴퓨터는 다양한 하드웨어 부품으로 이루어져 있습니다. 복잡해 보이는 컴퓨터가 실행되는 원리는 매우 간단합니다. 전기 신호가 “있다" 와 “없다" 라는 두 가지 상태만으로 동작합니다. 조금 더 자세히 말하자면, 컴퓨터는 “있다" 와 “없다"의 패턴에 맞춰 특정 동작을 실행합니다. 개발자는 “있다" 와 “없다" 라는 두 가지 상태를 0과 1이라는 숫자를 사용해 패턴을 만듭니다. 즉, 개발자가 컴퓨터를 동작시키려면 0과 1로 이루어진 패턴 만들어 컴퓨터에게 보내면, 패턴에 맞는 동작을 컴퓨터가 실행시킵니다. 01.2 기계어 (Machine Code) 0과 1로 이루어진 기계어는 컴퓨터에게, 정확하게 말하자면 CPU에게 던져주면 바로 해독할 수 있는 유일한 언어입니다. 기..
2024.03.11 -
01. 닷넷(.NET)이란? 닷넷(.NET)은 "개발환경 플랫폼" 입니다. 닷넷(.NET)은 다양한 "프로그래밍 언어"를 활용해 더보기 Linux, macOS, Windows, iOS, Android 등의 다양한 운영체제에서 더보기 콘솔, 데스크톱, 웹 및 모바일 애플리케이션을 만들 수 있는 개발환경을 서비스를 제공하는 플랫폼입니다. 더보기 닷넷에서 개발 가능한 애플리케이션 닷넷이 "개발환경 플랫폼" 이라는 의미를 이해하기 위해서 플렛폼(Platform)이라는 용어에 대한 이해와 닷넷이 제공하는 개발환경 서비스가 개발자에게 어떤 효용이 있는지 이해해야 합니다. 참고로, C# 이라는 프로그래밍 언어는 닷넷(.NET) 플랫폼 기반의 애플리케이션 개발을 지원하는 프로그래밍 언어 중 하나에 불과합니다. 하지만,..
.NET Platform01. 닷넷(.NET)이란? 닷넷(.NET)은 "개발환경 플랫폼" 입니다. 닷넷(.NET)은 다양한 "프로그래밍 언어"를 활용해 더보기 Linux, macOS, Windows, iOS, Android 등의 다양한 운영체제에서 더보기 콘솔, 데스크톱, 웹 및 모바일 애플리케이션을 만들 수 있는 개발환경을 서비스를 제공하는 플랫폼입니다. 더보기 닷넷에서 개발 가능한 애플리케이션 닷넷이 "개발환경 플랫폼" 이라는 의미를 이해하기 위해서 플렛폼(Platform)이라는 용어에 대한 이해와 닷넷이 제공하는 개발환경 서비스가 개발자에게 어떤 효용이 있는지 이해해야 합니다. 참고로, C# 이라는 프로그래밍 언어는 닷넷(.NET) 플랫폼 기반의 애플리케이션 개발을 지원하는 프로그래밍 언어 중 하나에 불과합니다. 하지만,..
2024.03.09 -
01. Visual Studio Installer Download 비주얼 스튜디오 설치 프로그램 다운로드 합니다.(2024년 3월 5일 기준 최신 버전은 Visual Studio 2022 입니다.)Visual Studio 2022를 사용하고자 하는 경우, 아래 링크로 이동하여 Community 버전을 다운로드합니다. https://visualstudio.microsoft.com/downloads/ 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 o..
Visual Studio 설치01. Visual Studio Installer Download 비주얼 스튜디오 설치 프로그램 다운로드 합니다.(2024년 3월 5일 기준 최신 버전은 Visual Studio 2022 입니다.)Visual Studio 2022를 사용하고자 하는 경우, 아래 링크로 이동하여 Community 버전을 다운로드합니다. https://visualstudio.microsoft.com/downloads/ 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 o..
2024.03.09 -
01. 학습 목표 08. XAML - EventHandler 에서 WPF XAML 디자이너를 활용해 UI 컨트롤의 이벤트를 구현했습니다. 이번에서는 WPF 코드 비하인드(C# 코드 에디터)를 활용하여 컨트롤의 이벤트를 구현합니다. 이전 포스트에서 사용한 Calculator 프로젝트 예제를, Visual Studio 에서 프로젝트를 실행합니다. 02. WPF 코드 비하인드에서 XAML 컨트롤의 이벤트 구현하기 02.2 Negative 버튼 구현 더보기 if(double.TryParse(resultLabel.Content.ToString(), out lastNumber)) { lastNumber = lastNumber * -1; resultLabel.Content = lastNumber.ToString();..
10. XAML - C# EventHandler01. 학습 목표 08. XAML - EventHandler 에서 WPF XAML 디자이너를 활용해 UI 컨트롤의 이벤트를 구현했습니다. 이번에서는 WPF 코드 비하인드(C# 코드 에디터)를 활용하여 컨트롤의 이벤트를 구현합니다. 이전 포스트에서 사용한 Calculator 프로젝트 예제를, Visual Studio 에서 프로젝트를 실행합니다. 02. WPF 코드 비하인드에서 XAML 컨트롤의 이벤트 구현하기 02.2 Negative 버튼 구현 더보기 if(double.TryParse(resultLabel.Content.ToString(), out lastNumber)) { lastNumber = lastNumber * -1; resultLabel.Content = lastNumber.ToString();..
2024.03.08 -
@ 이전 포스트에서 사용했던 Calculator 예제의 계산기를, 윈도우 계산기와 비교해봅시다. UI 모양과 구조가 다른 부분이 있습니다. 윈도우 계산기와 동일한 UI 를 WPF XAML 를 사용하여 구현해 봅시다. 이 과정에서 XAML 디자이너를 좀 더 편리하게 사용하는 방법과 Nuget 관리자를 사용하여 XAML 외부 라이브러리를 적용하는 방법을 익혀봅시다. 01. 윈도우 계산기, 예제 Calculator 비교 01.1 윈도우에서 계산기를 찾아 실행합니다. 01.2 윈도우 계산기와 예제 Calculator 와 비교합니다. 편의를 위해, 윈도우의 계산기를 "계산기" 예제를 "Calculator(칼큘레이터)"라고 합니다. 01.3 수정해야 할 부분을 파악합니다. 02. Grid 패널에 새로운 행 추가 1..
09. XAML - Designer, Nuget@ 이전 포스트에서 사용했던 Calculator 예제의 계산기를, 윈도우 계산기와 비교해봅시다. UI 모양과 구조가 다른 부분이 있습니다. 윈도우 계산기와 동일한 UI 를 WPF XAML 를 사용하여 구현해 봅시다. 이 과정에서 XAML 디자이너를 좀 더 편리하게 사용하는 방법과 Nuget 관리자를 사용하여 XAML 외부 라이브러리를 적용하는 방법을 익혀봅시다. 01. 윈도우 계산기, 예제 Calculator 비교 01.1 윈도우에서 계산기를 찾아 실행합니다. 01.2 윈도우 계산기와 예제 Calculator 와 비교합니다. 편의를 위해, 윈도우의 계산기를 "계산기" 예제를 "Calculator(칼큘레이터)"라고 합니다. 01.3 수정해야 할 부분을 파악합니다. 02. Grid 패널에 새로운 행 추가 1..
2024.03.07 -
XAML과 C# (Code Behind) 연동 작업 2 용어: 이벤트 헨들러 = 이벤트를 다룹니다. 이벤트가 발생했을때 처리하는 로직을 의미합니다. 이벤트가 아닙니다. 이벤트 핸들러는, 이벤트에 연동될 이벤트가 발생되면, 그 동작 신호를 받아 처리는 부분입니다. XMAL 컨트롤에서 발생한 이벤트가 Code Behind(C# 소스 코드)에서 구현되도록 MainWindows.xaml.cs에 정의해 봅시다. 1. Calculator 예제를 다운받아 실행합니다. 실행된 프로그램에서 레이블에 0이 출력됨을 확인합니다. 2. XAML 파일의 버튼 중 "7"을 입력하는 버튼을 찾습니다. 버튼의 태그에 Click 이벤트(⚡)를 추가해봅시다. Click은 버튼 XAML 태그의 속성이 아닌 C# 이벤트입니다. 3. Cli..
08. XAML - EventHandlerXAML과 C# (Code Behind) 연동 작업 2 용어: 이벤트 헨들러 = 이벤트를 다룹니다. 이벤트가 발생했을때 처리하는 로직을 의미합니다. 이벤트가 아닙니다. 이벤트 핸들러는, 이벤트에 연동될 이벤트가 발생되면, 그 동작 신호를 받아 처리는 부분입니다. XMAL 컨트롤에서 발생한 이벤트가 Code Behind(C# 소스 코드)에서 구현되도록 MainWindows.xaml.cs에 정의해 봅시다. 1. Calculator 예제를 다운받아 실행합니다. 실행된 프로그램에서 레이블에 0이 출력됨을 확인합니다. 2. XAML 파일의 버튼 중 "7"을 입력하는 버튼을 찾습니다. 버튼의 태그에 Click 이벤트(⚡)를 추가해봅시다. Click은 버튼 XAML 태그의 속성이 아닌 C# 이벤트입니다. 3. Cli..
2024.03.06 -
XAML 과 Code Behind(C# 소스 코드) 연동하기 C# WPF 의 UI는 XMAL 파일과 C# 파일이 한쌍을 이룹니다. XAML에서 대부분의 UI 작업이 가능합니다. 하지만, 비즈니스 로직 구현은 Code Behind(C# 소스 코드)에서 구현해야 합니다. 우선 이 작업을 위해서는, XAML 디자이너에서 정의한 UI 컨트롤을 Code Behind(C# 소스 코드)에서 호출하고 식별 할 수 있어야 합니다. XAML UI 컨트롤과 C# 소스 코드 연동 Calculator 프로젝트의 Label 컨트롤에 표시되는 Contents 속성을 XAML이 아닌, Code Behind(C# 소스 코드)에서 변경하는 작업을 진행합니다. 1. Calculator 예제를 다운받아 실행합니다. 실행된 계산기 프로그램에..
07. XAML - Code BehindXAML 과 Code Behind(C# 소스 코드) 연동하기 C# WPF 의 UI는 XMAL 파일과 C# 파일이 한쌍을 이룹니다. XAML에서 대부분의 UI 작업이 가능합니다. 하지만, 비즈니스 로직 구현은 Code Behind(C# 소스 코드)에서 구현해야 합니다. 우선 이 작업을 위해서는, XAML 디자이너에서 정의한 UI 컨트롤을 Code Behind(C# 소스 코드)에서 호출하고 식별 할 수 있어야 합니다. XAML UI 컨트롤과 C# 소스 코드 연동 Calculator 프로젝트의 Label 컨트롤에 표시되는 Contents 속성을 XAML이 아닌, Code Behind(C# 소스 코드)에서 변경하는 작업을 진행합니다. 1. Calculator 예제를 다운받아 실행합니다. 실행된 계산기 프로그램에..
2024.03.06 -
01. Panel 개요 용어: 컨트롤, 컨테이너, 레이아웃 컨트롤 레이아웃 옵션 - Windows Forms .NET .NET용 Windows Forms의 레이아웃 및 위치 지정에 영향을 주는 컨트롤의 다양한 설정에 관해 알아봅니다. 레이아웃에 영향을 주는 다양한 형식의 컨트롤 컨테이너에 관해 알아봅니다. learn.microsoft.com 컨트롤은 WPF 에서 사용하는 버튼, 레이블과 같은 UI 객체를 의미합니다 컨테이너는 일반적으로 무엇인가를 담을 수 있는 공간을 의미합니다. WPF와 같은 UI 디자인 툴에서 컨테이너는, 컨트롤 여러개를 한번에 담아 관리할 수 있는 객체를 의미합니다. 레이아웃은 일반적으로 배치라는 뜻을 가지고 있습니다. WPF와 같은 UI 디자인 툴에서 레이아웃은, 개별 컨트롤의 위..
06. XAML - Panels01. Panel 개요 용어: 컨트롤, 컨테이너, 레이아웃 컨트롤 레이아웃 옵션 - Windows Forms .NET .NET용 Windows Forms의 레이아웃 및 위치 지정에 영향을 주는 컨트롤의 다양한 설정에 관해 알아봅니다. 레이아웃에 영향을 주는 다양한 형식의 컨트롤 컨테이너에 관해 알아봅니다. learn.microsoft.com 컨트롤은 WPF 에서 사용하는 버튼, 레이블과 같은 UI 객체를 의미합니다 컨테이너는 일반적으로 무엇인가를 담을 수 있는 공간을 의미합니다. WPF와 같은 UI 디자인 툴에서 컨테이너는, 컨트롤 여러개를 한번에 담아 관리할 수 있는 객체를 의미합니다. 레이아웃은 일반적으로 배치라는 뜻을 가지고 있습니다. WPF와 같은 UI 디자인 툴에서 레이아웃은, 개별 컨트롤의 위..
2024.03.05 -
01. XAML개요 XAML(자믈)이란, eXtensible Application Markup Language, 확장 가능한 응용 프로그램 마크업 언어의 약자입니다. Microsoft 에서 UI를 정의하기 위해 XML을 기반으로 만든 언어입니다. 주로 사용자 인터페이스의 요소, 데이터 바인딩, 이벤트 등의 기능을 정의하는데 사용됩니다. WPF은 XAML 파일과 C# 파일이 한 쌍을 이룹니다. XAML 파일에서는 UI를, C# 파일에서는 로직을 구현합니다. XAML을 사용하여 UI를 구현하기 위해서, 가장 먼저 XAML을 사용하는 방법을 알아봅시다. 01.1 용어 - Control(컨트롤) C++ Qt 디자이너 툴에서는 Widget(위젯)이라는 용어로 UI 를 다루었습니다. C# WPF에서는 Control..
05. XAML 개요01. XAML개요 XAML(자믈)이란, eXtensible Application Markup Language, 확장 가능한 응용 프로그램 마크업 언어의 약자입니다. Microsoft 에서 UI를 정의하기 위해 XML을 기반으로 만든 언어입니다. 주로 사용자 인터페이스의 요소, 데이터 바인딩, 이벤트 등의 기능을 정의하는데 사용됩니다. WPF은 XAML 파일과 C# 파일이 한 쌍을 이룹니다. XAML 파일에서는 UI를, C# 파일에서는 로직을 구현합니다. XAML을 사용하여 UI를 구현하기 위해서, 가장 먼저 XAML을 사용하는 방법을 알아봅시다. 01.1 용어 - Control(컨트롤) C++ Qt 디자이너 툴에서는 Widget(위젯)이라는 용어로 UI 를 다루었습니다. C# WPF에서는 Control..
2024.03.05 -
01. WPF 프로젝트 실행하기 01.1 WPF 프로젝트 초기 화면 01.2 WPF 기본 템플릿 실행 WPF 기본 템플릿으로 자동 생성된 WPF 프로젝트를 실행해 봅시다. Ctrl + F5 를 누르거나, Visual Studio 상단 메뉴에서 [Debug] > [Start Without Debugging] 로 실행합니다. 실행된 후 보이는 화면이 개발자가 작업 할 WPF 프로그램의 초기 모습입니다. 02. MainWindows.xaml 살펴보기 02.1 MainWindows.xaml WPF 템플릿을 선택하여 프로젝트를 실행하면, 기본값으로 UI 창 하나가 만들어집니다. 이를 MainWindows 라고 합니다. (소스 코드의 Main과는 다릅니다. 창 이름이 MainWindows 입니다.) 이 창에 대한 ..
04. WPF 살펴보기01. WPF 프로젝트 실행하기 01.1 WPF 프로젝트 초기 화면 01.2 WPF 기본 템플릿 실행 WPF 기본 템플릿으로 자동 생성된 WPF 프로젝트를 실행해 봅시다. Ctrl + F5 를 누르거나, Visual Studio 상단 메뉴에서 [Debug] > [Start Without Debugging] 로 실행합니다. 실행된 후 보이는 화면이 개발자가 작업 할 WPF 프로그램의 초기 모습입니다. 02. MainWindows.xaml 살펴보기 02.1 MainWindows.xaml WPF 템플릿을 선택하여 프로젝트를 실행하면, 기본값으로 UI 창 하나가 만들어집니다. 이를 MainWindows 라고 합니다. (소스 코드의 Main과는 다릅니다. 창 이름이 MainWindows 입니다.) 이 창에 대한 ..
2024.03.05 -
01. Visual Studio 실행 02. 새 프로젝트 생성 03. WPF Application 템플릿 선택 설치한 모든 템플릿을 확인 할 수 있습니다. 이 중에서 WPF 템플릿을 선택해야 합니다. 더보기 프로그래밍 언어를 C#으로 선택하지 않으면, Visual Basic 언어 기반의 WPF 템플릿도 리스트에 보입니다. C#은 .NET을 지원하는 언어 중 하나일 뿐입니다. Visual Basic 언어도 .NET 을 지원하는 언어 중 하나입니다. Visual Basic 으로 WPF를 개발해도 C#과 동일한 결과를 만들 수 있습니다. 04. 프로젝트 설정 05. 프레임워크 버전 설정 06. WPF 프로젝트 생성
03. WPF 프로젝트 생성하기01. Visual Studio 실행 02. 새 프로젝트 생성 03. WPF Application 템플릿 선택 설치한 모든 템플릿을 확인 할 수 있습니다. 이 중에서 WPF 템플릿을 선택해야 합니다. 더보기 프로그래밍 언어를 C#으로 선택하지 않으면, Visual Basic 언어 기반의 WPF 템플릿도 리스트에 보입니다. C#은 .NET을 지원하는 언어 중 하나일 뿐입니다. Visual Basic 언어도 .NET 을 지원하는 언어 중 하나입니다. Visual Basic 으로 WPF를 개발해도 C#과 동일한 결과를 만들 수 있습니다. 04. 프로젝트 설정 05. 프레임워크 버전 설정 06. WPF 프로젝트 생성
2024.03.05 -
Visual Studio 설치 포스트를 참고합니다. https://basiclike.tistory.com/329
02. Visual Studio 설치Visual Studio 설치 포스트를 참고합니다. https://basiclike.tistory.com/329
2024.03.05 -
WPF(Windows Presentation Foundation)는 Microsoft에서 2006년에 개발한 데스크톱 클라이언트 애플리케이션을 만드는 UI 프레임워크입니다. WPF를 사용하면 시각적으로 뛰어난 Windows용 데스크톱 클라이언트 애플리케이션을 만들 수 있습니다. WPF는 .NET 환경에서 동작합니다. 비지니스 로직 은 C#을 주 언어로 소스 코드로 작성합니다. UI 디자인은 XAML(Extensible Application Markup Language,자믈)을 사용합니다. 그리고 WPF는 최신 그래픽 하드웨어를 활용하도록 작성된 해상도 독립적인 벡터 기반 렌더링 엔진을 사용합니다. 단점으로는 XML기반의 XAML은 Microsoft 기술에만 특화되어 있는 문법이 존재합니다. WPF로 만든..
01. WPF 개요WPF(Windows Presentation Foundation)는 Microsoft에서 2006년에 개발한 데스크톱 클라이언트 애플리케이션을 만드는 UI 프레임워크입니다. WPF를 사용하면 시각적으로 뛰어난 Windows용 데스크톱 클라이언트 애플리케이션을 만들 수 있습니다. WPF는 .NET 환경에서 동작합니다. 비지니스 로직 은 C#을 주 언어로 소스 코드로 작성합니다. UI 디자인은 XAML(Extensible Application Markup Language,자믈)을 사용합니다. 그리고 WPF는 최신 그래픽 하드웨어를 활용하도록 작성된 해상도 독립적인 벡터 기반 렌더링 엔진을 사용합니다. 단점으로는 XML기반의 XAML은 Microsoft 기술에만 특화되어 있는 문법이 존재합니다. WPF로 만든..
2024.03.05 -
대리자와 이벤트는 같은 개념이다. 하지만 이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다. 이벤트를 발생시키는 쪽과, 발생된 이벤트가 반영되는 객체만 구분하면 된다. eg) 버튼 클릭 > 이벤트(대리자) > 레이블 수정 01. 이벤트 선언 방법 이벤트는 대리자를 event 한정자로 수식해서 만든다. [이벤트_키워드] [대리자_이름] [이벤트_이름]; delegate int A(String str); class Temp { public event A EventHandler; public void Func(string msg) { EventHandler(msg); } } 02. 이벤트 이해 이벤트를 발생시키는 객체와, 발생된 이벤트가 영향받는 객체만 구분하면 이벤트 기반..
delegate 02. Event대리자와 이벤트는 같은 개념이다. 하지만 이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다. 이벤트를 발생시키는 쪽과, 발생된 이벤트가 반영되는 객체만 구분하면 된다. eg) 버튼 클릭 > 이벤트(대리자) > 레이블 수정 01. 이벤트 선언 방법 이벤트는 대리자를 event 한정자로 수식해서 만든다. [이벤트_키워드] [대리자_이름] [이벤트_이름]; delegate int A(String str); class Temp { public event A EventHandler; public void Func(string msg) { EventHandler(msg); } } 02. 이벤트 이해 이벤트를 발생시키는 객체와, 발생된 이벤트가 영향받는 객체만 구분하면 이벤트 기반..
2024.03.04 -
C# 은 MSDN이 정답이다. 함수 & 매개변수 학습목표 언제나 그렇듯 프로그래밍 학습은 개발자 관점에서 대리자(delegate)라는 기술이, 프로그래밍에서 어떤 기존 개발 방법을 조금이라도 쉽고, 편리하게 하기 위한 것일까? 를 파악하는 것이 목표다. 학습순서 Callback 개념과 Delegate 용어 대리자를 사용하는 이유 Delegate를 선언하고 사용하는 방법 일반화 대리자를 사용하는 방법 Multicast Delegete (대리차 체인) 01. Callback 개념과 Delegate 용어 01.1 Callback 의 구조 01.2 C# 의 Callback 의 구조 01.3 Delegate 용어 Delegate 라는 용어는, 한국어로 '대리자', '대리인'을 의미합니다. 대신해서 일해주는 것을 ..
delegate 01.C# 은 MSDN이 정답이다. 함수 & 매개변수 학습목표 언제나 그렇듯 프로그래밍 학습은 개발자 관점에서 대리자(delegate)라는 기술이, 프로그래밍에서 어떤 기존 개발 방법을 조금이라도 쉽고, 편리하게 하기 위한 것일까? 를 파악하는 것이 목표다. 학습순서 Callback 개념과 Delegate 용어 대리자를 사용하는 이유 Delegate를 선언하고 사용하는 방법 일반화 대리자를 사용하는 방법 Multicast Delegete (대리차 체인) 01. Callback 개념과 Delegate 용어 01.1 Callback 의 구조 01.2 C# 의 Callback 의 구조 01.3 Delegate 용어 Delegate 라는 용어는, 한국어로 '대리자', '대리인'을 의미합니다. 대신해서 일해주는 것을 ..
2024.03.04 -
동기화 코드의 문제점 데이터를 보내는 작업과 받는 작업이 블록되는 문제 상황을 강제로 발생시켜보자. 네트워크 프로그램은 많은 부분에서 비동기 코드가 필요하다. Read( ) 함수의 동작은 C언어의 Scanf( ) 동작과 유사하다. Read( ) 함수는 stream에 전달받은 데이터가 있다면, 데이터를 읽어들인다. 하지만 읽을 데이터가 없다면, 데이터가 들어올 때까지 대기하는데, 이때 실행 흐름은 블록된다. 만약 이 상태에서 데이터를 전송시키고 싶다면, Send( ) 가 실행 제어권을 가지지 못하기에 전송 작업 실행은 불가능하다. 위의 예제 프로젝트의 소스코드는, 이전 포스트와 동일하다. TCPServer, TCPClient_Protocol 을 실행시면, 한 번의 전송 이후 각자 Read( ) 에서 서로 ..
5. 비동기 TCPListener 예제동기화 코드의 문제점 데이터를 보내는 작업과 받는 작업이 블록되는 문제 상황을 강제로 발생시켜보자. 네트워크 프로그램은 많은 부분에서 비동기 코드가 필요하다. Read( ) 함수의 동작은 C언어의 Scanf( ) 동작과 유사하다. Read( ) 함수는 stream에 전달받은 데이터가 있다면, 데이터를 읽어들인다. 하지만 읽을 데이터가 없다면, 데이터가 들어올 때까지 대기하는데, 이때 실행 흐름은 블록된다. 만약 이 상태에서 데이터를 전송시키고 싶다면, Send( ) 가 실행 제어권을 가지지 못하기에 전송 작업 실행은 불가능하다. 위의 예제 프로젝트의 소스코드는, 이전 포스트와 동일하다. TCPServer, TCPClient_Protocol 을 실행시면, 한 번의 전송 이후 각자 Read( ) 에서 서로 ..
2023.10.06 -
프로토콜 1 응용 프로그래밍에서 네트워크를 사용해 데이터를 송수신 할때 사용하는 규칙을 의미한다. 네트워크 응용 프로그래밍에서, 일반적으로 데이터를 보낼 때는 정확한 바이트 파악 할 수 있다. 하지만 데이터를 받을 때는 몇 바이트가 올지 알 수가 없다. 그리고 데이터가 분산되어 여러번 전달 될 수도 있다. 그렇기에 네트워크 응용 프로그래밍은 서버와 클라이언트 사이에 주고 받는 데이터의 크기 및 데이터 구조 등에 대해 프로토콜(규칙)을 개발자가 정해야 한다. 프로토콜(규칙)의 예시 헤더에 차후 보낼 바이트의 크기 전송한다. 전달하는 데이터 마지막에 특정한 End of Message 마크를 사용한다. 일정 시간 아무 데이타가 없으면 수신 종료한다. 연결 종료시점까지 데이터를 읽는 방법 만약 이러한 프로토콜이..
4. 프로토콜프로토콜 1 응용 프로그래밍에서 네트워크를 사용해 데이터를 송수신 할때 사용하는 규칙을 의미한다. 네트워크 응용 프로그래밍에서, 일반적으로 데이터를 보낼 때는 정확한 바이트 파악 할 수 있다. 하지만 데이터를 받을 때는 몇 바이트가 올지 알 수가 없다. 그리고 데이터가 분산되어 여러번 전달 될 수도 있다. 그렇기에 네트워크 응용 프로그래밍은 서버와 클라이언트 사이에 주고 받는 데이터의 크기 및 데이터 구조 등에 대해 프로토콜(규칙)을 개발자가 정해야 한다. 프로토콜(규칙)의 예시 헤더에 차후 보낼 바이트의 크기 전송한다. 전달하는 데이터 마지막에 특정한 End of Message 마크를 사용한다. 일정 시간 아무 데이타가 없으면 수신 종료한다. 연결 종료시점까지 데이터를 읽는 방법 만약 이러한 프로토콜이..
2023.10.06 -
TCPClient & TCPListener 내부적으로 System.Net.Sockets.Socket 클래스를 사용한다. 하지만 Socket 으로 작업하는 것보다 훨씬 간결하다. 네트워크 데이터 송수신은 기본적으로 바이트 자료형을 사용한다. 따라서 문자열을 보낼 경우 먼저 바이트로 인코딩한 후, 일반 영문은 ASCII로 인코딩하고, 한글 등 비영문 문자열은 UTF8 인코딩을 사용한다. 실행 흐름 TCPListener Server의 Listen( ) 동작을 의미한다. using System.Net.Sockets; using System.Net; namespace TcpServerTest { class Program { static void Main(string[] args) { // [1] 서버의 Liste..
3. TCPClient, TCPListener 예제TCPClient & TCPListener 내부적으로 System.Net.Sockets.Socket 클래스를 사용한다. 하지만 Socket 으로 작업하는 것보다 훨씬 간결하다. 네트워크 데이터 송수신은 기본적으로 바이트 자료형을 사용한다. 따라서 문자열을 보낼 경우 먼저 바이트로 인코딩한 후, 일반 영문은 ASCII로 인코딩하고, 한글 등 비영문 문자열은 UTF8 인코딩을 사용한다. 실행 흐름 TCPListener Server의 Listen( ) 동작을 의미한다. using System.Net.Sockets; using System.Net; namespace TcpServerTest { class Program { static void Main(string[] args) { // [1] 서버의 Liste..
2023.10.06