Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#

  1. C# 7.0 로컬 함수(Local Function)란? 개념과 예제로 쉽게 이해하기

    C# 7.0에서 새롭게 도입된 로컬 함수(Local Function)는 다른 멤버 내부에 중첩되어 선언되는 private 메서드입니다. 로컬 함수는 자신을 둘러싼 포함 멤버(containing member) 내부에서만 호출할 수 있으며, 외부에서는 접근할 수 없습니다.로컬 함수를 선언하고 호출할 수 있는 위치로컬 함수는 아래와 같은 다양한 멤버 안에서 선언하고 호출할 수 있습니다.메서드 — 특히 반복기(iterator) 메서드와 비동기(async) 메서드에서 유용하게 활용됩니다생성자(Constructor)속성 접근자(Property

  2. C# 7.0 패턴 매칭(Pattern Matching) 완벽 정리 - is 표현식과 switch 문 활용법

    C# 7.0에서 도입된 패턴 매칭(Pattern Matching)은 코드의 가독성과 간결성을 크게 향상시키는 강력한 기능입니다. 이 기능은 is 표현식과 switch 문 두 곳에서 사용할 수 있습니다.패턴 매칭의 핵심 개념패턴은 값이 특정 형태(shape)를 가지고 있는지 검사하고, 일치하는 경우 해당 값에서 필요한 정보를 추출할 수 있습니다. 주요 특징을 정리하면 다음과 같습니다.간결한 문법: 복잡한 알고리즘을 더 짧고 읽기 쉬운 코드로 표현할 수 있습니다.모든 데이터 타입 지원: 직접 만든 사용자 정의 타입을 포함해 어떤 데이터

  3. C# 7.0의 이진 리터럴(Binary Literal)과 숫자 구분자(Digit Separator) 완벽 정리

    C# 7 이전에는 변수에 10진수와 16진수 값만 할당할 수 있었습니다. 하지만 C# 7.0에서 이진 리터럴(Binary Literal)이 새롭게 도입되면서, 변수에 2진수 값을 직접 할당할 수 있게 되었습니다.이진 리터럴은 접두사 0b 또는 0B를 붙여 표현합니다. 예를 들어 0b1000001은 십진수로 65에 해당하며, 아스키(ASCII) 코드로는 문자 A를 나타냅니다.숫자 구분자(Digit Separator)란?숫자 구분자는 밑줄(_) 하나로 표현되며, 모든 숫자 리터럴 내부 어디에든 삽입하여 가독성을 높이는 용도로 사용할 수

  4. C# 7.0의 참조 지역 변수(Ref Local)와 참조 반환(Ref Return) 완벽 정리

    C# 7.0에서 새롭게 도입된 참조 반환(ref return) 기능을 사용하면 메서드가 값을 복사해 돌려주는 대신, 변수 자체에 대한 참조를 반환할 수 있습니다.호출하는 쪽에서는 반환받은 변수를 일반 값처럼 사용할 수도 있고, 참조로 취급할 수도 있습니다. 또한 반환된 값을 가리키는 새로운 지역 변수, 즉 참조 지역 변수(ref local)를 선언하는 것도 가능합니다.값 복사 방식의 동작아래 예제에서 color 변수에는 colors[3]의 값이 복사됩니다. 따라서 color를 변경해도 원본 배열 colors에는 전혀 영향을 미치지

  5. C# 8.0의 새로운 Switch 표현식(Switch Expression) 작성 방법

    C# 8.0에서 도입된 switch 표현식(switch expression)은 표현식 컨텍스트에서 switch와 유사한 의미 체계를 제공하는 새로운 문법입니다.기존의 switch 문은 선택문(selection statement)의 일종으로, 매칭 표현식(match expression)과 패턴 매칭 결과를 기준으로 후보 목록 중 단일 switch 섹션을 선택하여 실행합니다.하나의 표현식을 세 개 이상의 조건과 비교해야 하는 경우에는 switch 문이 if-else 구문을 대체하는 용도로 자주 사용됩니다.새로운 방식의 Switch 작성

  6. C# 8.0 인덱서(Indexer)와 ^ 연산자 사용 방법 완벽 정리

    C# 8.0의 ^ 연산자(끝부터 인덱스)란?C# 8.0에서 새롭게 도입된 ^ 연산자는 끝부터 인덱스(index from end) 연산자라고 부릅니다. 이 연산자는 시퀀스나 컬렉션의 끝을 기준으로 한 상대적 인덱스를 반환합니다.기존에는 컬렉션의 뒤쪽 요소에 접근하려면 list[list.Count - 1]처럼 전체 개수를 먼저 계산한 뒤 역순으로 접근해야 했습니다. 반면 ^ 연산자를 사용하면 list[^1]처럼 훨씬 간결하고 직관적으로 끝쪽 요소에 접근할 수 있어, 기존 방식보다 가장 compact하고 쉬운 방법으로 평가받습니다.참고:

  7. C# 8.0 비동기 스트림(Async Streams) 완벽 가이드: IAsyncEnumerable과 await foreach 활용법

    C# 8.0에서 새롭게 도입된 비동기 스트림(Async Streams)은 데이터를 스트리밍 형태로 다루는 소스를 모델링하는 기능입니다. 실제 애플리케이션에서 데이터 스트림은 네트워크 요청, 파일 읽기, 센서 데이터 수신 등 다양한 상황에서 요소를 비동기적으로 검색하거나 생성하는 경우가 많습니다.C# 8.0 이전에는 시퀀스를 생성하는 메서드에서 yield return을 사용하려면 반드시 동기 방식이어야 했습니다. 하지만 이제는 async 한정자로 선언된 메서드 안에서도 yield return을 사용해 요소를 하나씩 반환할 수 있게 되

  8. C# ASP.NET Web API를 사용해야 하는 이유와 주요 장점

    ASP.NET Web API란 무엇인가? ASP.NET Web API는 간단하고 가벼운(lightweight) 서비스를 구축할 때 WCF보다 더 나은 선택지입니다. Web API는 XML을 포함한 다양한 텍스트 형식을 자유롭게 사용할 수 있으며, WCF보다 빠른 성능을 제공합니다. 특히 RESTful 아키텍처를 기반으로 하는 웹 서비스 개발에 최적화되어 있습니다. ASP.NET Web API의 핵심 장점 HTTP 표준 방식 완벽 준수 — GET, POST, PUT, DELETE와 같은 표준 HTTP 메서드를 사용해 CRUD(생성

  9. ASP.NET WebAPI는 web.config에서 구성할 수 없다? 코드 기반 구성 방법 완벽 정리

    web.config 파일로 Web API를 구성할 수 있을까?결론부터 말하면 아니요, Web API는 web.config 파일에서 직접 구성할 수 없습니다.Web API는 코드 기반(Code-based) 구성 방식만을 지원합니다. 즉, WCF와 달리 web.config나 XML 설정 파일을 통해 동작을 제어할 수 없으며, 모든 구성은 애플리케이션 시작 시 코드를 통해 이루어집니다.대신 개발자는 코드를 통해 Web API 호스팅 인프라와 각종 컴포넌트의 동작을 자유롭게 사용자 지정할 수 있습니다. 주요 구성 대상은 다음과 같습니다.R

  10. C# ASP.NET Web API 매개변수 바인딩의 개념과 [FromBody], [FromUri] 활용법

    바인딩(Binding)은 Web API가 컨트롤러의 액션 메서드를 호출할 때 해당 메서드의 매개변수에 값을 설정하는 과정을 의미합니다.Web API는 매개변수의 타입에 따라 서로 다른 방식으로 값을 바인딩하며, 필요에 따라 이 기본 동작을 사용자가 직접 변경(커스터마이징)할 수도 있습니다.기본 바인딩 규칙매개변수가 단순 타입(simple type), 즉 int, bool, double 같은 기본형이라면 Web API는 URI(라우트 데이터 또는 쿼리 스트링)에서 값을 가져오려고 시도합니다.반면 매개변수가 복합 타입(complex t

  11. ASP.NET Web API(C#)의 기본 제공 메시지 처리기 완벽 정리

    메시지 처리기(Message Handler)는 HTTP 요청을 받아 HTTP 응답을 반환하는 클래스입니다. 모든 메시지 처리기는 추상 클래스인 HttpMessageHandler에서 파생되며, 들어오는 요청이 HttpControllerDispatcher에 도달하기 전에 이를 처리하거나 수정하거나 심지어 거부할 수 있는 기회를 제공합니다.메시지 처리기는 요청 처리 파이프라인의 매우 초기 단계에서 실행되기 때문에, Web API에서 교차 관심사(Cross-Cutting Concerns)를 구현하기에 가장 적합한 위치입니다. 메시지 처리기

  12. C# 문자열에서 숫자를 찾고 추출하는 방법 총정리

    C# 프로그래밍에서 문자열에 섞여 있는 숫자만 골라내야 하는 경우가 자주 발생합니다. 이럴 때 정규식(Regular Expression)이나 Char.IsDigit() 메서드를 활용하면 손쉽게 해결할 수 있습니다. 이 글에서는 두 가지 방법을 예제 코드와 함께 자세히 살펴보겠습니다.정규식(Regular Expression)이란?정규식은 입력 텍스트와 매칭되는 패턴(pattern)을 의미합니다. .NET 프레임워크는 정규식 엔진을 내장하고 있어 이러한 패턴 매칭을 기본적으로 지원합니다. 하나의 패턴은 하나 이상의 문자 리터럴, 연산자

  13. ASP.NET MVC C#에서 ViewBag 사용하는 방법 완벽 가이드

    ViewBag란 무엇인가?ViewBag은 C# 4.0에서 도입된 dynamic(동적) 기능을 활용하는 개체입니다. 이 기능을 사용하면 개체에 속성을 동적으로 추가할 수 있습니다. 내부적으로 ViewBag은 Controller 클래스의 기반 클래스인 ControllerBase 클래스가 가진 dynamic 타입의 속성입니다.ViewBag은 데이터를 컨트롤러(Controller)에서 뷰(View)로 전달하는 용도로만 사용할 수 있으며, 그 반대 방향의 전달은 지원하지 않습니다. 또한 리다이렉션이 발생하면 ViewBag의 값은 null이

  14. ASP.NET MVC C#에서 NonAction 특성(Attribute)이 중요한 이유

    NonAction 특성(Attribute)은 컨트롤러 안에 public 메서드로 유지하고 싶지만, 이를 액션 메서드로 취급하고 싶지 않을 때 사용합니다. 액션 메서드란 URL을 통해 호출할 수 있는 컨트롤러의 public 메서드를 의미합니다.기본적으로 컨트롤러에 정의된 모든 public 메서드는 URL 요청만으로 호출될 수 있습니다. 따라서 외부에 노출되어서는 안 되는 public 메서드가 있다면 NonAction 특성을 적용하여 접근을 제한해야 합니다.예제: 두 개의 public 메서드를 가진 HomeController다음과 같이

  15. ASP.NET MVC(C#) 기본 라우트(Default Route)의 3가지 구성 요소 완벽 정리

    ASP.NET MVC의 라우팅(Routing) 모듈은 브라우저에서 들어오는 요청을 특정 MVC 컨트롤러 액션에 매핑하는 역할을 담당합니다. ASP.NET MVC 애플리케이션이 시작되면 프레임워크의 라우트 테이블(Route Table)에 하나 이상의 패턴을 등록하여, 해당 패턴과 일치하는 요청이 들어왔을 때 라우팅 엔진이 어떻게 처리해야 하는지 알려줍니다. 런타임 시 라우팅 엔진은 요청을 받으면 해당 요청의 URL을 등록된 URL 패턴과 비교하고, 일치하는 패턴에 따라 적절한 응답을 반환합니다.라우팅(Routing)의 등장 배경ASP

  16. ASP.NET MVC(C#)에서 필터를 적용할 수 있는 세 가지 수준

    ASP.NET MVC 애플리케이션에서 필터(Filter)는 요청 처리 파이프라인 전반에 걸쳐 인증, 예외 처리 등의 공통 로직을 재사용할 수 있게 해주는 강력한 기능입니다. 필터는 다음과 같이 세 가지 수준에서 적용할 수 있습니다.액션 메서드(Action Method) 수준컨트롤러(Controller) 수준전역(Global) 수준1. 액션 메서드 수준액션 메서드 수준에 적용된 필터는 해당 액션 메서드에만 영향을 미칩니다. 특정 작업에만 인증이나 로깅 같은 처리가 필요할 때 유용합니다.using System.Web.Mvc; names

  17. ASP.NET MVC C#에서 ChildActionOnly 속성이란? 개념과 사용 예제

    ChildActionOnly 속성이란?ASP.NET MVC에서 [ChildActionOnly] 속성이 적용된 액션 메서드는 오직 자식 요청(child request)을 통해서만 접근할 수 있습니다. 즉, 사용자가 브라우저 주소창에 해당 액션의 URL을 직접 입력해도 정상적인 응답을 받을 수 없으며, 대신 다음과 같은 런타임 오류가 발생합니다.자식 액션은 자식 요청을 통해서만 접근할 수 있습니다.(Child action is accessible only by a child request)자식 액션 메서드는 뷰(View) 내부에서 Ac

  18. ASP.NET Web API C#에서 콘텐츠 협상(Content Negotiation)이란 무엇인가?

    콘텐츠 협상(Content Negotiation)이란?콘텐츠 협상(Content Negotiation)은 하나의 응답에 대해 여러 가지 표현 방식(XML, JSON 등)이 존재할 때, 그중 가장 적합한 표현을 선택하는 과정을 말합니다. 즉, 클라이언트가 요청에 담아 보낸 Accept 헤더 값에 따라 서버가 응답 형식을 결정하여 전송하는 것입니다.HTTP에서 콘텐츠 협상의 핵심 메커니즘은 다음과 같은 요청 헤더들입니다.주요 요청 헤더Accept – 응답으로 허용 가능한 미디어 타입을 지정합니다. 예를 들어 application/jso

  19. C# ASP.NET Web API에서 Authorize Attribute의 역할과 사용법

    인가(Authorization)란 인증된 사용자가 특정 리소스(Web API 리소스)에 대해 작업을 수행할 수 있는지 여부를 판단하는 프로세스입니다. 예를 들어, 데이터를 조회하거나 전송할 수 있는 권한이 있는지 확인하는 것도 인가의 일부입니다. 인가 프로세스는 컨트롤러의 액션 메서드가 실행되기 전에 수행되기 때문에, 해당 리소스에 대한 접근을 허용할지 여부를 유연하게 결정할 수 있습니다.AuthorizeAttribute란?ASP.NET Web API에서 인가는 컨트롤러 액션 메서드 실행 전에 동작하는 인가 필터(Authorizat

  20. C# HttpClient로 다른 애플리케이션에서 ASP.NET WebAPI 엔드포인트 호출하는 방법

    HttpClient 클래스란?HttpClient 클래스는 지정된 URL로 HTTP 요청을 전송하고 응답을 수신하기 위한 기본 클래스를 제공합니다. .NET 프레임워크의 비동기(async) 기능을 지원하며, 여러 개의 동시 요청을 효율적으로 처리할 수 있습니다. 내부적으로는 HttpWebRequest와 HttpWebResponse 위에 구현된 추상화 계층으로, 제공되는 모든 메서드가 비동기 방식으로 동작한다는 점이 특징입니다. HttpClient는 System.Net.Http 네임스페이스에서 사용할 수 있습니다.WebAPI 애플리케이

Total 2668 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:126/134  20-컴퓨터/Page Goto:1 120 121 122 123 124 125 126 127 128 129 130 131 132