220211_정리노트 3
정리 노트
다중화기 📘 5과목_C2 회선 공유 기술
- 자원을 혼자 사용하는 느낌
- 전송 채널, 수신 채널 개수가 같음
- 집중화기에 비해 기술이 단순하고 저렴
- FDM, TDM, CDM, WDM
SSL 📘 5과목_C6 인터페이스 보안 기술
- 서버와 클라이언트 간에 키 교환 방법을 제공하며 128비트
- SSL은 전송 계층인 TCP 지원 아래에 세션 계층에서 동작
- 기밀성, 무결성, 인증은 지원하지만 부인방지는 제공되지 않음
IPSec 📘 5과목_C6 인터페이스 보안 기술
- IP Spoofing, IP Sniffing과 같은 보안 허점을 해결하기 위한 방안
- IETF에 의해 표준화되었고 인증, 암호화, 무결성, 키 교환 등의 기능을 제공
-
네트워크 계층에서 동작
- 🔥 단말과 단말 전송 모드, 라우터와 라우터 터널 모드
XP(eXtreme Programming) 모델 📘 1과목_C1 소프트웨어 개발 방법론
- 특징
- 소규모 인원의 개발에 어울림
- 개발 프로세스
- 사용자 스토리
- 릴리즈 계획 수립
- 스파이크
- 이터레이션
- 승인 검사
- 소규모 릴리즈
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 응용
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)
- 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 다수의 트랜잭션이 실행되더라도 결과의 일관성 유지
댓글남기기