다양한 라이브러리의 설계 원리를 배우는

디자인 패턴과 라이브러리 설계의기술

수강대상

다양한 상용 라이브러리의 설계 철학을 배우고 싶은 개발자
라이브러리 설계자

선수과정

기초 C++ 프로그래밍

강의환경

준비중입니다.

◼︎GUI에서 발생하는 이벤트를 처리할때는 java는 인터테이스 기반의 Listener를 사용합니다. 하지만 C#는 델리게이트를, C++의 MFC는 메세지맵을 QT는 signal/slot을, 아이폰은 타겟-액션 패턴을 활용합니다.

이처럼 GUI의 이벤트를 처리하는데에도 다양한 방식이 존재 하게 됩니다.

◼︎멀티 스레드 프로그래밍을 클래스로 래핑하는 데에도 전형적인 기술이 있습니다.

◼︎본 과정을 통해서

1. 컬렉션 클래스를 열거하는 반복자 기술(java style, C++ style)

2. GUI 윈도우를 클래스로 래핑하는 기술

3. GUI Event를 처리하는 디자인 기법

4. 발생된 이벤트를 여러 클래스로 전달하는 event chain 설계

5. 최상위 단일 클래스 기반 설계의 장단점.

6. 디버깅을 위한 라이브러리 지원기술

7. 그밖에 안드로이드 프레임워크, MFC, QT, C#, java, ACE, 아이폰 등의 언어와 라이브러리가 제공하는 다양한 설계 기법을 배우게 됩니다.

8. GoF's 디자인 패턴이 상용 라이브러리에서 실제 어떻게 적용되었는지를 배울수 있습니다.

  • Section1. 단일 부모 클래스 기반의 설계
    • Object Base collection
    • Reflection
    • Memory Management
  • Section2. GUI 클래스 설계
    • 인터페이스 기반의 event 처리(java)
    • MFC의 메세지 맵
    • QT의 signal/slot 방식
    • 아이폰의 타겟-액션 방식
    • event chain의 설계(chain of responsibility 패턴)
    • Composite Pattern을 활용한 자식-부모관계
  • Section3. Collection 클래스의 설계
    • 인터페이스 기반의 반복자
    • template 기반의 반복자
    • Visitor의 활용
    • Object 기반 컬렉션과 Template기반 컬렉션
  • Section4. 디버깅및 메모리 관리
    • RTTI의 지원 기술
    • 가비지 collector와 스마트 포인터
    • 메모리 누수 진단기술
  • Section5. 다양한 오픈소스및 상용 라이브러리의 설계 특징
    • MFC의 핵심 디자인 기술
    • QT의 핵심 디자인 기술
    • 안드로이드 프레임워크의 핵심 디자인 기술
    • 아이폰의 핵심 디자인 기술
    • 기타 라이브러리의 기술(STL, ACE, 바다등)
  • Section6. 분산 프로그래밍 환경의 설계기술
    • COM/CORBA/Android IPC 기술
    • Proxy-Stub 구조의 설계 기술
  • Section7. GOF의 디자인 패턴
    • 생성 패턴
    • 구조 패턴
    • 행위 패턴