본문 바로가기
정보처리기사

5.소프트웨어 개발

by Sunyoung95 2024. 2. 29.

정렬

선택정렬

  • queue를 이용하여 정렬 
  • 최솟값을 찾아서 해당 값과 위치 교체

버블정렬 

  • 인접한 데이터를 비교하면서 데이터의 위치를 바꾸어 정렬하는 방법
  • 첫번째 자료부터 비교하며 여러번의 교체가 발생 
  • 한번의 Pass 내에서 다수의 교체 발생 

삽입정렬

  • 두 번째 자료부터 시작하여 그 앞 (왼쪽)의 자료들과 비교하여 삽입할 위치를 지정한 후 자료를 뒤로 옮기고 지정한 자리에 자료를 삽입하여 정렬 

합병정렬 

  • 하나의 리스트를 두개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법

 

소프트웨어 비용 산정 기법

  • COCOMO : 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식 중 하나. (organic < semi-detached < embedded)
  • PUTNAM : 소프트웨어 개발 주기간 단계별로 요구할 인력의 분포를 가정하는 모형
    • Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
    • SLIM : Putnam 기법 모형을 기초로 개발된 자동화 추정 도구. 
  • FP (Function-Point) : 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정 

인터페이스 구현 검증도구

  • xUnit, STAF, Fitnesse, NTAF, Selenium, watir

개발 방법론

  • 테일러링(Tailoring) : 상황 특성에 맞게 정의된 소프트웨어 개발 방법론 절차, 사용기법등을 수정 및 보완하는 작업
    • 내부적 요건 : 목표환경, 요구사항, 프로젝트 규모, 보유기술
    • 외부적 요건 : 법적 제약사항, 표준 품질 기준

인터페이스 보안

네트워크 영역

  • IPSec
  • SSL
  • S-HTTP

무결성 분석 도구

  • Tripwire : 크래커가 침입하여 백도를 만들어 놓거나 설정파일을 변경했을 때 분석하는 도구
  • Aide : Tripwire를 대신할 수 있는 도구로 파일의 무결성 검사
  • sXid : MD5 체크섬을 사용하여 suid, sgid 파일을 추적루트키트가 설치되어있는지 검사. 자동으로 파일을 추적하고 경고한다.
  • Claymore : 침입탐지 및 무결성 모니터링 도구. 크론 테이블을 이용하여 주기적으로 파일시스템의 변조유무를 확인.
  • Samhain : 시스템의 무결성을 점검하는 도구.
  • Slipwire : 파일시스템의 무결성을 검사하는 도구
  • Fcheck : 유닉스 파일시스템의 변조유무를 점검하기위한 PERL script 도구.

네트워크 관리 신기술

  • IoT : 실세계와 가상세계의 사물을 인터넷으로 연결하려 서비스 제공하는 기술
  • M2M : 무선 통신을 이용한 기계와 기계 사이의 통신
  • 모바일 컴퓨팅 : 휴대형 기기로 이동하면서 자유로이 네트워크에 접속하여 업무를 처리할 수 잇는 환경
  • 클라우드 컴퓨팅 : 각종 컴퓨팅 자원을 중앙에 두고 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 할 수 있는 환경
  • 모바일 클라우드 컴퓨팅(MCC) : 클라우드 서비스 이용 소비자끼리 클라우드 컴퓨팅 인프라 구성하여 여러 정보와 자원을 공유하는 ICT 기술을 의미
  • 인터클라우드 컴퓨팅 : 각기 다른 클라우드 서비스를 연동 및 컴퓨팅 자원의 동적 할당이 가능하도록 여러 클라우드 서비스 제공자들이 제공하는 클라우드 서비스 자원을 연결하는 기술
  • 메시 네트워크 : 차세대 이동통신 공공안전 등 특수 목적을 위해 새로운 네트워크 기술로 대규모 디바이스의 네트워크 생성에 최적화
  • 와이선 : 스마트 그리드와 같은 장거리 무선통신을 필요로하는 사물 인터넷 서비스를 위한 저전력 장거리 통신기술
  • NDN : 콘텐츠 자체의 정보와 라우터 기능만으로 테이터 전송을 수행하는 기술
  • NGN : 유선망 기반의 차세대 통신망 
  • SDN : 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크
  • NFC : 고주파를 이용한 근거리 무선 통신기술
  • UWB : 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술
  • PICONET : 여러개의 독립된 통신장치가 블루투스 기술이나 UWB통신 기술을 사용하여 통신망 형성
  • WBAN : 웨어러블 형태의 센서나 기기를 무선으로 연결하는 네트워킹 기술
  • GIS : 지리적인 자료를 수집하여 수집 저장 분석 출렿랄 수 있는 컴퓨터 응용 시스템

