C# WPF/C# Basic
7. 이벤트
7. 이벤트
2025.09.301. 대리자 vs 이벤트 선언 방법: 이벤트는 대리자를 event 키워드로 수식해서 만든다.더보기A. 이벤트는 대리자와 같은 기반을 가진 개념으로, 대리자를 이해한 후 이벤트를 학습해야 한다. B. 이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다.// 대리자 선언delegate void Callback(string message);class Button{ public Callback? MyHandler; // 대리자 필드 public event Callback? Click_Signal; // 이벤트로 변경 (외부에서 Invoke 금지) public void RaiseClick(string message) { Click_Signal?..
6. 대리자(2)
6. 대리자(2)
2025.09.301. 참고 자료더보기A. 참고 링크MSDN B. 학습순서Callback 용어 개념 Delegate 용어 개념대리자를 선언하고 사용하는 방법대리자를 사용하는 이유일반화 대리자를 사용하는 방법Multicast Delegete (대리차 체인)대리자에서 이벤트로 개념 확장 C. 대리자 사용 목적메서드를 변수처럼 사용하기 위해이벤트 처리코드의 결합도 낮춤 (느슨한 결합, Loosely Coupled)여러 개의 메서드를 하나의 대리자에 연결, 한 번에 실행 가능LINQ, 람다 표현식에서의 활용메서드 호출을 런타임에 동적으로 변경할 때비동기 호출 (BeginInvoke/EndInvoke) 2. 대리자 사용법더보기6. 대리자(1) 6. 대리자(1)1. 대리자를 선언하는 C# 문법: 대리자 학습 관점은, 함수를 변수..
6. 대리자(1)
6. 대리자(1)
2025.09.301. 대리자를 선언하는 C# 문법: 대리자 학습 관점은, 함수를 변수처럼 사용하려는 기법 이라는 것더보기[한정자] delegate 반환_형식 대리자_이름(매개변수-목록);// 예시public delegate void MyDelegate(string message);public :접근 제한자(한정자) delegate :대리자 선언 키워드 void :반환 형식 MyDelegate :대리자 이름 ..
5.5 SOLID - DIP
5.5 SOLID - DIP
2025.09.30
5.4 SOLID - ISP
5.4 SOLID - ISP
2025.09.301. SOLID 원칙더보기1. SOLID SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙객체지향 개념은 추상화 → 캡슐화 → 다형성 → 상속/인터페이스 → SOLID 원칙 → 디자인 패턴 → 아치텍처 패턴 등이 서로 연결되어 있습니다. 2. 인터페이스 분리 원칙(ISP, Interface Segregation Principle)더보기Many client-speci..
5.3 SOLID - LSP
5.3 SOLID - LSP
2025.09.301. SOLID 원칙더보기1. SOLID SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙객체지향 개념은 추상화 → 캡슐화 → 다형성 → 상속/인터페이스 → SOLID 원칙 → 디자인 패턴 → 아치텍처 패턴 등이 서로 연결되어 있습니다.2. 리스코프 치환 원칙(LSP, Liskov Substitution Principle)더보기A. 개념 Functions that ..
5.2 SOLID - OCP
5.2 SOLID - OCP
2025.09.301. SOLID 원칙더보기1. SOLID SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙객체지향 개념은 추상화 → 캡슐화 → 다형성 → 상속/인터페이스 → SOLID 원칙 → 디자인 패턴 → 아치텍처 패턴 등이 서로 연결되어 있습니다. 2. 개방-폐쇄 원칙 (OCP, Open-Closed Principle)더보기A. 개념 "Software entities ... ..
5.1 SOLID - SRP
5.1 SOLID - SRP
2025.09.301. SOLID 개요더보기객체 지향 프로그래밍에는 4가지 객체지향의 특징과, 5가지 객체지향의 원칙이 존재합니다. A. SOLID 원칙이란?: 객체 지향 프로그래밍 설계시 준수해야 할 5가지의 원칙을 의미합니다. SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙 B. SOLID는 처음 한번에 나온 것이 아니라, 여러 학자들의 연구와 글에서 유래하여 정리된 원칙입..
4.4 인터페이스
4.4 인터페이스
2025.09.30Depend upon abstractions, not concretions- 상세한 구현에 의존하지 말고, 공통된 개념(추상화)에 의존해라.) 더보기1. 의존성 문제가 있는 소스코드using System;using System.Collections.Generic;// 추상화된 인터페이스 없이 구체 클래스 직접 사용class Cat{ public void Speak() { Console.WriteLine("Meow"); }}class Dog{ public void Speak() { Console.WriteLine("Bark"); }}class Sheep{ public void Speak() { Console.WriteLine..
4.3 의존성 해결 - 추상화
4.3 의존성 해결 - 추상화
2025.09.30Depend upon abstractions, not concretions- 상세한 구현에 의존하지 말고, 공통된 개념(추상화)에 의존해라.) 1. 학습 목표: 학습 목표는, 의존성 문제 해결을 위한 "추상화 기술" 이해입니다. 이를 위한 단계별 학습 순서를 확인합니다.더보기A. 학습 목표Step 1. 추상 개념 이해Step 2. 추상화 구현 이해Step 3. 추상화된 추상 클래스와 인터페이스 적용하여 구현 B. 의존성 문제 해결 방법 Q. 클래스1 ↔ 클래스2 클래스와 클래스 간의 의존 관계를 어떻게 제거할 수 있을까요?A. 클래스1 ↔ 인터페이스 인터페이스 ↔ 클래스2 구조로 의존하게 합니다. 인터페이스는 클래스1이 추상화된 형태입니다..
4.2 의존성 문제
4.2 의존성 문제
2025.09.30Depend upon abstractions, not concretions- 상세한 구현에 의존하지 말고, 공통된 개념(추상화)에 의존해라. - "The Dependency Inversion Principle” (Robert C. Martin, C++ Report, 1996) 1. 학습 목표: 의존성 이해와 의존성 문제 파악을 위한 단계별 학습 순서더보기Step 1. Dependency, 의존성이라는 용어와 개념 이해의존(≒ 의지, 종속, 객체 생성 책임)에 대한 개념 이미지를 머리속에 그리기예) 간단한 상속 관계를 기반으로 "의존" 이라는 단어의 개념을 이해하기Step 2.객체 지향 프로그래밍(OOP)의 의존된 구조에서"의존성" 개념을 소스 코드로 이해하기Step 3.의존된 구조의 문제 파악하기 S..
4.1 추상화
4.1 추상화
2025.09.301. "추상": 단어의 의미더보기A. 목표프로그래밍에서의 "추상화" 개념을 배우기 전에, 일상생활에서 사용되는 "추상"이라는 단어의 의미를 먼저 이해합니다. 일상 속 예시와 미술에서의 추상을 살펴보며, "추상"의 뜻과 "구체"의 대비를 명확히 알아봅니다. B. 예시 1) 추상 ↔ 구체“네 말은 너무 추상적이야”라는 표현이 있습니다. 이는, 내용이 너무 막연하고 실체가 없다는 뜻입니다.이와 반대로 “구체적”이라는 말은, 실제 사례, 수치, 경험 등을 들어 명확하게 설명하는 경우를 의미합니다. 2) 미술에는 추상화 라는 기법이 있습니다.현실 세계의 사물을 그대로 재현하지 않고 형태, 색, 선, 질감을 단순화하거나 변형하여 감정, 개념을 표현하는 기법입니다.반대로, 현실을 실제처럼 묘사하는 화풍은 “사실..