정보시스템 감리 기출문제해설/소프트웨어공학 해설

(제 22회) 소프트웨어 공학 / (40)~(41) 해설

아이티신비 2024. 11. 18. 09:00

40. 소프트웨어 버전 관리에 대한 다음 설명 중 가장 적절하지 않은 것은?

 

① Git과 Subversion 모두 commit 명령으로 새로운 버전을 생성할 수 있다.

② 분산 버전 관리 시스템인 Git은 버전 저장소에서 컴포넌트 버전 간 차이인 델타를 이용하여 공간을 절약한다.

③ Subversion은 하나의 마스터 저장소에 모든 컴포넌트의 버전을 유지하는 중앙집중 버전 관리 시스템 이다.

④ 베이스라인은 시스템을 구성하는 컴포넌트 버전들의 집합을 의미한다. 소프트웨어 개발 과정 중 특정 시점이나 목적을 위하여 만들어진 산출물의 집합 이다.

 

▣ 델타(deltas) 를 사용한 저장소 관리

  • 버번 관리 시스템이 처음 개발되었을 때, 저장소 관리는 가장 중요한 기능중의 하나였음
  • 디스크 공간의 값이 비쌌으므로, 컴포넌트의 여러 복사본들에 의해 사용되는 디스크 공간을 최소화하는 것이 중요했음
  • 각각의 버전의 완전한 내용을 유지하는 것 대신, 버전 사이의 차이(delta)들의 목록을 저장함
  • 공간을 아낄 수 있으나 모든 delta를 적용하는데 시간이 많이 소요됨
  • Git 은 delta 를 사용하지 않고 저장된 파일들 그리고 연관된 메타 저옵에 대해 표준 압축 알고리즘(zlib) 을 적용함(delta 를 포함한 packfile 개념 사용)

 

정답 : ②

 

 

 

41. 문제를 일으킬 가능성 때문에 리팩토링(refactoring)이 필요한 코드는 ‘악취(bad smell)’가 있다고 표현 한다. 다음 설명에 가장 적절한 코드 악취(bad smell)는?

· 변경을 할 때마다 많은 클래스를 조금씩 수정해야 한다.
· 변경해야 할 것이 여러 군데 널려 있기 때문에 찾기도 어렵고 변경해야 할 중요한 사항을 놓치기도 쉽다.

 

① 기능에 대한 욕심(feature envy)

② 데이터 덩어리(data clump)

③ 산탄총 수술(shotgun surgery)

④ 확산적 변경(divergent change)

 

▣ Code smell 종류 및 해결방법

 

정답 : ③

 

 



 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