템플릿 리터럴 (Template Literals)
템플릿 리터럴(Template Literals)은 ES6(ECMAScript 2015)에서 도입된 문법으로, 문자열을 작성할 때 기존의 따옴표 대신 백틱(`)을 사용하여 보다 가독성이 좋고 유연하게 문자열을 다룰 수 있는 기능입니다. 템플릿 리터럴은 변수와 표현식을 포함할 수 있으며, 여러 줄 문자열을 쉽게 작성할 수 있습니다. 기본 문법 ...
템플릿 리터럴(Template Literals)은 ES6(ECMAScript 2015)에서 도입된 문법으로, 문자열을 작성할 때 기존의 따옴표 대신 백틱(`)을 사용하여 보다 가독성이 좋고 유연하게 문자열을 다룰 수 있는 기능입니다. 템플릿 리터럴은 변수와 표현식을 포함할 수 있으며, 여러 줄 문자열을 쉽게 작성할 수 있습니다. 기본 문법 ...
확장 메서드는 이미 정의된 클래스에 새로운 메서드를 추가할 수 있게 해주는 기능입니다. 이 기능은 기존 클래스의 내부 코드를 수정하지 않고 마치 새로운 인스턴스 메서드를 정의하는 것처럼 추가할 수 있습니다. 일반적으로 기존 클래스의 메서드를 확장하는 방법으로는 상속이 있는데, sealed로 봉인된 클래스는 상속 받을 수 없고, 새로운 기능으로 확장...
어트리뷰트(Attribute)는 코드 요소에 대한 메타데이터를 추가하는 방법입니다. 어트리뷰트는 클래스, 메서드, 프로퍼티, 필드, 이벤트 등 다양한 코드 요소에 적용될 수 있으며, 주로 런타임 시 또는 컴파일 타임에 특정 동작을 변경하거나 추가 정보를 제공하기 위해 사용됩니다. 이 추가 정보는 런타임에 리플렉션을 통해 접근할 수 있습니다. 어트...
리플렉션(Reflection)이라는 용어는 “반사”, “(거울에 반사되어 비친) 상”, “반영”, “묘사(설명)” 등의 뜻이 있습니다. 프로그래밍에서 리플렉션은 프로그램이 런타임에 자신을 반사 혹은 묘사하여 자신의 구조와 동작에 대한 정보를 얻고, 이를 바탕으로 동적으로 동작을 변경할 수 있는 기능을 의미합니다. 즉, 리플렉션(Reflection)...
Predicate 델리게이트는 Func<>나 Action<>과 같은 미리 정의된 델리게이트 형식입니다. Predicate<T> 델리게이트는 특정 조건에 맞는지를 검사하는 메서드를 캡슐화하는 데 사용되는 델리게이트로, 하나의 매개변수를 갖고 리턴 값이 bool인 델리게이트입니다. public delegate bool ...
람다(lambda)는 일반적으로 익명 함수(anonymous function) 혹은 이름이 없는 작은 함수로, 다른 함수 내에서 인라인으로 정의되거나, 간단한 표현식을 실행하기 위해 사용됩니다. 일반적인 람다 함수의 특징 익명성: 람다 함수는 굳이 이름을 붙이지 않고, 즉석에서 정의하고 사용할 수 있습니다. 간결함: 람다 함수는 간단한 표...
익명 델리게이트(Anonymous Delegate) 델리게이트에 메서드 참조를 저장하기 위해 함수의 식별자(이름)을 제공하지만, 가끔씩은 특정 함수 내에서만 사용되어 함수를 따로 만들어 둘 필요가 없을 때도 있습니다. (이름이 필요 없는 일회용 함수를 사용하고 싶을 때) 이럴 때, 이름이 명시되지 않은 델리게이트인 익명 델리게이트를 사용할 수 있습...
event는 delegate의 사용 패턴을 좀 더 일반화 해서 제공하는 예약어입니다. 예를 들어, 콜백 패턴 혹은 이벤트 패턴이나 옵저버 패턴 등을 구현할 때, 구현하기 쉽도록 다양한 기능을 제공합니다. 제약 조건과 제공 기능 event는 다음과 같은 제약 조건과 기능을 제공합니다. 캡슐화 이벤트를 통해 구독자와 발생자...
델리게이트(Delegate)는 C#에서 중요한 개념 중 하나로, 메서드 참조를 저장하고 호출할 수 있는 형식을 제공하는 기능입니다. C++의 함수 포인터와 비슷한 개념인데, 좀 더 많은 기능을 제공합니다. 델리게이트를 사용하면 메서드를 매개변수로 전달하거나, 런타임에 호출할 메서드를 동적으로 결정할 수 있습니다. 델리게이트 사용 델리게이트는 d...
인터페이스(Interface) 인터페이스는 객체 지향 프로그래밍에서 중요한 개념으로, 메서드 시그니처만을 정의하고, 구현은 제공하지 않는 일종의 청사진입니다. 인터페이스는 주로 다형성을 구현하고, 클래스 간의 결합도를 낮추는데 목적이 있습니다. 그로 인해 서로 다른 클래스들이 동일한 인터페이스를 구현함으로써 상호 작용 할 수 있게 합니다. 즉, ...