본문 바로가기

정보처리기사 필기

[정보처리기사 필기 강의 2주차] 2강 소프트웨어개발 메타코드

2강으로 소프트웨어 개발을 강의를 합니다.

통합구현(모듈 구현, 통합 구현 관리), 제품 소프트웨어 패키징,애플리케이션 테스트 관리, 인터페이스 구현(api) 수업을 하는데, 애플리케이션 테스트를 하고 테스가 여러종류인 것을 알 수있었고, 테스트를 해서 복잡한 모듈인지 아닌지를 지표로 확인하고 복잡도?가 10이상이면 다시 구현해야한다는 부분이 기억에 남습니다. 그리고 인터페이스 구현은 api 다른 프로그램이나 서비스와 데이터를 주고받을 수 있도록 만들어 질 수있도록 하는 도구 부분도 흥미로웠습니다. 

 

  • 분석: 기존 소프트웨어를 잘 이해하고 어떤 부분을 개선하거나 바꿔야 할지 파악하는 과정이에요. 소프트웨어가 어떻게 작동하는지, 문제점은 무엇인지 분석.
  • 재구조: 분석을 통해 찾은 문제를 해결하기 위해 소프트웨어의 구조를 바꾸는 과정이에요. 코드를 더 효율적으로 바꾸거나, 불필요한 부분을 제거하는 작업이 포함.
  • 역공학: 기존의 소프트웨어를 다시 분석하여, 그 소프트웨어의 설계나 기능을 파악하고, 이를 바탕으로 새로운 시스템을 만들기 위한 기초 작업을 하는 것. 보통 소스 코드가 없는 경우, 프로그램을 동작 분석해서 원리를 이해하려고함.(어떤 회사에서 오래된 소프트웨어를 사용하고 있는데, 그 소프트웨어의 소스 코드가 없고 개발자가 이미 퇴사한 상태. 그래서 이 소프트웨어가 어떻게 작동하는지 알아야만 수정하거나 업데이트를 할 수 있음)
  • 이식: 기존 소프트웨어를 새로운 환경이나 플랫폼에 맞게 수정하는 작업이에요. 예를 들어, 윈도우용 소프트웨어를 안드로이드나 다른 운영 체제에서 사용할 수 있도록 바꾸는 작업.
  •  

 

테스트 관리에는 

애플리케이션 테스트 케이스 설계 • 애플리케이션 통합 테스트 • 애플리케이션 성능 개선이 있고 소프트 웨어 메뉴얼 작성에서 소프트웨어 공학, 소프트웨어 공학의 기본 우너칙, 공학적으로 잘된 소프트웨어의 설명에서 궁궁적으로 소프트웨어 품질및 생상성 향상으로 기본적으로 유지보수가 용이해야 합니다.

유지보수 용이한건? 저번시간에 얘기했듯이 모듈화가 잘 되어있어야 한다는 거고, 충분한 테스팅을 거쳐야 합니다. 테스팅은 어떻게해야하는걸까? 

애플리케이션 테스트 관리에서 

애플리케이션 테스트 케이스 설계 • 애플리케이션 통합 테스트 • 애플리케이션 성능 개선 테스팅 종류중에 경계값 분석이 있습니다.

경계값 분석이란? 

성적에서 가 중 양인 경계값인 60,69,70, 이런 경계값에 대해서 테스트를 해고 잘 반영 되는지 해야합니다.

그렇다면 101은? 이것역시 없는 숫자므로 경계값 분석 테스트로 해야하는 부분 입니다. 

 

 

 

삽입 정렬 알고리즘이란?

[첫번째 그림 기준]두번재 요소 5는 3과 비교했을때 크니 그대로 유지

[첫번째 그림 기준]세번째 요소 2는 첫번째 요소 3과 비교했을때 작으니 첫번재 요소에 삽입

[두번째 그림 기준]네번째 요소4를 첫번째 요소, 두번째 요소, 세번째 요소와 비교를 했을때 세번째 요소5와 비교했을때 4가 작으니 세번째에 삽입

[두번째 그림 기준] 다섯번째 요소 1을 첫번째와 2와 비교했을때 작으니 첫번째 요소에 삽입

 

버블정렬이란? 

[첫번째 그림 기준]첫번째요소 두번째 요소 비고, 두번째요소 세번째 요소 비교, 세번째요소 네번쨔 요소, 네번째 요소 다섯번째 요소 비교 : 그랬을경우 3과5, 5와2 비교에서 2가5보다 작으니 5가 두버째 요소로 이동 

[두번째 그림 기준]첫번째 요소 두번재 요소 비교 3과2비교로 2가 앞으로 이동 

[세번째 그림 기준]2와3비교 3과1비교 1 두번재 요소로 이동

[네번째 그림 기준]2와1비교 1앞으로

[네번째  그림 기준]1과2,2와3,3과4,4와5비교 잘정렬 되었음 끝!

 

이런 알고리즘을 처음 들을때 책으로만 보기엔 직관적으로 보기 어렵주만, 마우스포인터와 말로써 설명해주니 쉽게 이해가 가니 인강을 듣기 잘했다는 생각이 들었습니다.

 

메타코드 강의 바로가기: