Certificate Study

[정보처리기사][필기] 소프트웨어 개발 및 데이터베이스 구축 요약 (인프런)

후비a 2025. 1. 17. 17:42

 

본 내용은 인프런의 정보처리기사 자격증 대비 교육(필기) 강의를 요약한 것입니다.

 

[지금 무료]정보처리기사 자격증 대비 교육(필기) 강의 | 국립안동대학교 SW융합교육원 - 인프런

 

[지금 무료]정보처리기사 자격증 대비 교육(필기) 강의 | 국립안동대학교 SW융합교육원 - 인프런

국립안동대학교 SW융합교육원 | NCS개정 정보처리기사 필기 합격을 위한 핵심요약 특강으로 CBT 필기시험과 필답형 실기시험을 효율적으로 학습 할수 있습니다., 정보처리기사 자격증 대비 교육(

www.inflearn.com

 


4강_[2과목]소프트웨어 개발

  1. 형상관리
    • ‘구성 관리’ 라고도 하며, 소프트웨어에 가시성과 추적 가능성을 부여하여 제품의 품질과 안전성을 높인다.
    • 형상 관리를 위해 구성된 팀을 ‘형상 통제 위원회(CCB)’라 한다. 형상 항목의 변경을 수락 또는 거절하는 책임을 진다.
    • 소프트웨어 개발 생명주기 전반에 걸쳐 생성되는 소스 코드와 문서 등과 같은 산출물의 합 및 변경 과정을 체계적으로 관리하고 유지하는 일련의 개발 관리 활동
    • 형상 식별, 형상 통제, 형상 상태 보고, 형상 감사를 통하여 변경사항 관리
    • 이전 리비전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용
    • 불필요한 사용자의 소스 수정 제한 가능
    • 여러 개발자 동시 개발 가능
    • 형상 관리 도구: CVS, SVN(Subversion), Git
    • 대표적인 소프트웨어 형상 항목
      • 프로젝트 요구 분석서, 운영 및 설치 지침서, 요구사항 명세서, 설계/인터페이스 명세서, 테스트 설계서, 소프트웨어 품질 보증, V&V 계획서, 코드 모듈(소스와 오브젝트 모두)
  2. 애플리케이션 패키징
    • 개발이 완료된 소프트웨어를 고객에 인도하기 위해 패키징하고, 설치 매뉴얼, 사용 매뉴얼 등을 작성하는 일련의 배포용 설치 파일을 만드는 작업을 의미
    • 향후 관리 편의성을 위해 모듈화하여 패키징
    • 사용자를 중심으로 진행, 사용자의 다양한 환경에서 설치할 수 있도록 패키징
    • 사용자의 불편함을 줄이고 사용자의 편의성을 먼저 고려
    • 주의사항
      • 전체 내용을 포함, 고객 중심, 모듈화, 버전 관리 및 릴리즈 노트 관리
    • 패키징 도구 활용 시 고려 사항
      • 제품 SW 종류에 적합한 암호화 알고리즘을 적용
      • 패키징 도구를 활용하여 여러가지 이기종 콘텐츠 및 단말기간 DRM 연동을 고려
      • 사용자에게 배포되는 소프트웨어임을 고려하여 반드시 내부 콘텐츠에 대한 암호화 및 보안 고려
  3. DRM (Digtal Right Management)
    • 디지털 콘텐츠의 지식재산권 보호, 관리 기능안전한 유통과 배포를 보장하는 솔루션
    • 기술 요소
      • 사용 규칙 제어 기술: 콘텐츠 식별 체계, 메타 데이터, 권리 표현 기술
      • 저작권 보호 기술: 암호화, 키 관리, 암호화 파일 생성, 식별 기술, 저작권 표현, 정책 관리, 크랙 방지, 인증, 인터페이스, 이벤트 보고, 사용 권한
    • 시스템 구성 요소
      • 콘텐츠 제공자: 콘텐츠를 제공하는 저작권자
      • 콘텐츠 분배자: 쇼핑몰 등으로써 암호화된 콘텐츠 제공
      • 패키저: 콘텐츠를 메타 데이터와 함께 배포할 수 있는 단위로 묶는 기능
      • 보안 컨테이너: 원본을 안전하게 유통하기 위한 전자적 보안 장치
      • DRM 컨트롤러: 배포된 콘텐츠의 이용 권한을 통제
      • 클리어링 하우스: 키 관리 및 라이센스 발급 관리
  4. 소프트웨어 테스트의 원리
    • 결함 집중(Defect Clustering)
      • '파레토 법칙'이 좌우한다.
      • 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재
      • 결함은 발생한 모듈에서 계속 추가로 발생할 가능성이 크다.
    • 살충제 패러독스(Pesticide Paradox)
      • 동일한 테스트 케이스로 반복 테스트 시 어느 시점부터 더 이상 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 한다.
    • 테스트 단계(V-모듈)
      • Perry에 의해 제안된 개발 작업과 검증 작업 사이의 관계를 명확히 들어내 놓은 폭포수 모델의 변형
      • 폭포수 모델이 산출물 중심이라면 V 모델은 작업과 결과의 검증에 초점
      • 테스트 레벨: 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
  5. 통합 테스트
    • 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트한다.
    • 시각에 따른 테스트
      • 검증(Verification) 테스트: 제품이 명세서대로 완성되었는지 검증하는 단계, 개발자의 시각에서 제품의 생산 과정을 테스트
      • 확인(Validation) 테스트: 사용자의 요구사항을 잘 수행하고 있는지 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것을 의미
  6. 테스트 스텁과 테스트 드라이버
    1. Test Stub
      • 상위 모듈에서 하위 모듈 방향으로 통합 테스트를 진행하는 하향식 테스트에서 사용
      • 상위 모듈에서 하위 모듈로의 테스트를 진행하는 과정 중 하위 시스템 컴포넌트의 개발이 완료되지 않은 상황에서의 시스템
      • 테스트를 진행하기 위하여 임시로 생성한 가상의 더미 컴포넌트(Dummy Component)를 일컫는다.
    2. Test Driver
      • 하위 모듈에서 상위 모듈로 통합하면서 테스트하는 상황식 테스트에서 사용
      • 테스트할 소프트웨어 또는 시스템을 제어하고 동작시키는데 사용되는 도구를 일컫는다.
      • 시스템이나 시스템 컴포넌트를 시험하는 환경 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터
  7. 인수 테스트
    • 일반적인 테스트 레벨의 가장 마지막 상위 레벨로, SW 제품에 대한 요구사항이 제대로 이행되었는지 확인하는 단계
    • 테스팅 환경을 실사용자 환경에서 진행하며 수행하는 주체가 사용자이다.
    • 알파, 베타 테스트와 가장 밀접한 연관이 있다.
    • 알파 테스트: 베타 테스트 전에 프로그램 개발 시 내부에서 미리 평가하고 버그를 찾아 수정하기 위해 시험해 보는 검사
    • 베타 테스트: 정식으로 프로그램을 공개하기 전에 한정된 집단 또는 일반인에게 공개하여 기능을 시험하는 검사
  8. 테스트 케이스 정의
    • 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미
    • 테스트의 목표 및 테스트 방법을 결정, 테스트 케이스 작성
    • 테스트 케이스 자동 생성
    • 자료 흐름도 → 테스트 경로 관리
    • 입력 도메인 분석 → 테스트 데이터 산출
    • 랜덤 테스트 → 무작위 값 입력, 신뢰성 검사
  9. 소스 코드 최적화
    1. 클린 코드
      • 깔끔하게 잘 정리된 코드
      • 중복 코드 제거로 애플리케이션의 설계가 개선
      • 가독성이 높아진다.
      • 버그를 찾기 쉬워지며, 프로그래밍 속도가 빨라진다.
    2. 외계인 코드
      • 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미

5강_[3과목]_데이터베이스 구축

  1. 데이터베이스
    1. 데이터베이스(Database) 정의
      • 통합(Intergrated) 데이터, 저장(Stored) 데이터, 운영(Operational) 데이터, 공용(Shared) 데이터
    2. 데이터베이스의 특징
      • 실시간 접근성, 지속적인 변화, 동시 공유, 내용에 의한 참조
  2. 스키마(Schema)
    • 데이터베이스의 구조(객체, 속성, 관계)에 대한 정의
    • 메타 데이터라고도 함
    • 데이터 사전에 저장
    • 스키마의 3단 구조
      • 외부 스키마: 특정 응용에 한정된 논리적 데이터 구조, 데이터베이스 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스
      • 개념 스키마: 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 구조
      • 내부 스키마: 물리적 저장 장치, 실제로 데이터베이스에 저장될 레코드의 형식을 정의, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등 나타냄
  3. 시스템 카탈로그
    • 시스템 자신이 필요로 하는 스키마 및 여러가지 객체에 대한 정보를 포함하고 있는 시스템 데이터베이스
    • 다른 이름으로 '데이터 사전'이라고도 한다.
    • 시스템 카탈로그에 저장되는 내용을 메타 데이터라고 한다.
    • 시스템 카탈로그는 DBMS 가 스스로 생성하고 유지
  4. 데이터베이스 설계
    1. 개념적 설계
      • 요구 분석 단계에서 나온 결과를 E-R 다이어그램과 같은 DBMS 에 독립적이고 고차원적인 표현 기법으로 기술하는 과정
      • 요구 조건 분석 결과로 식별된 응용을 검토해서 이들을 구현할 수 있는 트랜잭션을 고차원 명세로 기술하는 과정
    2. 논리적 설계
      • 목표 DBMS 에 종속적인 논리적 스키마 작성
      • 논리적 데이터 모델로 변환
      • 트랜잭션 인터페이스 설계
      • 스키마의 평가 및 정제
    3. 물리적 설계
      • 목표 DBMS 에 종속적인 물리적 구조 설계
      • 저장 레코드 양식 설계 및 레코드 집중의 분석/설계
      • 파일 조직 방법과 저장 방법 그리고 파일 접근 방법들을 선정
      • 응답 시간 효율화를 위한 접근 경로 설계
      • 트랜잭션 세부 설계
  5. 릴레이션의 구성
    1. 관계형 데이터베이스 모델 구조
    2. 속성
      • 테이블의 열에 해당하며 파일 구조의 항목, 필드와 같은 의미
      • 디그리: 속성의 수(차수)
    3. 튜플
      • 테이블의 행에 해당, 파일 구조의 레코드와 같은 의미
      • 카디널리티: 튜플의 수(기수)
  6. E-R 다이어그램
    1. 기본키(Primary Key)
      • 테이블의 각 레코드를 고유하게 식별하는 필드나 필드의 집합
      • 테이블에 기본키 설정은 필수가 아니다.
      • 기본키를 설정하지 않고도 다른 테이블과의 관계를 설정할 수 있다.
      • 관계가 설정되어있는 테이블에서 기본키 설정을 해제하더라도 설정된 관계는 유지된다.
      • 데이터가 이미 입력된 필드도 기본키로 지정할 수 있으며 기본키 값은 변경될 수 있다.
    2. 외래키 (Foreign Key)
      • 관계형 데이터 모델에서 한 릴레이션의 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는 데 사용되는 중요한 도구
      • 외래키를 포함하는 릴레이션이 참조하는 릴레이션이 되고, 대응되는 기본키를 포함하는 릴레이션이 참조 릴레이션이 된다.
  7. 무결성
    1. 개체 무결성: 기본키의 값은 널(Null) 값이나 중복값을 가질 수 없다는 제약 조건
    2. 참조 무결성: 참조할 수 없는 외래키 값을 가질 수 없다는 제약 조건
    3. 도메인 무결성: 각 속성값은 해당 속성 도메인에 지정된 값이어야 한다는 제약 조건
  8. 이상현상(Anomaly)
    • 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
    • 종류: 삽입 이상, 삭제 이상, 갱신 이상
  9. 정규화(Normalization)
    • 함수적 종속성 등의 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
    • 데이터베이스의 논리적 설계 단계에서 수행
    • 데이터 구조의 안전성을 최대화
    • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지
    • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임

  10. 병행제어 / 로킹
    1. 병행 제어의 목적
      • 데이터베이스 공유 최대화
      • 데이터베이스 일관성 최대화
      • 시스템 활용도 최대화
      • 사용자에 대한 응답 시간 최소화
    2. 로킹(Locking) 특징
      • 로킹 단위가 커지면 로크의 수가 적어 관리가 쉬워지지만 병행성 수준은 낮아진다
      • 로킹 단위가 작으면 로크의 수가 많아 관리가 어려워지지만, 병행성 수준은 높아진다.
      • 로킹의 대상이 되는 객체 (파일 테이블, 필드, 레코드)의 크기를 로킹 단위라고 한다.
  11. 분산 데이터베이스의 투명성
    • 위치 투명성: 하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요가 없다.
    • 중복(복제) 투명성: 사용자에게 통지할 필요 없이 시스템 안에 파일들과 자원들의 부가적인 복사를 자유롭게 할 수 있다.
    • 병행 투명성: 다중 사용자들이 자원들을 자동으로 공유할 수 있다.
    • 장애 투명성: 사용자들은 어느 위치의 시스템에 장애가 발생했는지 알 필요가 없다.
    • 분산 데이터베이스의 구성 요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크, 분산 트랜잭션
    • 분산 데이터베이스의 구조: 전역, 분할(단편화), 할당, 지역 스키마

 


 

이상으로 인프런 정보처리기사 자격증 대비 교육(필기) 강의 4~5강 요약본 이었습니다.

 

다음 블로그는 6~8강 요약본 입니다!

좋은 하루 되세요!!