[C#] 예외 처리 : try, catch, finally, throw
개요 안녕하세요. 이번 글에서는 C#의 예외 처리(exception handling)에 대해 알아보겠습니다. 프로그램 실행 중에는 0으로 나누기, 없는 파일 열기처럼 예상치 못한 오류(예외)가 발생할 수 있습니다. 이를 그냥 두면 프로그램이 멈추지만, try-catch로 …
C# .NET
개요 안녕하세요. 이번 글에서는 C#의 예외 처리(exception handling)에 대해 알아보겠습니다. 프로그램 실행 중에는 0으로 나누기, 없는 파일 열기처럼 예상치 못한 오류(예외)가 발생할 수 있습니다. 이를 그냥 두면 프로그램이 멈추지만, try-catch로 …
개요 안녕하세요. 이번 글에서는 C#의 인터페이스(interface)에 대해 알아보겠습니다. 인터페이스는 “무엇을 할 수 있어야 하는지”만 정해 둔 규격(계약)입니다. 구현 내용은 없고 메서드·프로퍼티의 목록만 정의하며, 실제 동작은 이를 구현하는 클래스가 채웁니다. 인터페이스 …
개요 안녕하세요. 이번 글에서는 C#의 프로퍼티(Property)에 대해 알아보겠습니다. 프로퍼티는 필드(field)를 안전하게 읽고 쓰기 위한 통로입니다. 필드를 그냥 public으로 열면 외부에서 아무 값이나 넣을 수 있지만, 프로퍼티를 쓰면 값을 읽을 때(get)와 …
이번 글에서는 xUnit에 대해 알아보겠습니다. 개발을 하다 보면 개발한 클래스나 함수에 대해 테스트가 필요할 때가 있습니다. 수동으로 값을 대입하거나, 화면상으로 눌러가며 테스트도 하지만 코드가 방대해지면 자동화된 단위 테스트는 필수가 됩니다. …
이번 글에서는 TCP 통신으로 Server와 Client를 만들어 보겠습니다. 전체적인 코드는 github을 참고해주시기 바랍니다. 주요 클래스, 함수 우선 서버 쪽 필수 클래스는 TcpListener입니다. TcpListener의 핵심 코드들은 아래와 같습니다. 클라이언트 쪽 클래스는 …
이번 글에서는 Named Pipe에 대해 알아보겠습니다. Named Pipe는 로컬 PC에서 서로 다른 프로그램끼리 데이터를 주고받는 IPC(Inter-Process Communication) 기술 중 하나 입니다. 프로그램 끼리 파이프에 이름을 붙여 통신을 한다고 보시면 됩니다. …
이번 글에서는 UDP 통신에 대해 알아보겠습니다. UDP에 대한 설명은 기존 글에도 많으니 설명보단, 만드는법 위주로 알아보겠습니다. C#으로 UDP 통신 하는 방법은 굉장히 간단합니다. UdpClient 클래스를 사용하면 됩니다. UdpClient UdpClient는 C#에서 …
이번 글에서는 local PC에 Database 파일을 만들고 데이터 저장, 화면 표시를 해보겠습니다. 데이터베이스는 Sqlite를 사용하도록 하겠습니다. 보통 DB 데이터를 select하거나 insert 하려면 SQL문법을 사용하는데, C#에서는 EF Core(Entity Framework Core)라는 ORM(Object-Relational …
이번 글에서는 DataTemplate와 DataTemplateSelector에 대해 알아보겠습니다. DataTemplate는 말 그대로 데이터를 보여주는 틀이라고 보시면 됩니다. WPF에 이 데이터는 화면에 어떻게 그리는지 알려주는 설계도와 같습니다. DataTemplate를 사용하면 ListBox에 텍스트로 표시되는 것을 정해진 …
이번 글에서는 WPF에서 RadioButton에 대해 알아보겠습니다. RadioButton는 IValueConverter에 대한 코드도 들어있으니 해당 글을 먼저 보시는 것을 추천 드립니다. RadioButton 만들어보기 우선 아래와 같이 3개의 과일을 표시하는 RadioButton을 만들어 줍니다. TextBlock은 …