4 분 소요

정리 노트

소프트웨어 아키텍처의 개념 📘 1과목_C4 소프트웨어 아키텍처


   " 소프트웨어의 골격이 되는 기본구조로 소프트웨어 전체에 대한 큰 밑그림 "

  • 구성 요소의 유기적인 결합 형태와 전체 구조
  • 설계 및 구현을 위한 구조적인 틀
  • 모듈이나 컴포넌트들과의 관계를 정의
  • 개발에서 요구되는 기능이나 품질을 확보하고, 개선이 용이하도록 함
  • 소프트웨어 품질 요구사항은 소프트웨어 아키텍처를 결정하는데 중요한 요소


프로젝트 관리의 3P 📘 1과목_C3 소프트웨어 생명주기 모델


   " People, Problem, Process "


명세서 작성 시 고려사항 📘 1과목_C2 요구사항 정의

  • 고객과 개발자가 이해하기 쉽게
  • 시스템의 모든 기능과 제약조건 기술
  • 요구사항 검증을 위해 품질 측정 및 검증 방법, 기준 등 기술
  • 우선순위에 따른 중요도 기술


UI 개발 시스템의 필수기능 📘 1과목_C3 UI 설계

  • 사용자의 명령을 받을 수 있는 프롬프트 기능
  • 사용자의 명령을 검증하는 기능
  • 결함(error) 처리와 결함 메시지 출력 기능
  • 도움말 지원 기능


CWE(Commom Weakness Enumeration) 📘 1과목_C1 소프트웨어 개발 방법론 활용


   " 소프트웨어의 보안 취약점을 유발하는 원인을 7가지로 정리 "

  • 입력 데이터 검증 및 표현
  • 보안 기능
  • 시간 및 상태
  • 에러 처리
  • 코드 오류
  • 캡슐화
  • API 오용


CVS 📘 2과목_C2 통합 구현 도구


   " 가장 오래된 형상 관리 도구이자,
서버 저장소에 클라이언트가 접속해서 버전 관리 "


델파이 기법 📘 2과목_C2 연계 통합 도구


   " 연계와 관련된 각 분야의 전문가로부터 연계 데이터 및 사용자 요구사항 합의 "


인터페이스 데이터 표준 📘 2과목_C 인터페이스 구현

  • 인터페이스 데이터 형태가 같은 경우
    • 송신 시스템에서 인터페이스 데이터 영역에 맞는 데이터를 전송
  • 인터페이스 데이터 형태가 다른 경우
    • 송신 시스템에서 인터페이스 데이터 영역에 맞게끔 데이터를 변환하여 전송


반환시간 응답시간 📘 2과목_C4 성능 분석 및 품질 평가

  • 응답 시간: 처음 CPU를 얻는데 기다린 시간
  • 반환 시간: 프로그램 제출 혹은 시작된 후 최종 결과물까지 소요되는 시간


인터페이스 구현 검증 도구🔥 📘 2과목_C5 인터페이스 구현

  • xUnit: java, C++ 등 다양한 언어를 지 원하는 단위 테스트 프레임워크
  • STAF: 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
  • FitNesse: 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
  • NTAF: Naver 테스트 자동화 프레임워크이며, STAF와 FitNesse를 통합한 프레임워크
  • Selenium: 다양한 브라우저(웹) 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
  • watir: Ruby 기반 웹 애플리케이션 테스트 프레임워크


해싱 함수 📘 2과목_C1 탐색

  • 계산법
    • 키를 특정 값으로 나눈 나머지 값으로 저장할 위치를 결정하는 방법
    • 해시 테이블의 크기, 소수, 전체 데이터 수 등을 사용
  • 폴딩법
    • 키를 여러 부분으로 나누어 부분별 숫자의 합연산이나 XOR연산의 결과로 위치를 결정
  • 제곱법
    • 키를 제곱한 결과의 일부분으로 위치를 결정
  • 숫자 분석법
    • 키의 숫자 분포를 파악하여 분포가 고른 부분을 이용하여 위치를 결정하는 방법
  • 기수 변환법
    • 키의 값을 다른 진법으로 변환하여 결과값으로 위치를 결정하는 방법
  • 의사 무작위법
    • 난수를 이용하여 위치를 결정하는 방법


