SW 전공
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
소프트웨어 아키텍처와 설계 원칙
원래 이론 →헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 결합도 | 설명 |
|---|---|
| 자료 | 필요한 단순 데이터만 매개변수로 전달 |
| 스탬프 | 구조체·레코드 전체를 전달하고 일부만 사용 |
| 제어 | 다른 모듈의 흐름을 정하는 제어값 전달 |
| 외부 | 외부 형식·장치·프로토콜에 공동 의존 |
| 공통 | 전역 데이터 영역을 공유 |
| 내용 | 다른 모듈 내부를 직접 참조·수정 |
대표 계산·예제
JAVA좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
interface DiscountPolicy {
int discount(int price);
}
class FixedDiscount implements DiscountPolicy {
public int discount(int price) { return 1000; }
}
class RateDiscount implements DiscountPolicy {
public int discount(int price) { return price / 10; }
}
class OrderService {
private final DiscountPolicy policy;
OrderService(DiscountPolicy policy) {
this.policy = policy;
}
int finalPrice(int price) {
return price - policy.discount(price);
}
}
OrderService는 할인 구체 구현이 아니라 추상 계약에 의존한다. 새로운 정책을 추가할 때 기존 가격 계산 흐름을 크게 바꾸지 않을 수 있다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.