C# WPF/History
12. 이벤트
12. 이벤트
2025.04.02이벤트는 대리자와 같은 개념으로, 대리자를 이해한 후 이벤트를 학습해야 한다.이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다. 이벤트가 시작되는 로직과, 이벤트에 영향을 받아 동작하는 로직을 구분하는것이 먼저다. 아래 예제는, 버튼이 눌려지면, 레이블에 문자열이 수정되는 구조를 구현한다고 가정하자.eg) [버튼 클릭 > 이벤트(대리자)] > 레이블 수정 1. 이벤트 선언 방법이벤트는 대리자를 event 한정자로 수식해서 만든다.[ event 키워드 ] [ 대리자 ] [ 이벤트이름 ]; 2. 이벤트 선언의 목적위 예제 구조에서 구현된 이벤트는, 이벤트를 형태의 선언이 목적이 아니다.레이블의 수정이 목적이다.시작은 Button 객체의 click 함수의 실행목적..
11. 대리자
11. 대리자
2025.04.021. 참고 자료더보기1. 참고 링크MSDN 2. 학습목표 - 3. 학습순서Callback 개념과 Delegate 용어대리자를 사용하는 이유Delegate를 선언하고 사용하는 방법일반화 대리자를 사용하는 방법Multicast Delegete (대리차 체인) 4. 대리자 사용 목적메서드를 변수처럼 사용하기 위해이벤트 처리메서드 호출을 런타임에 동적으로 변경할 때코드의 결합도 낮춤 (느슨한 결합, Loosely Coupled) 여러 개의 메서드를 하나의 대리자에 연결, 한 번에 실행 가능LINQ, 람다 표현식에서의 활용비동기 호출 (BeginInvoke/EndInvoke) 2. 대리자 사용법더보기1. 기본 문법// 반환형과 매개변수 목록을 포함한 선언// 함수 헤더에 delegate 로 수식하면 된..
10. SOLID - ISP
10. SOLID - ISP
2025.04.021. SOLID 원칙더보기1. SOLID OOP, 객체 지향 프로그래밍 설계의 기본 원칙 SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙 2. 인터페이스 분리 원칙(ISP, Interface Segregation Principle)더보기Many client-specific interfaces are better than one general-purpose inter..
9. SOLID - LSP
9. SOLID - LSP
2025.04.021. SOLID 원칙더보기1. SOLID OOP, 객체 지향 프로그래밍 설계의 기본 원칙 SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙2. 리스코프 치환 원칙(LSP, Liskov Substitution Principle)더보기Functions that use pointers or references to base classes must be able to use..
8. SOLID - OCP
8. SOLID - OCP
2025.04.021. SOLID 원칙더보기1. SOLID OOP, 객체 지향 프로그래밍 설계의 기본 원칙 SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙 2. 개방-폐쇄 원칙 (OCP, Open-Closed Principle)더보기1. 개념 "Software entities ... should be open for extension, but closed for modificatio..
7. SOLID - SRP
7. SOLID - SRP
2025.04.021. SOLID 원칙더보기1. SOLID OOP, 객체 지향 프로그래밍 설계의 기본 원칙 SOLID Eng.Kor.SRPSingle Responsibility Principle단일 책임 원칙OCPOpen-Closed Principle 개방-폐쇄 원칙 LSPLiskov Substitution Principle리스코프 치환 원칙 ISPInterface Segregation Principle 인터페이스 분리 원칙DIPDependency Inversion Principle의존성 역전 원칙 2. SOLID 학습 목적 DI, 의존성 주입을 정확하게 이해하고MVVM 패턴을 효과적으로 구현하기 위해서는객체 지향 프로그래밍 설계의 5대 원칙(SOILD)를 이해하고 적절히 적용해야 합니다. 3. WPF 학습방향 C# ..
6. SOLID - DIP
6. SOLID - DIP
2025.04.02Depend upon abstractions, not concretions 1. 참고 링크더보기https://youtu.be/DYmtue0k1cc?si=bFjlIxFXV_tUNa_a 2. 의존성(Dependency) 개념더보기1. "의존" 이란? - 依 의지할 의, 存 있을 존- 다른 것에 의지(依支)하여 존재(存在)함. 2. 상속 관계에서, "화살표 방향"과 "의존관계" 살펴보기 - 상속받은 자식 객체는, 부모 객체의 속성 없이 존재할 수 없다.- 하위 객체인 Programmer, Dancer, Dog, Iguana 등의 객체는, 상위 객체에 의존한다. - 화살표의 방향은 의존하고 있는 방향이다. 3. 객체의 의존 관계와, 의존성 주입(DI)를 활용한 의존 역전 구조 3. 의존성 관계 예..
5. 인터페이스와 추상 클래스
5. 인터페이스와 추상 클래스
2025.04.02
4. 캡슐화 - 프로퍼티
4. 캡슐화 - 프로퍼티
2025.04.011. 참고자료더보기1. 영상 링크 https://youtu.be/zgeCwYWzK-k?si=rJFngC_y71cOcVSm[C# 기초 강의] Ch 09. 프로퍼티 2. 용어 체크리스트 맴버, 필드: 프로퍼티의 실제 값프로퍼티: 객체의 상태 값 캡슐화, 접근제어자,어트리뷰트, 유효성 2. Member(멤버) vs Field(필드) vs Property(전통적 프로퍼티) vs Property(자동완성 프로퍼티)더보기1. Member(멤버) C/C++ 로 프로그래밍을 입문하는 경우C# Class 내부의 변수와 함수를 멤버라고 C++에서 사용하는 맴버라는 용어로 지칭하는 경우가 많다. 손쉬운 구분을 위해, 맴버는 클래스에 사용하고, 필드와 프로퍼티는 객체에 사용한다. 2. Field(필드) vs P..
3. 캡슐화 - 접근 제어자
3. 캡슐화 - 접근 제어자
2025.04.011. 목표 → OOP는 왜 등장했을까?더보기1. 목표 문제점 파악: 기존의 절차 지향 프로그래밍(POP)의 한계와 문제점을 파악해결책 이해: 객체 지향 프로그래밍(OOP)의 문제 해결 방법 이해 2. 용어 캡슐화(Encapsulation) - OOP의 주요 특성접근 제어자(Access Modifier) - C# 프로그래밍 문법 3. 참고 자료https://youtu.be/zgeCwYWzK-k?si=rJFngC_y71cOcVSm 2. - 절차지향 문제점 → 시나리오 2개더보기1. 어느 함수에서나 접근 가능한 공유 데이터 문제#include int score = 100; // 전역 변수 사용 → 모든 함수가 직접 접근 가능함 (❗ 절차지향의 문제점 1: 전역 변수 남용)void addBonus..
2. OOP - 추상화, 클래스, 객체
2. OOP - 추상화, 클래스, 객체
2025.04.011. 현실에서 "추상"→ "네 말은 너무 추상적이야"더보기1. 목표프로그래밍의 추상화 개념에 앞서, 현실에서 "추상"이라는 단어가 사용된 예시들을 살펴보면서 "추상화"의 용어를 이해해 봅니다. 2. 예시1) "네 말은 너무 추상적이야"위 문장의 반대말은, "구체적"입니다. 2) 미술에서 추상화 기법을 찾아봅시다.현실 세계의 형태, 색, 선, 질감을 >> 변형하거나 단순화하여 감정, 개념, 또는 본질을 표현하는 방식입니다.반대 의미는, 구체적인 형상을 "사실적"으로 그려내는 것입니다. 3) 현실에서 멀리서 다가오는 친구의 구분해 봅시다.여러 사람 중 친구를 구분할 수 있다면, 그 기준은 친구만이 가진 "특징, 특성"이 기준일 것입니다. 4) 눈을 최대한 감고, 희미하게 뜬 상태에서 옆사람을 바라봅시다..
1. 프로그래밍 학습 관점
1. 프로그래밍 학습 관점
2025.03.301. 목적 → "프로그래밍 언어"와 "개발 기술"은 프로그램을 만들기 위한 것입니다.더보기- 프로그래밍은 학생, 초보자, 신입를 고려한 교육과 학문의 영역이 아닙니다. "프로그래밍"은 '프로그램'을 만들기 위해 등장했습니다.그리고 좀 더 효율적으로 프로그램을 만들기 위해, 기술을 개선하고, 새로운 기술이 등장합니다. 여러분이 배워야 할 프로그래밍 기술은 "현장의 개발자"를 위한 참고자료 입니다.초보자를 위한 것이 아닙니다. 2. 을 만들어야 합니다.→ 이론 학습 >> 실습 >> 체득더보기- 프로그래밍 문법은, 실제 프로그램을 만드는 방법이 아닙니다. 영어 문법만 열심히 공부했다고 해서, 영어 소설을 쓰고, 영어 에세이를 쓰고, 영어 연설을 할 수 있을까요?혹시 가능하다면, 그건 우리가 한글..