개인적인 공부를 위해 작성되었습니다. 다른 사람이 보았을 때 도움이 되지않을 수 있습니다.
IT위키를 참고하여 작성하였습니다.
문제 출처 : https://newbt.kr
3. 다음은 어떤 UML 다이어그램에 관한 예시이다. 어떤 종류의 다이어그램인가?
정답 : 패키지 다이어그램
오답원인 : 암기부족
- class diagram
클래스 명, 멤버, 메소드를 작성한다는 특징이 있음. - package diagram
폴더 형태로 작성한다는 특징이 있음. - activity diagram
시작노드, 종료노드, flow, 액티비티(사각형), 분기문으로 구성되어 있음. - usecase diagram
액터, (시스템), 유스케이스로 구성되어 있음. - sequence diagram
액터, 클래스, life line 으로 구성되어 있음. 액터와 클래스, 클래스와 클래스의 상호작용을 시간의 흐름에 따라서 볼 수 있다는 특징이 있음. - communication diagram
클래스 간의 상호작용을 볼 수 있다는 특징이 있음. 쉽게 생각해서 시퀀스 다이어그램을 축약해놓은 형태라고 생각하자. 시퀀스 다이어그램에서는 메세지의 전달순서를 시간에 흐름을 따라 볼 수 있지만 커뮤니케이션 다이어그램은 시간축이 없다. 메세지 앞에 순서를 기입하여 파악한다.
4. 데이터베이스의 회복(Recovery)기법 중 하나로 Rollback 시 redo 와 undo를 모두 실행되는 트랜잭션 처리방법이다. 트랜잭션 수행중 갱신 결과를 DB에 바로 반영하는 기법은 무엇인가?
정답
immediate update
오답원인 : DB 장애 회복기법에 대해 공부를 안했다.
- 로그 기반 회복기법
- 로그 파일 : 트랜잭션을 반영한 데이터를 저장한 파일. 하드디스크에 저장되므로 전원이 내려가도 사라지지않고 존재함.
- Redo : 장애 발생시 트랜잭션 재실행. 시작지점이 존재하고 commit이 존재할 때 사용됨. 종료지점이 명확하기 때문에, 변경사항을 로그 파일에 기록하였다가 commit 시점에 로그파일을 db에 반영하기 되기 때문.
- Undo : 장애 발생시 변경사항을 취소하여 복구함. 시작지점이 존재하고 commit이 없을 때 사용됨. 트랜잭션의 종료지점을 알 수 없기 때문에 변경사항을 그때 그때 반영함. 대신 장애 발생 시 로그파일을 보고 db를 트랜잭션 반영 이전으로 되돌린다.
- diferred update 회복기법
commit 시점에 로그파일을 DB에 반영하는 방법을 말한다. 장애 발생시 반영된 것이 없으므로 회복할 사항이 없다는 장점이 있음. - immediate update 회복기법
트랜잭션의 부분 완료 결과를 DB에 반영할 때 사용되는 회복기법. 장애 발생시 원자성을 보장하지 않으므로(트랜잭션 실행 중간 상태이므로) Undo 함.
- 로그 파일 : 트랜잭션을 반영한 데이터를 저장한 파일. 하드디스크에 저장되므로 전원이 내려가도 사라지지않고 존재함.
- check point 기반 회복기법
장애 발생시
check point 시점 이전에 commit된 트랜잭션은 회복대상에서 제외.(DB에 그대로 반영한다는 의미)
check point 시점 이후에 commit 된 트랜잭션은 Redo 대상.
check point 시험 이후에 commit 되지 않은 트랜잭션은 Undo 대상.
회복의 기준은 check point 이므로 commit 까지 정상적으로 수행되더라도 check point 이후라면 회복을 진행한다. 이유는 모르겠음. - shadow paging recovery
트랜잭션 시작 지점에 하드디스크에 shadow page table 생성. shadow page table은 current page table 의 백업본이다.
트랜잭션이 정상적으로 수행되면 shadow page table 삭제한다.
장애 발생시 current page table 에 shadow page table을 덮어 씌운다. - media recovery
DB 가 저장되는 비휘발성 저장장치(HDD 등)이 손상될 경우를 대비하여 복구하는 방법을 말한다.
미러링, RAID와 같이 별도의 저장장치에 저장한다.
14. 테스트 오라클 중 특정한 몇 개의 입력값에 대해서만 기대한 결과를 제공해주는 오라클은 무엇인가?
정답
sampling oracle
오답원인 : 테스트 오라클 개념을 모름
oracle : 신탁, 예언
Test oracle : 테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 소프트웨어 테스트 기법·활동
쉽게 말해서 테스트의 수행결과를 미리 정해놓고(예언해 놓고) 테스팅을 한다.
True oracle : 전수 테스트가 가능할 경우, 모든 테스트케이스에 대하여 기대한 결과가 나오는지 확인한다.
Sampling oracle : 전수 테스트가 불가능할 경우, 몇몇 특정 테스트케이스에 대하여 원하는 결과가 나오는지 확인한다. (ex 경계값, 구간별 값)
Heuristic oracle: 샘플링 오라클에 휴리스틱 입력값 처리한 방법. 휴리스틱 케이스는 확률, 직관에 의한 결정 등이 있다고 한다.
Consistent oracle : (회귀테스트 등)프로그램이 수정된 후에도 결과가 변하지 않는지 검증한다.