데이터 입출력 구현 (1) ★
데이터모델설계- 요구 개념(개체관계ERD) 논리(정규화) 물리(반정규화)-적 / 연산 구조 제약조건
논리 데이터 모델링 종류 (관계네) - 관계(RDBMS) 계층(트리) 네트워크(그래프)
- 관계 데이터 모델 - 개체/속성/관계
(셀렉트-시그마 / 프로젝트-파이 / 조인-▷◁ / 디비전- 나누기 )
데이터베이스 이상현상( 데이터 중복성으로 인해 릴레이션 조작시 발생 비합리적현상)→BCNF
데이터베이스 - 다수 인원/시스템/프로그램 사용 목적으로 통합 관리 데이터 집합
(통합, 저장, 운영, 공용)-데이터 / 실시간접근성, 계속적 변화, 동시공용, 내용참조
(키값:Redis 컬럼기반:HBase 문서저장:MongoDB 그래프: Neo4j) DBMS or Store
무결 일관 회복 보안 효율
빅데이터 - 양, 다양성, 속도
프로그래밍 언어 활용 (5) ★★★
아스키코드 ( 48 65 97 → 0 A a ) /
C int a[3][2] = {1,2,3,4,5,6}; int p=a[1]; → p = a[1][0]
문자열 char a[7]=”Hello”; [H, e, l, l, o,Null , ]
camelCase PascalCase snake_case / 증!~산시 관비 논삼대
& (AND) | (OR) ^ (XOR) ~ (NOT) / 소멸 : .finalize(); del 클래스변수
SQL 응용 (3) ★★★
트랜잭션 - 하나의 논리적 기능을 수행하기 위한 기본단위 TCL(Commit Rollback Checkpoint)
A(원자성: 정상실행or모두취소: Commit Rollback )
C(일관성: 시스템 고정요소는 트랜잭션 전후 같음: 무결/동시성 )
I (고립성: 동시실행 트랜잭션 서로 영향 x: Read [Un-]Commited , RepeatableRead Serializable)
D(영속성: 성공 완료 결과가 영속적으로 DB저장: 회복기법 )
DDL - 도메인, 스키마(개념, 내, 외부), 테이블, 뷰, 인덱스 [ Create Alter Drop Truncate ]
DML - [ CRUD ] , Join 복수 테이블 연결 데이터 검색 ( [Inner], Outer, Cross, Self )
집합 ( UNION / UNION ALL / INTERSECT / MINUS
DCL - 데이터 제어어 [ Grant , Revoke ] 권한 ON 테이블 TO/FROM 사용자
데이터베이스 파일구조 ( 순차 , 인덱스 , 해싱 )
Index - 순서 해시 비트맵(각 컬럼 적은 수의 값이 저장된 경우), 함수기반, 단일 ,결합, 클러스터드
서버 프로그램 구현 ★★
개발 도구 - (빌드 구현 테스트 형상관리) 서버 - ( 웹 웹앱 DB 파일 )
모듈화 기법 - 루틴(기능가진 명령모임) 메인루틴(전체 동작절차를 표시) 서브루틴(메인이 호출)
응집도 (독립성) - 우연 논리 시간 절차 통신 순차 기능 “우논시절 통순기”
결합도 (의존성) - 내용 공통 외부 제어 스탬프 자료 “내공 외제 스자”
공통 모듈 구현 - DTO/VO → SQL → DAO → Service → Controller → 화면 , MVC
Fan-In ( 제어하는 모듈 수 ) Fan-Out ( 제어되는 모듈 수 ) : 모듈 계층적 분석
기밀성 - 인가x 개인/시스템에 정보 공개, 노출 차단
무결성 - 정당 방법x → 데이터변경x, 데이터 정확 완전성 보장
가용성 - 권한O 사용자/앱이 원하는 서비스 지속 제공 보장
개발 보안 용어
자산(데이터나 가치 부여한 H/W)
위협(해킹 등 행위)
취약점(위협의 사전조건 약점, 평문전송 미검증 비번공유)
위험(위협이 취약점을 이용, 자산 피해 가져올 가능성)
DoS 공격
SYN플러딩, UDP플러딩, 스머핑(출발지를 공격대상의 IP로 설정,직접브로드캐스팅)
죽음의 핑(ICMP ping을 아주크게, 재조합 부하) , 랜드 어택(출발지-목적지 같은IP 패킷주소)
티어드롭(IP헤더 조작) 봉크(프로토콜 오류 제어 이용한 공격)
DDoS
DRDoS(다수의 반사 서버로)
세션 하이재킹
애플리케이션 공격 ( HTTP GET 플러딩)
네트워크 공격
스니핑(직접 공격x 몰래 데이터 봄), 네트워크 스캐너(취약점 탐색 도구)
패스워드 크래킹
IP 스푸핑 ( 인증된 것처럼 ) , ARP 스푸핑 ( MAC을 위조 후 ARP Reply )
ICMP Redirect 공격 ( 스니핑 시스템을 3계층 또다른 라우터라고 알림 )
트로이 목마
시스템 보안 위협
스택/힙 버퍼 오버플로우 공격
백도어 ( 정상 인증 우회 )
포맷 스트링 , 레이스 컨디션 , 키로거 , 루트킷
보안 관련 용어
스피어피싱, 스미싱(문자피싱) , 큐싱(QR), 봇넷, APT공격 (다양한 수단 지속 지능적)
공급망 공격, 제로데이 (보안 취약점), 웜(스스로 복제), 랜섬웨어
서버 접근 통제 - “주객접”
주체(Subject) , 객체(Object) , 접근(Access)
식별(Identification), 인증(Authentication), 인가(Authorization), 책임추적성(Accountability)
임의적(DAC) - 주체나 그룹 신분 근거, 신분기반
강제적(MAC) - 객체 포함 정보의 허용 등급 근거 , 규칙기반
역할기반(RBAC) - 중앙 관리자가 상호관계 통제, 할당 역할 기반
3A - 인증 인가 계정(Accounting)
암호화 알고리즘
양방향 - 대칭(스트림, 블록) 비대칭 (암복호화)
일방향 - 해시
대칭키
블록: DES → AES, SEED
ARIA(국정원 산학연구)
IDEA(DES대체 스위스)
LFSR(선형 피드백 시프트 레지스터)
스트림: RC4 (매우 긴 주기 난수열)
비대칭키
디피-헬만 (최초 공개키)
RSA (소인수분해어려움, 제일 많이씀)
ECC ( RSA대안, 타원 곡선 안호)
해시
MD5(파일 무결성)
SHA-1 ( 미 정부 표준 )
SHA-256 ( AES 키에 대응 )
HAS-160 (국내표준서명)
데이터 암호화
IPSec(전송-패킷의 페이로드만 ,터널- 패킷 전체를 ) -모드
SSL/TLS ( 4-7계층 사이 무결성 보장 )
S-HTTP ( 웹상 서버-클라 모든 메세지 각각 암호화 전송 )
시큐어 코딩 가이드
취약점 - XSS, CSRF, SQL Injection
비즈니스 연속성 계획(BCP) - 재해 장애등에 비즈니스 연속성 보장
RTO(다시 가동될때까지 시간), RPO( 데이터 복구 목표 지점 )
DRS ( Disaster Recovery System / Plan ) - Mirror, Hot , Warm(중요한것만), Cold(데이터만)
애플리케이션 테스트 케이스 설계 (2) ★★
SW테스트 - SW가 요구기능/성능/사용성 만족하는지, 결함 없는지
관점:(오류발견/예방,품질향상)
테스트(-계획서, 베이시스,케이스>슈트>시나리오,스크립트,결과서)
정적 - 리뷰{동료검토,인스펙션}, 코드정적분석 / 동적 - 화이트/블랙 박스 테스트
화이트박스 - 구결조조변다기(-커버리지) 제데(-흐름테스트) : 개발자 (구조기반)
구문(모든 명령문) / 결정(전체 조건식TF) / 조건(개별 조건식TF) / 조건결정
변경 조건결정 (개별이 전체 독립적영향) / 다중조건(모든개별가능조합)
기본경로(모든경로) // 제어( 제어구조를 그래프) / 데이터 ( 제어에 데이터추가 )
블랙박스 - 동경결상 유분페원비 : PO (명세테스트)
동등분할(유사도메인별 유/무효 대표값) / 경곗값분석 ( 최대/소치 입력값 )
결정테이블 ( 요구사항 테이블 조건행위조합 ) / 상태전이 ( 상태 경우의수 )
유스케이스 ( 실제사용 모델링,프로세스 흐름대로 ) / 분류트리 ( 트리구조 )
페어와이즈 ( 테스트값 조합 ) / 원인결과 그래프 ( 그래프, 입력데이터간 관계 )
비교 ( 여러 버전 프로그램 같은 입력값 )
검증(Verification): 개발과정테스트, 규격 요구 / 확인(Validation): SW결과,만들어진제품
테스트 목적 :회안성 구회병 -테스트
회복 -고의실패 , 안전 -불법보안결함, 성능 -응답시간반응속도{부하 강도 스파이크 내구성}
구조 -코드 복잡도, 회귀 -오류수정후 새 오류, 병행 -기존/변경시스템에 동일 데이터 입력
테스트오라클 - 테스트 결과 T/F 판단 위해 사전 정의된 True 입력해 비교(참샘휴일)-오라클
참: 모든입력값 / 샘플링:특정 몇 개 /→휴리스틱: 특정T,나머지추정 / 일관성검사:변경전후동일
테스트레벨 - (단통시인) 단위-모듈 등 , 통합-상/하향식 , 시스템-비/기능 , 인수-계약상 요구사항
단위 - 컴포넌트 , 모듈단독실행 테스트베드 필요, 의존x 항상동일결과
Mock객체 - 더미 (기능없는객체), 스텁 (더미+특정 값 리턴) , 드라이버 (대상하위호출Param)
스파이 (협력클래스 출력검증) , 페이크 (실제협력클래스 단순구현해둠)
통합 - 점증(상/하향식/샌드위치 통합) / 비점증(빅뱅)
하향식: 스텁→실제모듈 / 깊이,너비우선 상향식: 드라이버→실제모듈
테스트하네스: 테스트 지원을 위한 코드+데이터.
테스트커버리지(=코드) - 테스트 범위, 품질측정기준. (기능기반 / 라인 / “코드” )-커버리지
앱 성능 측정지표 : (처리량 / 응답시간 / 경과시간 / 자원 사용률 )
앱 성능 분석도구 : (성능 테스트 / 시스템 모니터링 ) 도구
클린코드 : ( 가독성 / 단순성 / 의존성 / 중복성 / 추상화 )
응용SW 기초기술활용 (3) ★★★
메모리 관리 MMU
기법 - 반입(요구 예상) , 배치(최 초적악) , 할당 ( 연속 분산), 교체 (FIFO LRU)
프로세스 관리 ( 상태= 생성 준비 실행 대기 완료 ) 디타블웨
디스패치(Context Switching) , 타이머 런 아웃, 블록 , 웨이크업
(야꺼져) 선점-라운드로빈(시간할당) , SRT, 다단계큐, 다단계 피드백 큐
(줄서셈) 비선점 - FIFO, SJF(기아발생), HRN (대기+서비스)/서비스 시간
클라우드컴퓨팅 - 사설,공용,하이브리드 / IaaS인프라 PaaS플랫폼 SaaS소프트웨어
(컴퓨팅 스토리지)가상화 - 물리적 리소스들을 하나로 보이게 ↔ 하나의 물리적 리소스를 여러개
네트워크 - LAN WAN
아파서(Data)티(Segment)냈(Packet)다(Frame)피(bit) - HTTP JPEG RPC TCP IP PPP RS-232C
허브/리피터 → 브릿지NIC→라우터/게이트웨이/공유기/백본 → L4
프로토콜 - 구의타) 구문 의미 타이밍
단편화↔재조립,캡슐화,연결/오류제어,주소지정
2데이터링크-회선/흐름/오류 제어 ( HDLC, PPP, 프레임 릴레이 , ATM비동기식 )
3네트워크-QoS 라우팅 ( IP, ARP(ip를MAC), RARP(MAC은 알고 ip몰라), ICMP (ping),
, IGMP(멀티캐스트), 라우팅 프로토콜(RIP 벨만포드 거리벡터 , OSPF 다익스트라 링크상태)
IPv4(128 192~224,240) IPv6(IP주소확장,이동성,개선QoS,단순헤더)
4전송-TCP(흐름/혼잡 제어) , UDP (비신뢰, 순서없는 데이터그램)
5세션-RPC,NetBIOS
6표현-압축 암복호화 JPEG MPEG
7응용-HTTP FTP SMTP POP3 Telnet SSH
패킷 - X.25 프레임릴레이 ATM / 회선효율.비동기.다중전달 : 메세지
서킷 - 네트워크 리소스 독점 / 전송 절차 형식제약없음 : 영상
교환방식 - 데이터그램 , 가상회선