
어라? 이게 학점 4.5의 위엄인가? 안그래도 공부하기 싫었는데 더 하기 싫어졌다.. 그래도 오답은 하자!
- UML 순차 다이어그램
- 객체 간 동적 상호작용을 시간중심 모델링
- Self-Message, Statement block 등으로 구성

- Message-Oriented Middleware, MOM
- 익스트림 프로그래밍
- 변경이 많음
- 상식과 경험을 적용
- 소스코드에 집중함
- 구체적이지만 구조적이진 않음
- 유스케이스 구성요소 간 관계
- 연관(액터-유스케이스), 포함(선수케이스->후발케이스), 확장(추가행동일수도?아닐수도?), 일반화(여러액터->액터들)
- 구체화라는건 없다.
- 요구사항 분석 비기능적
- 모든 화면이 3초안에 보이자(구현보다는 편의같음)
- 미들웨어
- 여러 OS간 응용프로그램 사이에 위치(1:1, ...n:n)
- 사용자는 몰라도 됨
- 컴포넌트 연결을 위한 인프라 구조
- UI
- 이해쉬움
- 조작쉬움
- 장애인도 고려
- 오류시 사용자 인지(님 비번 털림 ㅅㄱ)
- 소프트웨어 개발 영역결정 요소 중 인터페이스
- 애자일
- 컴포넌트
- 역활있게 독립적 존재하여 재사용 가능한 최소 단위(세포같은 느낌)
- 인터페이스로만 접근 가능
- GoF에서 구조패턴
- Adaptor(만능 어댑터), Bridge(추상부 분리), Proxy(모방)
- Builder는 생성일거임
- Natural User Interface(NUI)
- UI종류인데 사용자 움직임 인식이나 멀티 터치 이런거 사용
- 소프트웨어 모델링
- Use Case Diagram
- 시스템 액터는 이미 다른 플젝에서 사용중인게 지금꺼에 연동하는거임 ex PC(Payment Component)
- MVC패턴
- Integration Test
- 모듈과 인터페이스 결합을 테스트
- 하향식 통합 테스트는 넓이우선(BF)로 테스트 대상 모듈 선택 가능(이게 더 잘쓰임. 빠름윗물이 맑아야 아랫물이 맑기에)
- 상향식 통합 테스트는 하위부터 테스트
- 이진탐색 비교횟수
- 소프트웨어 공학 Walkthrough(워크스루)
- 크게 개발방법에 Inspection(한명의 코드를 여러사람이 분석), Peer Review(다같이분석), Walkthrough(계획따윈없음. 이것저것 다 해보기에 이해쉽고 수작업임)가 있음
- Inspection: 계획->사전교육->사전검토->준비->인스펙션 회의->수정->후속조치
- 테스트 케이스
- 목표랑 방법부터 하고 작성시작
- 테스트 합불기준을 테스트 오라클(Test Oracle)이라고 함
- DRM(Digital Rights Managements)
- 전자적 보안도 있음
- 클리어링 하우스는 사용자에게 라이센스 부여하는거래
- 미디어 생명주기동안 관리하는 기술
- 접근제어기술이기도 함
- 위험 모니터링
- 목적은 위험하던 안위험하던 해당 징후들이나 위험요소들에 대해 인지를 하고 있냐? 이게 중요하대
-
RCS(Revision Control System)->깃허브임
-
알고리즘
- 선형 검색은 그냥 for(int i=0; i<length) 그냥 다돌리는거래
- 단위 테스트
- 모듈 내부 구조를 볼 수 있는 구조적 테스트를 주로 함(웬만해서 주로~는 추상적이라 다 옳을거임)
- 참고로 Stub(스텁)은 테스트 중 미리 준비된 답을 제공하는거. 뭐 결과를 받는게 아니라 결과를 주는 역활
- 전위중위후위순회 순서(햇갈리면 부모-자식 부분적으로 나누어서 비교하면서 순서가 맞나? 생각 ㄱㄱ)
- 전위(루트에서 왼쪽으로 쭉쭉 대각선. 이건 머리에서 생각)
루트->왼->오

- 중위(루트에서 섞임)
왼->루트->오

