본문 바로가기

분류 전체보기107

Part3. C# 실력 다지기(2. 제네릭 클래스 이해하기) 지난 포스팅의 제네릭 메서드에 이어 이번 포스팅에서는 제네릭 클래스에 대해서 다루어 보겠습니다. 제네릭 클래스란? 제네릭 클래스는 멤버의 형을 일반화된 타입인 로 표시한 클래스입니다. 이렇게 하면 클래스 내에서 사용되는 모든 데이터 타입을 T 하나로 처리할 수 있습니다. 제네릭 클래스 선언 제네릭 클래스를 선언하는 방법은 클래스 이름 뒤에 을 붙이면 됩니다. 이렇게 하면 객체가 생성될 때 안에 쓰는 형이 T를 대체하게 됩니다. public class MyGenericClass { public T x; public T method(T p) { ... } } 여기서 T는 일반화된 타입 매개변수입니다. float, int, double, string 등 어떤 타입이라도 될 수 있습니다. 클래스를 위와 같이 선.. 2023. 3. 27.
Part3. C# 실력 다지기(1. 제네릭 메소드 이해하기) 오늘은 C#에서 제네릭 메서드에 대해 포스팅하려고 합니다. 제네릭 메서드는 다양한 데이터 타입을 사용할 수 있게 해 주어 코드의 재사용성을 높여주는 훌륭한 기능입니다. 이 글을 통해 제네릭 메서드의 개념을 배우고 예제 코드를 통해 실습해 봅시다. 제네릭 메서드란? 제네릭 메서드는 메서드를 선언할 때 일반화된 데이터 타입을 사용하여, 호출 시 실제 데이터 타입을 지정할 수 있는 메소드입니다. 이렇게 함으로써, 다양한 데이터 타입을 처리할 수 있는 하나의 메소드를 작성할 수 있습니다. 제네릭 메소드 선언 제네릭 메소드를 선언하는 방법은 간단합니다. 메소드 이름 앞에 꺾쇠괄호()와 일반화된 타입 매개변수를 추가합니다. 예를 들어, 아래와 같이 선언할 수 있습니다. public void MyGenericMeth.. 2023. 3. 15.
Part2. C# 기초 다지기(14. params 키워드) C#에서 메서드는 다양한 인수를 처리할 수 있는 기능을 제공합니다. 그러나 일반적으로 메서드에서 처리해야 할 인수의 개수를 예측하기 어려운 경우가 많습니다. 이런 상황에서 params 키워드를 사용하면 메서드가 임의 개수의 인수를 처리할 수 있도록 만들어 줍니다. 이번 포스팅에서는 params 키워드의 개념과 사용 방법에 대해 정리했습니다. params 키워드 params 키워드는 메서드에서 가변 인자 목록을 처리할 때 사용됩니다. 이 키워드를 이용하면 메서드가 임의 개수의 인수를 허용하도록 만들 수 있습니다. 즉, 메서드 호출 시 인수의 개수를 동적으로 결정할 수 있습니다. params 키워드는 다음과 같은 형식으로 사용됩니다. public void Method(params TypeName[] para.. 2023. 3. 11.
[C# Winform] 로그인 창 만들기 이번 포스팅에서는 로그인창을 만드는 예제를 구현해 보겠습니다. 폼 디자인 컨트롤들을 다음과 같이 배치합니다. 이때 필요한 컨트롤들은 Label, TextBox, Button 컨트롤입니다. 속성은 다음과 같이 설정합니다. // 컨트롤 속성 설정 // 1. Form // - Text : Login // 2. Label // - Text : ID // - TabIndex : 0 // 3. TextBox // - (Name) : txtID // - TabIndex : 1 // 4. Label // - Text : Password // - TabIndex : 2 // 5. TextBox // - (Name) : txtPW // - TabIndex : 3 // - PasswordChar : * // 6. Butto.. 2023. 3. 9.
C++ 중급(동적 메모리 사용하기) C++에서 실행 시간에 필요한 메모리를 할당하고 해제하는 동적 메모리를 다루는 것은 매우 중요한 부분입니다. 동적메모리를 사용하기 위해서는 new와 delete 연산자를 사용합니다. 그러나 이러한 연산자를 잘못 사용하면 메모리 누수(memory leak)나 더블 프리(double free)와 같은 오류가 발생할 수 있습니다. 이를 해결하기 위해 스마트 포인터를 사용하면 동적 메모리 관리를 보다 안전하고 편리하게 할 수 있습니다. 스마트 포인터는 객체의 생명주기를 추적하고, 메모리를 자동으로 해제해 주는 기능을 제공합니다. 이번 글에서는 C++에서 동적 메모리를 다루는 방법과 함께, 이러한 기술들을 사용하여 안전하고 효율적인 메모리 관리를 수행하는 방법에 대해 알아보겠습니다. 동적 메모리 할당과 해제 동적.. 2023. 3. 8.
[Design Pattern] Chain of Responsibility Chain of Responsibility 패턴이란? Chain of Responsibility 패턴은 객체의 처리를 연속적으로 연결된 처리기(Handler) 객체들로 전달하고, 이를 통해 요청을 처리하는 패턴입니다. 즉, 객체가 어떤 처리를 해야 할 때 그 처리를 담당하는 객체를 직접 호출하는 것이 아니라, 요청을 받은 객체가 체인 안에서 다음 객체에게 요청을 전달하는 방식으로 처리합니다. 또한, 처리기 객체들을 동적으로 추가하거나 삭제할 수 있어서 처리기 객체를 추가하거나 석제 하는 것만으로도 프로그램의 동작을 변경할 수 있습니다. Chain of Responsibility 패턴 구성 요소 이 패턴은 일반적으로 다음과 같은 구성 요소로 이루어져 있습니다. Handler 인터페이스 또는 추상 클래스 :.. 2023. 3. 6.