1. 소프트웨어 설계
ㅇ 크고 복잡한 소프트웨어 시스템의 목적을 충족시키고자,
- 기본 구조 및 구현 프로그램을 고안,선택하여, 실현시키는 과정
ㅇ 소프트웨어 설계 과정
- 아키텍처 설계
- 데이터베이스 설계
- 서브시스템 설계
- 컴포넌트 설계
- 자료구조, 알고리즘 설계
2. 5가지 객체 지향 설계 원칙 (SOLID)
ㅇ 단일 책임 원칙 (Single Responsibility Principle)
ㅇ 개방 폐쇄의 원칙 (Open Closed Principle)
ㅇ 리스코프 교체의 원칙 (Liskov Substitution Principle)
ㅇ 인터페이스 분리의 원칙 (Interface Segregation Principle)
ㅇ 의존 관계 역전의 원칙 (Dependency Inversion Principle)
3. 디자인 패턴 (Design Pattern)
ㅇ 모든 프로그램 형식에, 일반적으로 적용 가능한,
- 자료 구조 및 프로그램 구조를 다루는 이론
ㅇ 주로,
- 소프트웨어 아키텍처 수준 보다 낮은 수준의 설계 문제에서,
- 자주 접하는 문제에 대해,
- 객체 간의 상호관계 등을 이용하여,
- 재사용 가능한 솔루션을 제공하기 위함
ㅇ 주요 종류
- 싱글톤 패턴
. 하나의 클래스에 오직 하나의 인스턴스 만 갖도록 하는 패턴
- 반복자 패턴
- 어댑터 패턴
- 데코레이터 패턴
- 팩토리 메소드 패턴
- 추상 팩토리 패턴
- 상태 패턴
- 옵서버 패턴