- 후위(맨 꼬리 노드부터)
왼->오->루트

- 단위 테스트 도구
- 정규형
- 제1(원자)->제2(키뺀 나머지 조합이 키에 종속긍께 같은값들을 가지는 애들이 없음긍께나머지만으로도 특정가능)->제3(키뺀 나머지들 간 종속이 없음이행적함수종속이아니다 or 부분종속이 없다.)->BCNF(결정자가 후보키다암기)
- 인덱스
- CREATE INDEX, DROP INDEX
- 테이블 삭제 시 인덱스도 삭제됨
- DDL DML DCL TCL
- Definition: CREATE ALTER DROP RENAME TRUNCATE
- Manupulation: SELECT INSERT UPDATE DELETE
- Control: GRANT REVOKE
- Transaction Control: COMMIT ROLL BACK SAVEPOINT
- 데이터사전(시스템 카탈로그 | 시스템 데이터베이스)
- 메타데이터임. 이 데이터에 굳이 직접 접근하고 싶으면 데이터 디렉토리 안의 위치정보를 확인하면 됨(카탈로그<디렉토리)
- 릴레이션(테이블)
- 하나의 요소를 튜플이라하는데 순서따윈 없음
- 튜플의 수를 Cardinality라고 함
- 반대로 Attribute(속성) 수를 Degree(차수)라고 함.
- 데이터베이스 뷰(View)
- 가상 테이블이어서 update 제약있음 CREATE VIEW
-
트랜잭션 상태 중 트랜잭션 마지막 연산이 끝난 직후를 Partially Committed 상태, 종료시 Committed
-
키 종류
- 슈퍼키: 유일하니
- 복합키: 여러개 ex 주민+이름
- 후보키: 유일+최소 ex 특정할게 생일+이름밖에 없넹
- 기본키: 후보중 선택된거(검색에 무조건 필요하진 않음 대체키사용해도되니)
- 대체키: 후보중 선택안된거
- 외래키: 다른테이블 기본키 참조
- 데이터베이스 설계단계
-
C언어에서 strrev는 문자열 거꾸로
-
C언어 비트연산 그냥 0이 아니면 1임
#include <stdio.h>
int main() {
int a=5, b=3, c=12;//0101 0011 1100
int t1, t2, t3;
t1=a&&b;
t2=a||b;
t3=!c;//0011
printf("%d %d %d\n", t1, t2, t3);//1 1 0
return 0;
}
- IP 프로토콜
-
Header Length는 32비트 워드 단위임
-
Packet Length는 IP헤더를 제외한 패킷 전체 길이로 최대 2^16비트임.

