반응형
2022년 소공 기출문제를 정리 합니다
Agenda
1. Refactoring 기법
2. Java code error (30번 문제)
3. TC coverage 계산(33번 문제)
4. 아키텍처 스타일 (32번 문제)
5. 아티텍처 평가 - CBAM, ATAM (36번 문제)
6. Spring - 모듈간 상호의존 관계 (39번 문제)
7. Chidamber, Kemerer의 객체지향 척도 - LCOM, WMC, RFC (40번 문제)
1. Refactoring 기법
- Encapsulate 기법 : 캡슐화 기법
2. Java code error (30번 문제)
아래 코드의 실행 결과
import java.util.*;
public class Search {
public static int search(List<Integer>list, int k) {
int left = 0, right = list.size() -1, result = -1;
while (left <= right) {
int mid = left + ((right - left) / 2);
System.out.println("mid=" + mid+", left=" + left+",right=" + right);
//2) list로 1,2,3,4받고, k=3을 받으면, right=3이되고, int mid는 1.5인데, int로 1임
//6) right=3, left=2 으로 변경, mid=2로 변경
if (list.get(mid) > k) { // 3) (mid=1 > 3) false 임으로 -> 4)번으로 이동
right = mid - 1;
System.out.println("찾으려는 k 보다 list(mid) 값이 더 큼, right값 변경, right ="+right);
} else if(list.get(mid) == k) {
result = mid;
right = mid -1;
System.out.println("k 값을 찾았음, right값 변경, right="+right);
}else {
left = mid +1; // 4) mid=1 임으로, left=2로 변경됨
System.out.println("찾으려는 k 보다 list(mid) 값이 작음, left를 mid+1로 변경, left ="+ left);
} // 5) 다시 while으로 진행
}
return result;
}
public static void main(String[] args) {
Integer[] intArr = {1,2,3,4};
List<Integer>list = Arrays.asList(intArr);
System.out.println(search(list,3)); // 1) search함수를 호출함, value= list, k는 3을 할당함
}
}
실행결과
1,2,3,4
3
mid=1, left=0,right=3
찾으려는 k 보다 list(mid) 값이 작음, left를 mid+1로 변경, left =2
mid=2, left=2,right=3
k 값을 찾았음, right값 변경, right=1
2
3. TC coverage 계산(33번 문제)
white box test coverage 계산하기
위 설명 자료) - 아래 영상 여러번 스터디 필요
https://www.youtube.com/watch?v=K59d8XduE28
4. 아키텍처 스타일 (32번 문제)
5. 아티텍처 평가 - CBAM, ATAM (36번 문제)
6. Spring - 모듈간 상호의존 관계 (39번 문제)
7. Chidamber, Kemerer의 객체지향 척도 - LCOM, WMC, RFC (40번 문제)
반응형
'- 배움이 있는 삶 > - 소프트웨어 공학' 카테고리의 다른 글
2021년 기출문제-소공(ing) (11) | 2024.11.04 |
---|---|
2020년 기출문제 - 소공 정리(디자인패턴 다시 공부) (2) | 2024.10.16 |
소공-기본과정 정리 (3) | 2024.10.02 |