보안요소

  • 기밀성(열람) : 그 기밀성 내에서 인가된 사용자만이 내용을 확인할 수 있다.
  • 가용성(사용) : 오직 인가된 사용자만이 내용을 확인 할 수 있는 것.
  • 무결성(수정) : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있다.

소스코드 품질분석 도구

정적분석 도구

  • pmd
  • checkstyle
  • cppcheck
  • ...

테스팅 기법

  • 알파 테스트 : 개발자 환경에서 사용자가 개발자 앞에서 행하는 테스트
  • 베타 테스트 : 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트
  • 인수 테스트 

해싱함수

  • 제산법
  • 제곱법
  • 중첩법(폴딩법)
  • 숫자분석법
  • 기수변환법
  • 무작위방법

통합시험

하향식

  • Stub : 제어모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈.

상향식

  • Driver : 테스트 대상 하위 모듈을 호출하고, 파라미터 전달, 모듈 테스트 수행 후의 결과 도출

프로그램 설계도

  • NS Chart
    • 논리의 기술에 중점을 둔 도형을 이용한 표현방법
    • 순차, 선택, 반복으로 표현
    • 임의의 제어이동이 어렵다
    • goto구조가 어렵다
    • 그래픽 설계도구
    • 상자도표
    • 프로그램으로 구현이 쉽다
    • 조건이 복합되어 있는 곳의 처리를명확히 식별하기에 적합
    • if문이 여러개일 때 가능하다.

ETC...

  • CMM (Capability Maturity Model)의 레벨 : 초기단계, 관리단계, 정의단계, 정량적 관리단계, 최적화단계
  • 블록 암호화 방식 : DES, RC5, AES, SEED, IDEA
  • 소프트웨어 정의 데이터 센터 (SDDC : Software Defined Data Center)
    • 데이터 센터의 모든 자원을 가사화
    • 다양한 소프트웨어 정의 기술이 사용됨
    • 유연한 제어가능 / 비용절감 가능 / 운영이 편리
    • 하드웨어와 독립적
  • 취약점
    • 랜섬웨어 : 임의로 시스템을 잠그거나 혹은 데이터를 암호화하여 사용할 수 없게한 후 돈요구
    • 파밍 : 홈페이지 주소를 바꿔 사용자가 진짜 사이트로 오인하게 하여 접속하게 한 후 개인정보 탈취
    • 피싱 : 메일 등으로 공공기관이나 금융기관에서 보낸 것처럼 위장하여 사기 (ex : 스미싱)
    • XSS : 웹페이지에 악의적인 스크립트를 포함시켜 사용자측에서 실행되게 유도함으로써 정보유출등의 공격을 유발 
해시 암호화 알고리즘 대칭 키 암호화 알고리즘 비대칭 키(공개 키) 암호화
MD4, MD5, SHA-1 AES, DES, SEED, ARIA, TDES, IDEA 디피-헬만, RSA(소인수분해), ECC, DIGAMAI

 

 

 

'정보처리기사' 카테고리의 다른 글

4. 프로그래밍 언어  (0) 2024.03.03
1. 소프트웨어 설계  (0) 2024.02.18

댓글