26. 다음 설명에 가장 적절한 설계 원칙은?
단위 테스트를 수행할 때 테스트 대상 클래스를 변경하지 않고도 대상 클래스의 환경을 테스트가 용이하도록 통제 가능한 환경으로 변경할 수 있는 설계가 되어야 한다.
|
① SRP(Single Responsibility Principle)
② OCP(Open Closed Principle)
③ DIP(Dependency Inversion Principle)
④ LSP(Liskov Substitution Principle)
▣ SOLID 원칙
두문자
|
약어
|
설명
|
S
|
SRP
|
|
O
|
OCP
|
|
L
|
LSP
|
|
I
|
ISP
|
|
D
|
DIP
|
|
● OCP의 다른 관점
- 클래스를 변경하지 않고도(closed) 대상 클래스의 환경을 변경(Open)할 수 있는 설계가 되어야 함
● 단위 테스트에서 OCP
- 단위테스트는 빠른 시간에 자주 테스트해야 하므로 테스트 대상 기능이 사용되는 실제 외부의 서비스를 횽내내는 가짜 객체를 만들어 테스트의 효율성을 높여야 함
- 실제 서비스에 사용할 객체를 그대로 테스트를 하면 변경이 생길 위험이 있으므로 실제 데이터베이스 기능을대체하는 가짜 객체를 만들어야 함
정답 : ②
27. 다음 상황에 적용하기에 가장 적절한 디자인 패턴은?
· 장기 게임을 하는 프로그램에서 사용자의 선택에 맞추어서 특정 루틴의 레벨을 간단하게 교체할 수도 있다.
· 메모리가 적은 환경에서는 속도는 느리지만 메모리를 절약하는 알고리즘을 사용하고, 메모리가 많은 환경에서는 속도는 빠르지만 메모리를 많이 사용하는 알고리즘을 사용한다. · 스프레드시트 소프트웨어의 디버그 판에서 복잡한 계산을 실행할 때, ‘버그가 있을지도 모르는 고속의 알고리즘’과 ‘저속이지만 확실한 계산을 실행하는 알고리즘’을 준비해서 전자의 검산을 후자로 실행시킨다. |
① strategy 패턴 ② observer 패턴
③ command 패턴 ④ decorator 패턴
▣ Strategy 패턴
- 알고리즘을 구현한 부분이 모두 교환 가능하도록 함
- 알고리즘(전략, 작전, 책략)을 교체해서 동일한 문제를 다른 방법으로 해결하는 패턴
● 실무적용
1) ConcreteStrategy 변경 용이
- 예전의 알고리즘과 개량한 알고리즘의 속도를 비교하고 싶은 경우, 간단히 교체해서 테스트할 수 있다.
- 장기 게임에서 사용자의 선택에 따라 사고 루틴의 레벨을 교체하는 것도 간단하게 실행할 수 있다
2) 실행 중 교체 가능
- 메모리가 적은 환경에서는 Slow But Less Memory Strategy 를 사용하고, 메모리가 충분한 환경에서는 Fast But Memoey Strategy 를 사용한다.
정답 : ①
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥
'정보시스템 감리 기출해설 > 소프트웨어공학 해설' 카테고리의 다른 글
(제 22회) 소프트웨어 공학 / (28)~(29) 해설 (5) | 2024.11.10 |
---|---|
(제 22회) 소프트웨어 공학 / (30)~(31) 해설 (0) | 2024.11.10 |
(제 23회) 소프트웨어 공학 / (48)~(50) 해설 (1) | 2024.09.23 |
(제 23회) 소프트웨어 공학 / (46)~(47) 해설 (0) | 2024.09.22 |
(제 23회) 소프트웨어 공학 / (44)~(45) 해설 (0) | 2024.09.21 |