.NET

    [C# 11 과 .NET 7] 7. .NET Packaging과 배포

    [C# 11 과 .NET 7] 7. .NET Packaging과 배포

    C# 키워드가 .NET 유형과 어떻게 관련되어 있는지, 네임스페이스와 어셈블리 간에는 어떤 관계가 있는지에 대한 것을 알면 C#언어를 이해하는데 도움이 될 수 있습니다. 또한 .NET library에서 이전 .NET framework library를 어떻게 사용하고 이식할 수 있는지를 알게되면 .NET을 좀더 폭넓게 활용할 수 있을 것입니다. 1. .NET 7 .NET에서는 Base Class Library (BCL) API를 통해 수 많은 기능들을 제공하고 있습니다. .NET Standard를 통해서는 다른 전체 .NET platform간 이런 기능들을 재사용할 수 있도록 하고 있는데 때문에 지금의 .NET과 이전의 것을 적절히 이해해둘 필요가 있습니다. .NET Standard 2.0의 최소규격을 지..

    [C# 11 과 .NET 7] 6. Interface와 Class상속

    [C# 11 과 .NET 7] 6. Interface와 Class상속

    OOP(Object-Oriented Programming)을 사용한 하나의 개체는 다른 새로운 type을 상속하는 기본 개념과 generic을 사용하여 어떻게 code를 안전하게 만들고 성능을 높일 수 있는지, delegate와 event를 통해 type 간 message를 어떻게 교환할 수 있는지를 알아보고 참조와 값 type에 대한 차이점도 확인해 볼 것입니다. 공통기능에 대한 interface를 구현하고 기능을 재사용하기 위해 기반 class로부터 상속받는 파생 class를 만들 것이며 상속된 type member를 재정의하고 다형성(polymorphism)을 사용해 볼 것입니다. 또한 확장 method의 생성과 계층적으로 상속된 class 간 변환에 대한 것들, 그리고 static code ana..

    [C# 11 과 .NET 7] 5. OOP (Object-Oriented Programming)

    [C# 11 과 .NET 7] 5. OOP (Object-Oriented Programming)

    C#에서는 OOP를 통해 자신만의 type을 만들 수 있습니다. 이를 위해 data를 저장하기 위한 field와 동작을 수행하는 method를 포함해 type이 가질 수 있는 member들에 대해 encapsul화와 같은 OOP개념을 사용해 볼 것입니다. 여기에 더해 tuple syntax support, out variables, inferred tuple names 그리고 default literals과 같은 언어기능과 간단한 동작을 수행하기 위한 연산자와 지역함수를 정의하는 방법도 함께 살펴보고자 합니다. 1. OOP (Object-Oriented Programming) 현실 세계의 개체는 자동차나 사람과 같은 것이지만 programming에서의 개체는 제품이나 은행 계좌와 같이 현실 세계의 무언가..

    [C# 11 과 .NET 7] 4. Debuging과 Testing

    [C# 11 과 .NET 7] 4. Debuging과 Testing

    code의 재사용을 위한 함수의 작성과 개발동안의 logic error에 대한 debugging, runtime에서의 logging, code의 bug제거와 신뢰성 및 안정성을 높이기 위한 unit test 등은 개발과정에서 매우 중요한 요소로 취급되고 있습니다. 1. 함수 작성 programming에서의 기본적인 원칙은 흔히 DRY불리는 '반복하지 마라'입니다. programming동안에 같은 구문을 작성하고 또 그것을 반복하고 있다면 이들 구문을 함수로 전환할 필요가 있습니다. 함수는 application전체에서 하나의 작은 작업의 단위를 처리하는 부분으로서 예로 부가세 계산 logic과 같은 것들을 들 수 있으며 이러한 함수는 회계 application의 여러 곳에서 재사용될 수 있습니다. prog..

    [C# 11 과 .NET 7] 3. 흐름제어, Type 변환, 예외 처리

    [C# 11 과 .NET 7] 3. 흐름제어, Type 변환, 예외 처리

    이번에는 변수를 사용한 간단한 동작과 분기, pattern matching 수행, 구문 혹은 block의 반복과 여러 값을 저장하기 위한 array, 특정 type에서 다른 type으로의 변수나 표현식에 대한 변환, 예외 처리 그리고 숫자형 변수에 대한 overflow를 확인하기 위한 방법 등에 관해서 알아볼 것입니다. 1. 변수 연산 연산자는 변수나 literal값과 같은 피연산자에서 덧셈이나 곱셈과 같은 계산을 수행하는 것을 말합니다. 보통은 연산결과에 대한 새로운 값을 반환하며 이를 다른 변수에 할당하는 과정이 있을 수 있습니다. 대부분의 연산자는 2진연산자로서 아래 예제와 같이 2개의 피연산자를 필요로 합니다. var result = firstOperand operator secondOperand..

    [C# 11 과 .NET 7] 2. C#

    [C# 11 과 .NET 7] 2. C#

    이번 글에서는 C# programming 언어에 대한 기본적인 사항을 살펴볼 것입니다. 전반적으로 알아야 할 용어와 C#에 대한 기본적인 문법에 대한 것들입니다. 1. C# 언어 C#을 통해 application에 대한 source code를 작성하려면 그에 필요한 문법과 용어를 알고 있어야 할 것입니다. 다행스럽게도 programming 언어자체는 사람이 사용하는 언어(대게는 영어)와 비슷한 면을 가지고 있습니다. 다만 programming에서는 자신만의 단어를 만들어낸다는 차이만 있을 뿐입니다. (1) 언어 version과 기능 ● C# 1 2002년 02월에 발표되었으며 객체지향언어에 대한 모든 중요한 요소를 포함하였습니다. ● C# 1.2 foreach 구문의 끝에서 자동적인 disposal과 같..

    ASP.NET Core - 21. ASP.NET Core Identity 사용

    ASP.NET Core - 21. ASP.NET Core Identity 사용

    이번에는 이전에 구축해 둔 ASP.NET Core Identity를 사용자 인증과 application기능으로 접근하기 위한 권한에 어떻게 적용할 수 있는지를 알아볼 것입니다. 따라서 identity를 구축하기 위해 사용자에게 필요한 기능을 생성하고, endpoint로의 접근을 제어하고 Blazor가 제공하는 보안기능을 직접 구현해 볼 것입니다. 또한 web service에서 client를 인증하기 위해 가장 보편적으로 사용되는 방식이 2가지가 있는데 이에 대해서도 같이 확인해 볼 것입니다. 1. Project 준비하기 예제를 위한 project는 이전의 project를 그대로 사용할 것입니다. 다만 PowserShell을 열고 csproj file이 있는 project folder로이동한 뒤 아래 명령..

    ASP.NET Core - 20. ASP.NET Core Identity

    ASP.NET Core - 20. ASP.NET Core Identity

    ASP.NET Core Identity는 ASP.NET Core application에서 사용자를 관리하기 위한 API이며 인증과 권한을 요청 pipeline으로 통합할 수 있도록 지원합니다. 또한 application에서 필요한 인증과 권한기능을 생성하는 도구이기도 한데 two-factor authentication, federation, single sign-on, account self-service와 같은 기능의 통합을 위한 것과 대규모 조직환경 또는 cloud hosting 사용자 관리를 사용할 경우에 유용한 많은 option들을 제공하고 있습니다. ASP.NET Core Identity는 자체 framework로 발전하였고 이것에 대한 전체를 다루기에는 상당히 방대한 양이 검토되어야 하므로 E..