소프트웨어 공학
1. 팩토리 메소드 패턴이란?
2. TDD에 대해 설명
테스트를 먼저 만들고 테스트를 통과하기 위한 것을 짜는 것 즉, 만드는 과정에서 우선 테스트를 작성하고 그걸 통과하는 코드를 만들고를 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것이다.
3. 리팩토링이란?
4. 싱글톤 패턴이란?
5. 개발할때 무엇을 고민하는지?
6. unit test란 무엇이고 하는 목적은?
7. 디자인 패턴을 쓰는 이유?
8. 데코레이터 패턴이란?
언제 사용하는가?
- 객체의 타입과 호출 가능한 메소드를 그대로 유지하면서 객체에 새로운 책임을 추가할 때 사용한다.
- 탈부착 가능한 책임을 정의할 때 사용한다.
- 상속을 통해 서브클래스를 계속 만드는 방법이 비효율적일 때 사용한다.
- 특히 조합되는 경우의 수가 많으면 서브클래스 수가 폭발적으로 늘어날 수 있다.
데코레이터랑 프록시의 차이
Decorator 는
a 객체의 doAction 이 “hello” 를 출력하는 것이라면 , 데코레이터 역할의 b 객체의 doAction 에서는 a 객체의 doAction 을 호출하여 “hello” 를 출력하는 동시에 그 위 아래로 “****” 이런것을 추가적으로 처리해 주는 것이다. 즉 주요 기능에 무엇인가능력을 부가해서 추가해주는것이 의도이다. 어떤 메소드의 시작이나 끝에 로깅이나 트랙잭션을 추가해 주는 것 또한 데코레이터라 할 수 있다.
Proxy 는
a 객체의 doAction이 “hello” 를 현재 로컬에 출력하는 것이라면 , Proxy 역할의 b 객체의 doAction 는 “hello” 를 Remote 컴퓨터로 보내서 출력해주는 역할을 한다. 즉 구현된 내용에 부가 기능을 추가해 주려는게 아니라, 그 주요기능을 다양한 방식으로 컨트롤 해주는 역할이다. 외부로 보낸다든지, lazy initailization 한다든지, 캐쉬된 것을 사용한다든지~