4 분 소요

정리 노트

다중화기 📘 5과목_C2 회선 공유 기술


   " 하나의 고속 회선을 사용해서 시간이나 주파수를 나눠서 규칙적으로 사용 "

  • 자원을 혼자 사용하는 느낌
  • 전송 채널, 수신 채널 개수가 같음
  • 집중화기에 비해 기술이 단순하고 저렴
  • FDM, TDM, CDM, WDM


SSL 📘 5과목_C6 인터페이스 보안 기술


   " 웹 서버와 웹 브라우저에서 전달되는 데이터를 안전하게 송수신할 수 있도록 개발된 프로토콜 "

  • 서버와 클라이언트 간에 키 교환 방법을 제공하며 128비트
  • SSL은 전송 계층인 TCP 지원 아래에 세션 계층에서 동작
  • 기밀성, 무결성, 인증은 지원하지만 부인방지는 제공되지 않음


IPSec 📘 5과목_C6 인터페이스 보안 기술


   " IP 패킷의 보안 프로토콜로 패킷을 제거하거나 삽입을 불가능하게 하는 보안기술 "

  • IP Spoofing, IP Sniffing과 같은 보안 허점을 해결하기 위한 방안
  • IETF에 의해 표준화되었고 인증, 암호화, 무결성, 키 교환 등의 기능을 제공
  • 네트워크 계층에서 동작

  • 🔥 단말과 단말 전송 모드, 라우터와 라우터 터널 모드


XP(eXtreme Programming) 모델 📘 1과목_C1 소프트웨어 개발 방법론


   " 고객의 참여와 개발 과정(Release)의을 극대화하여 개발 생산성을 향상 시키는 방법 "

  • 특징
    • 소규모 인원의 개발에 어울림
  • 개발 프로세스
    • 사용자 스토리
    • 릴리즈 계획 수립
    • 스파이크
    • 이터레이션
    • 승인 검사
    • 소규모 릴리즈


UML(Unified Modeling Language) 📘 1과목_C2 UML


   " 이해관계자 상호 간의 의사소통이 원활하게 이뤄지도록 표준화하여
시각적으로 표현하는 대표적인 객체지향 모델링 언어 "

  • 구성 요소
    • 사물
      • 구조
      • 행동
      • 그룹
      • 주해(= 주석)
    • 관계
    • 다이어그램


형상관리 📘 1과목_C1 소프트웨어 생명주기 모델


   " 소프트웨어 개발의 전 과정에서 발샡하는 산출물들의 버전을 관리 "

  • 동일한 프로젝트를 여러 개발자가 동시에 개발 가능
  • 사용자들의 불필요한 수정을 제한
  • 버전 관리를 통해 배포본 관리에 유용하며 리비전이 가능


형상관리 📘 1과목_C1 소프트웨어 개발 방법론 활용

  • 캡슐화: 데이터와 데이터를 처리하는 기능을 하나로 묶은 것
  • 정보은닉: 다른 객체에게 자신의 정보를 숨기는 것
  • 추상화: 객체의 중요한 특징만을 간단하게 표현하는 것
  • 상속성: 상위 객체의 속성을 하위 객체가 물려받는 것
  • 다형성: 하나의 이름으로 여러가지 기능을 수행하는 것


요구사항 분석 📘 1과목_C2 요구사항 정의

  • 서로 다르거나 중복, 상충되는 것 해결
  • 최적화된 요구사항을 기초로 소프트웨어 개발 비용과 일정에 대한 제약을 설정
  • 사용자 요구사항의 타당성 조사
  • 정리된 요구사항 문서화
  • 소프트웨어의 범위를 파악하고 다른 환경과 어떻게 상호작용하는지 이해


SPICE 모델 📘 1과목_C1 소프트웨어 생명주기 모델


   " 소프트웨어 프로세스 평가 기준 "

  • 0단계(불안정): 프로세스가 충분히 구현되지 못한 상태
  • 1단계(수행): 프로세스가 전반적을 구현된 상태
  • 2단계(관리): 자원의 한도 내에서 프로세스가 직접 작업 산출물 인도
  • 3단계(확립): 소프트웨어 공학 원칙을 기반으로 프로세스 수행
  • 4단계(예측): 목표 달성을 위한 소프트웨어 통제, 정량적 측정
  • 5단계(최적화): 프로젝트 수행 최적화, 지속적인 업무 목적을 만족시킴


설계 모델링 절차 📘 1과목_C4 모듈의 성능 평가

  • 요구 명세: 기능적 요구, 품질적 요구, 형태적 요구
  • 설계 프로세스: 분석, 명세, 검증, 모델링 절차를 반복해서 설계
  • 아키텍처 설계 명세: 설계 프로세스를 통해 생성된 행위 및 구조 모델의 테스트를 계획하고 실행
  • 상세 설계 명세: 코드, UI, 인터페이스 설계


요구사항 명세 📘 1과목_C2 요구사항 정의

  • 정형 명세
    • 수학적인 원리와 표기법으로 명세
    • 사용자의 요구사항을 정확하게 명세
    • 명세서가 간결하고, 명세와 구현이 일치
    • 수학적인 이해가 필요, 도구 사용 필수
  • 비정형 명세
    • 자연어를 기반으로 사용자 요구 서술
    • 일반적이고 친숙하지만 명세서로서 불충한 수 있음
    • 요구를 상태, 기능, 객체 중심으로 서술
    • 의사 전달 방법이 다양하고 이해가 쉬움


