디자인 패턴
- 건물을 하나 만들 때도 건축하는 방법이 여럿 존재한다.
- 정해진 땅에 어떻게 건물을 쌓아 올릴 것인가. 각 회사마다 잘하는 시공방법이 있을 것이다.
- 소프트웨어도 마찬가지로 소프트웨어를 어떻게 만들 것인가에 대한 것도 이야기 한다.
- 소프트웨어 디자인 패턴을 학습하여 어떻게 시스템을 구축할 수 있을지
- 어떻게하면 scalable, 확장가능하게 웹/앱/소스코드를 제작해나갈 것인가?
MVC 패턴
Model, View, Controller로 나누어 각각 목표에 맞게 관심사를 나누는 것
- Model: 데이터의 구조를 정의
- View: 데이터를 보여주는 화면에 대한 정의(page, widget)
- Controller : 데이터를 동작하게 하고 상호작용하는 기능에 대한 정의
Singleton 패턴
- 하나의 클래스를 여러번 생성해도 하나의 인스턴스만을 사용하는 것
- 새로운 객체(인스턴스)를 계속 생성해도 똑같은 애만 사용하는 것
what's next?