-
대상이 없어도 일단 전달하는 비연결성의 한계
-
중간에 패킷이 사라져도 잘 모르는 비신뢰성의 한계
-
체크섬 기능이 있긴한데 데이터 체크섬만 제공
-
Best Effort원칙(노력은 하는데.. 결과는 몰루?)에 따른 전송기능 제공
- 프로세스 스케줄링
- FIFO: 차례대로
- SJF: 짧은거부터
- RR: 모두가 공평하게 time slice별로 나눠줌
- HRN: (대기시간+CPU사용시간)/CPU사용시간
- SRT: SJF+RR
- MLQ: 다단계(우선순위 별 여러 queue)
- UNIX
- 백그라운드 당연히 가능하니 아직 쓰겠지
- 장치 간 호환성이 높아 이식성이 높다
- Multi-User와 Multi-Tasking모두 지원
- UDP 프로토콜
- 헤더가 단순함
- 비연결임
- TCP랑 같은 전송계층
- 파이썬 Tuple타입
- list와 달리 수정불가. 리스트는 []인거랑 달리 얘는 ()로 함
- 응집도(우논시절통순기)
- 결합도와 달리 독립성을 나타냄
- 최악 우연적->논리적->시간적->절차적->통신적->순차적->기능적 최고
-
우연적 응집도: 쓸데없는거 넣음
-
논리적 응집도: 비슷한 작업을 한 모듈이 처리
-
시간적 응집도: 이 때 같이 실행되야하는 작업 한 모듈이 처리
-
절차적 응집도: 모듈 내부에서 1번작업2번작업
-
통신적 응집도: 동일한 입력과 출력사용
-
순차적 응집도: 출력을 다른 모듈 입력으로
-
기능적 응집도: 완벽
-
사용자 수준 스레드가 커널 수준 스레드보다 좋은 점
- 커널 모드의 전환 없이 스레드 교환이 가능해 오버헤드 감소
- 결합도
- 약할수록 독립성(응집도)가 높아짐
- 최고 자료->스탬프(견인)->제어->외부->공통(공유)->내용 최악
- 내용 결합도: 모듈이 다른모듈 내부꺼를 직접 참조
- 공통 결합도: 공용 영역 데이터 참조
- 외부 결합도: 외부 모듈 변수를 참조
- 제어 결합도: 처리 기능이 두 모듈에 분리
5. 스탬프 결합도: 두 모듈이 동일한 자료구조 조회
- 자료 결합도: 함수호출
46. C언어 배열 포인터 관련해서 & 있는지 없는지 []있는지 없는지 둘다 있는지 자세히 주의
47. 외부 컴에서 접속 인자 여부를 제어하는 접근 제어 유틸리티 tcp wrapper
48. 기기를 키오스크에 댈 때 사용되는 초고속근접무선통신NFC 기술을 Zing이라고 한다 징~
- 소프트웨어 개발 프레임워크
- 프레임워크의 동작 원리가 일반적인 프로그램의 흐름과 반대다(소스만들고->이용, 이용하여->소스만듬)라서 IoC(Inversion of Control)이라고도 한다.
- 클라우드 기반 HSM(Cloud-based Hardware Security Module)
- 네트워크 토폴로지(모양)
- Mesh: 망형 그물형 소수인데 통신량 많을 경우 사용(군대)
- Star: 중앙노드
- Bus: 공통배선에 각 노드 연결. 배선 트래픽으로 인한 저하
- Ring: 노드 추가삭제 어려움(Linked list)
- 악성코드
- Worm: 다른 컴의 취약점 찾아 스스로 전파하거나 증식
- Rogue Ware: 감염됐다고 경고띄우며 금전결제
- Adware: 사용자 동의 없이 광고 생성하여 과부하
- Reflection Attack: DDOS 대규모 트래픽 공격
- 공격기법
- Ping of Death: 디도스(다량 ICMP패킷 전송하여 마비)
- Piggyback Attack: 사용자가 사용안할 때 공격
- XSS: 상대 브라우저에 스크립스 실행
- 암호 알고리즘
- 대칭 암호 알고리즘은 비교적 빠름(AES, IDEA)
- 비밀키 교환 해야함
- 월별(man-month)생산성
- 한 명이 한달에 몇라인의 코드를 만들 수 있는가?
- 접근 통제 방법(Access Control보안)
- RBAC(Role Based): 직무, 직책 등 역활에 따라 부여
- DAC(Discretionary): 임의적으로 통제(사용자나 그룹)
- MAC(Mandatory): 강제적으로 통제(보안등급, 규칙기반)
- COCOMO(Constructive Cost Model)
- man-month로 산정결과 표현
- Boehm(보헴)이 제안하여 원시코드 라인 수에 의한 비용산정
- 중소규모 프로젝트에 적합
- 각 사용자 인증 유형
- 지식: 알고 있는 것(패스워드, PIN)
- 소유: 가지고 있는 것(토큰, 스마트 키)
- 행위: 하는 것(서명, 움직임, 음성)
- 존재: 본인을 나타냄(지문, 홍채)
- 영어공부시간
- Authorization: 인가하다/승인하다 (등급 권한 확인 등)
- Authentication: 인증하다 (로그인)
- SDN(Software Defined Networking)
- 네트워크를 제어부, 데이터 전달부로 분리
- 기존 하드웨어 의존 체게에서 소프트웨어를 도입
- 펌웨어 업그레이드, 전송경로 수정 등으로 문제 처리
- PERT차트로 프로젝트 일정 관리하기
- 작업들 간 관련성, 결정경로, 경계시간, 자원할당 등을 제시