데이터베이스의 성능 저하 원인 📘 2과목_C4 성능 분석 및 품질 평가

  • 데이터베이스 잠금
  • 불필요한 데이터베이스 패치
  • 연결 누수 / 부적절한 연결 풀 크기
  • 불완전한 완료


테스트의 원칙 📘 2과목_C4 애플리케이션 테스트

  • 프로그램의 계획 단계부터 테스트 진행
  • 완벽한 테스트는 불가능
  • 자신이 아닌 다른 개발자가 테스트
  • 결함 집중
  • 살충제 패러독스
  • 오류 - 부재의 궤변


제품 소프트웨어 모듈 빌드 기법 📘 2과목_C3 제품 소프트웨어 패키징

  • Jenkins
    • java 기반의 오픈 소스 자동화 도구
    • 가장 많이 사용되는 빌드 자동화 도구
    • 서블릿 컨테이너에서 실행되는 웹 서버 기반 도구
    • Git과 같은 형상 관리 도구와 연동이 가능
  • Gradle
    • groovy 언어 기반의 오픈 소스 자동화 도구
    • 안드로이드 앱 개발 환경에서 사용
    • 처리 명령들을 모아 태스크 단위로 실행
    • 플러그인 설정하면 java, c, python 등의 언어도 빌드 가능
    • DSL을 스크립트 언어로 사용
    • 테스크 단위로 실행


SQL GRANT 📘 3과목_C2 SQL 응용


   " GRANT SELECT ON STUDENT TO PUBLIC "


Join Dependency 📘 3과목_정규화


   " 정규화를 통해서 분해된 각 릴레이션이 분해 전 릴레이션으로 재구성될 수 있는 것 "


병행 제어와 로킹 📘 3과목_병행 제어와 로킹

  • 로킹의 목적
    • 하나의 트랜잭션에서 갱신하는 데이터를 다른 트랜잭션이 접근하지 못하도록 잠그는 행위
  • 로킹의 단위가 큰 경우
    • 로크의 개수가 적어져 병행 제어 기법이 단순
    • 병행성(공유도) 수준이 낮아지고 오버헤드가 감소
  • 로크의 단위가 작은 경우
    • 로크의 개수가 많아져 병행 제어 기법이 복잡해짐
    • 병행성(공유도) 수준이 높아지고 오버헤드가 증가
  • 타임스탬프
    • 데이터베이스 병행 제어를 위해 데이터 항목에 타임스탬프를 부여하여 직렬 가능성 보장
  • 회복
    • 장애 요인으로 데이터베이스의 일관성에 문제가 생겼을 때, 장애 이전 상태로 복원하여 일관성 유지
    • 장애의 유형
      • 트랜잭션 장애: 트랜잭션 내의 논리적 오류로 트랜잭션 정상 실행 불가
      • 시스템 장애: 하드웨어 오작동으로 기억장치 내용 유실
      • 미디어 장애: 데이터 전송 중 디스크의 고장으로 디스크가 동작하지 않음
  • 로그를 이용한 회복 기법
    • 즉시 갱신
      • 트랜잭션의 결과를 그 즉시 데이터베이스에 반영
      • 문제가 발생하면 로그에 있는 갱신 이전의 데이터로 데이터베이스를 복원하여 회복(Undo)
    • 지연 갱신
      • 갱신 결과를 로그에 기록해 두었다가 트랜잭션이 완료되면 한 번에 데이터베이스에 반영(Redo)


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

  • 개념
    • 1976년 피터 첸(Peter Chen)에 의해서 최초로 제안됨
    • 업무 분석 결과로 두출된 개체와 실체 간의 관계를 그림 형태로 묘사한 것
    • 개체와 속성, 관계를 통해 현실 세계를 단순하게 표현
    • 단순성이 뛰어나 개념 데이터 모델링과 논리 데이터 모델링 등에서 가장 일반적으로 사용


절차형 SQL 📘 3과목_절차형 SQL


   " 종류로 프로시저, 사용자 정의 함수, 트리거가 있음 "

  • 트리거
    • 특정 테이블에 삽입, 수정 등의 데이터 변경이 발생하면 DBMS에서 자동적으로 수행되는 절차형 SQL
    • 이벤트는 전체 트랜잭션 대상과 각행에 의해 발생되는 경우 모두를 포함할 수 있으며 테이블과 뷰, 데이터베이스 작업을 대상으로 정의할 수 있음


분산 데이터베이스 관리 시스템 목표 📘 3과목_분산 데이터베이스 설계

  • 위치 투명성(Location Transparency)
    • 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 데이터베이스의 논리적 명칭만으로만 액세스 할 수 있는 성질
    • 분산 환경과는 무관하게 동일한 명령을 사용할 수 있어야함
  • 중복 투명성(Replication Transparency)
    • 중복된 데이터 유무와 저장 위치에 등에 대한 정보를 사용자가 인지할 필요가 없어야 함
    • 사용하고 있는 데이터가 논리적으로 유일하다고 생각할 수 있는 환경 제공
    • 복제 데이터의 갱신을 처리하기 위해서는 모든 지역에 대한 데이터 갱신이 이루어져야 하므로 무결성을 보장하기 어려워짐
  • 분할 투명성(Fragmentation Transparency)
    • 전역 스키마가 어떻게 분할되어 있는지 알 필요 없이 전역 질의를 여러 개의 단편 질의로 변환
  • 장애 투명성(Failure Transparency)
    • 분산 환경에서 장애가 발생해도 데이터 무결성 보장
  • 병행 투명성(Concurrency Transparency)
    • 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션의 결과는 영향을 받지 않음
    • 다수의 트랜잭션이 실행되더라도 결과의 일관성 유지

업데이트:

댓글남기기