스토리지의 종류 📘 3과목_C4 물리 데이터 모델 설계

  • DAS(Direct Attached Storage)
    • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식으로 일반 가정에서 컴퓨터에 외장하드를 연결하는 방식
    • 서버 측에서 저장장치를 관리하여 다른 서버에서 접근 및 파일 공유가 불가능
    • 속도가 빠르고 설치 및 운영이 용이하여 초기 구축 비용 및 유지보수 비용이 저렴
    • 확장성 및 유연성이 상대적으로 떨어지므로 저장 데이터가 적고 공유가 필요없는 환경에 적합
  • NAS(Network Attached Storage)
    • 서버와 저장장치를 네트워크를 통해 연결하는 방식
    • 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 관리함
    • Ethernet 스위치를 통해 다른 서버에서도 스토리지에 접근할 수 있고 확장성 및 유연성이 우수
    • 파일 공유가 가능하지만 접속 증가 시 성능 저하의 우려가 있음
  • SAN(Storage Area Network)
    • DAS의 빠른 처리와 NAS의 파일 공유의 장점을 혼합한 방식
    • 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성
    • 저장장치 및 파일 공유가 가능하고 확장성, 유연성, 가용성 뛰어남
    • 장비 업그레이드가 필수이며 비용이 많이 듦


E-R 다이어그램 📘 3과목_C1 E-R 다이어그램

  • 표기법
    • 개체: 사각형
    • 속성: 타원
    • 관계: 동그라미
  • 스키마 변환 원리
    • 분해의 원칙
    • 정보 무손실 원칙
    • 데이터 중복 감소의 원칙
  • 이상 현상
    • 정의: 잘못된 스키마 설계로 인해 릴레이션에 예기치 못한 현상이 발생
    • 종류
      • 삭제 이상: 특정 튜플을 삭제할 때, 고나련된 정보도 함께 삭제하지 않으면 삭제 불가
      • 삽입 이상: 특정 튜플을 삽입할 때, 관련되지 않은 정보도 함께 삽입하지 않으면 삽입이 불가능
      • 갱신 이상: 특정 데이터를 갱신할 때, 데이터의 불일치가 발생


UPDATE문 📘 3과목_C2 SQL 응용


   "UPDATE 테이블 SET 필드=값 WHERE 조건식; "


DBMS 필수기능 📘 3과목_C1 관계형 데이터 베이스


   " 정의 기능, 조작 기능, 제어 기능 "


논리적 설계 단계 📘 3과목_C3 논리 데이터 모델링

  • 논리적 데이터베이스 구조로 매핑
  • 트랜잭션 인터페이스를 설계
  • 스키마의 평가 및 최적화


물리적 설계 단계 📘 3과목_C3 논리 데이터 모델링

  • 레코드 분석 및 형식 설계
  • 저장 레코드 등을 클러스터링
  • 접근 경로 설계


운영 데이터 📘 3과목_C1 데이터베이스 관리 시스템


   " 조직의 목적을 위해 반드시 필요한 모든 데이터와 데이터들의 관계 집합 "


HDBMS 📘 3과목_C1 관계형 데이터베이스

  • 🔥 데이터 접근 속도가 빠르지만, 데[이터 구조 변화에 유연하게 대응하기 어려움
  • 🔥 속성들의 관계를 묶어 레코드로 표현하고, 레코드들의 관계를 링크로 표현


무결성 제약사항 📘 3과목_C1 관계형 데이터베이스

  • 도메인 무결성: 하나의 속성에 입력되는 값이 지정된 도메인의 범위를 벗어나지 않음
  • 개체 무결성: 기본키로 지정된 속성은 중복값과 Null값이 있어서는 안됨
  • 참조 무결성: 외래키로 지정된 속성은 참조하는 기본키에 존재하지 않는 값을 입력할 수 없음


스래싱(Thrashing) 📘 4과목_C4 기억장치 관리


   " 프로세스의 처리 시간보다 페이지 교체에 소모되는 시간이 더 많아지는 현상 "

  • 페이지 부재가 많이 발생
  • CPU 이용률 감소

  • 방지하는 방법
    • 다중 프로그램의 정도를 적정 수준으로 유지
    • 페이지 부재 빈도를 조절하여 사용
    • 워킹 셋을 유지
    • 부족한 자원을 증설하고, 일부 프로세스를 중단
    • CPU 성능에 대한 자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영


윈도우즈의 특징 📘 4과목_C4 운영체제

  • PnP
  • 선점형 멀티태스킹: 특정 응용프로그램이 CPU 독점하는 것 방지
  • OLE: 응용 프로그램에서 작성된 이미지, 차트 등의 개체를 다른 문서에서 자유롭게 연결하여 사용 가능
  • 그래픽 사용자 인터페이스
  • Single-User 시스템


프로세스 스케줄링 개념 📘 4과목_C4 프로세스

  • 장기 스케줄링: 어떤 프로세스를 커널에 등록할 것인지
  • 중기 스케줄링: 어떤 프로세스에게 메모리르 할당할 것인지
  • 단기 스케줄링: 어떤 프로세스에게 CPU를 할당할 것인지

업데이트:

댓글남기기