C# WPF/History
3.8 SOLID - DIP
3.8 SOLID - DIP
2025.05.04
3.7. SOLID - ISP
3.7. SOLID - ISP
2025.05.041. 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..
3.6. SOLID - LSP
3.6. SOLID - LSP
2025.05.041. 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..
3.5. SOLID - OCP
3.5. SOLID - OCP
2025.05.041. 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..
3.4. SOLID - SRP
3.4. SOLID - SRP
2025.05.041. 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# ..
3.3 추상클래스, 인터페이스
3.3 추상클래스, 인터페이스
2025.05.04Depend upon abstractions, not concretions- 상세한 구현에 의존하지 말고, 공통된 개념(추상화)에 의존해라.)
3.2 의존성 문제 해법 - 추상화
3.2 의존성 문제 해법 - 추상화
2025.05.04Depend upon abstractions, not concretions 1️⃣ 학습 목표: 학습 목표는, 의존성 문제 해결을 위한 "추상화 기술" 이해입니다. 이를 위한 단계별 학습 순서를 확인합니다.더보기✔️ 1. 학습 목표Step 1. 추상 개념 이해Step 2.추상화 구현 이해Step 3.추상화된 추상 클래스와 인터페이스 적용하여 구현 ✔️ 2. 의존성 해결 방법 Q. 클래스 ↔ 클래스 클래스와 클래스 간의 의존 관계를 어떻게 제거할 수 있을까요?A. 클래스 ↔ 인터페이스 인터페이스 ↔ 클래스 구조로 의존하게 합니다. 인터페이스는 클래스가 추상화된 형태입니다. 인터페이스를 '의존성'이라 하고, 인터페이스에 의존하는 로직..
3.1 의존성 문제
3.1 의존성 문제
2025.05.04Depend upon abstractions, not concretions 1️⃣ 학습 목표: 학습 목표는 "1)의존성 이해"와, "2)의존성 문제 파악"입니다. 이를 위한 단계별 학습 순서를 확인합니다.더보기✔️ 1. 학습 목표Step 1. Dependency, 의존성이라는 용어와 개념 이해의존(의지, 종속, 객체 생성 책임)에 대한 개념 이미지를 머리속에 그리기간단한 상속 관계를 기반으로 "의존" 이라는 개념을 이해하기Step 2.객체 지향 프로그래밍(OOP)의 의존된 구조에서"의존성" 개념을 코드로 이해하기Step 3.의존된 구조의 문제 파악하기 ✔️ 2. 의존 관계와 집합 이미지 ✔️ 3. 의존 관계와 의존 역전 관계 2️⃣ 의존성 이해더보기 ✔️ 1. 용어 Dependency: 의존, 의지..
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 로 수식하면 된..
5. 인터페이스와 추상 클래스
5. 인터페이스와 추상 클래스
2025.04.02
2.3 캡슐화 - 프로퍼티
2.3 캡슐화 - 프로퍼티
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..