컴퓨터공학 전공자 기준, 일반적인 개념 부분은 제외함.
bold: 중요 / 빨강: 외우기
1. 소프트웨어 설계 요약
- 애자일 방법론 : 문서 중심 X
- 요구사항 검토 : 동료 검토 / 워크 스루(명세서 미리 배포 해 짧은 회의로 결함 발견) / 인스펙션(전문가들이 명세서 확인)
- CASE 도구 : 컴퓨터의 도움을 받는 요구사항 검증
- 럼바우 객체지향 : 객체(모델링) / 동적(상태) / 기능(DFD).
- 소프트웨어 생명주기 : 폭포수(순차적, 이전 단계 못봄) / 나선형(여러 번 반복하며 위험 최소화) / HIPO(하향식 설계, 가시적/총체적/세부적 다이어그램) / V모델 (폭포수 변형, 작업과 결과 검증에 초점)
- 상향식/하향식 = 객체지향/절차지향
- 자료 흐름도 DFD : process - 원 / dataflow - 화살표 / data store - 선 / terminator - 사각형
- 다이어그램 : 구조.정적 - 클래스, 객체 / 행위.동적 - 유스케이스, 순차
- 액터 : 시스템과 상호작용하는 사람이나 다른 시스템에 의한 역할.
- 디자인 패턴 GoF : 생성 / 구조 / 행위
-> 생성 : 팩토리, 빌더, 싱글톤 / 구조 : 어댑터, 브릿지, 프록시 / 행위 : 옵저버, 메멘토, 상태, 템플릿
- 자료사전 기호 : =정의 / +연결 / {}반복 / []선택 / ()생략 / **주석
2. 소프트웨어 개발 요약
- 화이트박스(내부 코드 o, 구조 고려) / 블랙박스(내부 x, 구조 고려 x)
- 정렬 : 버블정렬(실행 시 가장 큰 값이 맨 뒤로 이동) / 선택정렬(실행 시 가장 작은 값이 왼쪽 값과 변경)
- 스텁: 하향식, 테스트할 모듈에 넘겨줌 / 드라이버 : 상향식, 테스트 완료 후 결과를 받는 역할
- 인수 테스트 : 알파(개발자 앞에서, 통제된 환경) / 베타(사용자끼리, 통제된 환경X)
- 트리 : 단말(terminal) 노드(자식x) / 차수(다음 노드 개수 중 가장 큰 값)
- 트리 순회 : 중위(좌 중 우) / 전위 (중 좌 우) / 후위 (좌 우 중)
- EAI(Enterprise Application Integration) 기업 내 앱 상호 연동 솔루션 : Point-to-point(미들웨어없이 직접 연결) / Hub & spoke (중앙 집중) / Message bus(미들웨어(bus) 통한 처리) / hybrid
- Pareto 법칙 : 오류의 80퍼가 모듈의 20퍼에서 발견
- Brooks 법칙 : 인력 추가가 오히려 방해될 수 있다.
- Longtail 법칙 : 사소한 80%가 핵심 20%보다 뛰어난 가치 (파레토 반대)
- DRM : 디지털 저작권 관리 : 복제 변조 방지 / 키 관리 및 라이선스 발급 관리
- 인터페이스 보안 : IPsec(IP패킷 변조 방지 및 은닉) / SSL(전송과 앱 계층 사이 인증 및 암호화) / S-HTTP(클라이언트-서버 암호화)
- 소프트웨어 버전 등록 용어 : 체크인(저장소에 새로운 버전 파일 갱신) / 체크아웃(저장소 파일 받아옴) / 커밋(체크인 시 이전 갱신이 있으면 충돌을 알리고 수정) / 가져오기(처음 파일 복사(동기화랑 다름)) / 동기화(최신 버전 동기화)
3. 데이터베이스 구축 요약
- 기초 용어 : 스키마 - DB, 쿼리 - 질의, 트랜잭션 - 여러 쿼리로 이루어 한 뭉텅이의 작업
릴레이션 - 테이블, 차수 - 열 수, 카디널리티 - 행 수
- 트랜잭션 특징 : 원자성 Atom(모두 반영 혹은 모두 X) / 일관성 Consist(트랜잭션이 성공하면 항상 일관성 있어야함) / 독립성 Iso(여러 트랜잭션이 실행되도 각 연산에 끼어들 수 없음) / 영속성 Dura(트랜잭션이 완료되면 트랜잭션 결과는 항상 지속됨)
- 테이블이 참조하고 있으면, RESTRICT가 있어도 삭제 불가. CASCADE가 있으면 같이 삭제됨.
- 키: 후보키 : 유일성과 최소성 모두 만족하는 키 / 슈퍼키 : 유일성은 만족, 최소성(추가 속성의 여부) X / 기본키 : null값이나 중복값을 못가지는 키 / 외래키 : 기본키를 참조하는 키 / 대체키 : 후보키 중 기본키가 되지 않은 키
- 정규화 : 도부이결다조
비정규 -> 제1정규 : 비정규 릴레이션이 제1정규형이 되기위해 도메인이 원자값 되어야 한다. (하나의 속성에 하나의 값만)
제1정규 -> 제2정규 : 부분적 함수 종속 제거가 필요 (기본키의 일부만으로 결정되는 속성 제거)
제2정규 -> 제3정규 : 이행적 함수 종속 제거가 필요 (A->B, B->C = A->C)
제3정규 -> BCNF : 결정자이면서 후보키가 아닌 것 제거 필요 (기본키가 아닌 속성이 다른 후보키를 결정 X)
BCNF -> 제4정규 : 다치 종속 제거 필요 (한 키가 여러 값을 가질 때, 독립적인 관계 분리)
제4정규 -> 제5정규 : 조인 종속성 이용 (조인 없이 원래 데이터를 복원할 수 있어야함)
- Lock : 로킹 단위가 커지면 다 작아지고 편해진다. 반대로 로킹 단위가 작아지면 다 커진다.
- 무결성 : 개체 무결성(기본키는 NULL, 중복 X) / 참조 무결성(외래키는 NULL 혹은 기본키와 동일) / 도메인 무결성(속성 값이 정의된 도메인에 속한 값이어야 함)
- 관계대수 : RDB 검색을 어떻게 하는지에 관한 절차적 언어 / 관계해석 : 비절차적
select (sigma, 조건에 맞는 검색) / project (pi, 특정 속성 보여주기) / join ( ▷◁ , 합치기) / division ( ÷, 검색 속성 제거하고 보여주기)
- E-R 다이어그램 표현 : 개체 - 사각형, 관계 - 마름모, 속성 - 원, 연결 - 선
- 뷰 : 가상 테이블, 논리적으로만 존재. CREATE, DROP은 되지만 ALTER 불가능, DML 제약 O
- 투명성 : 위치(실제 위치 없이 논리 명칭으로 액세스) / 중복(여러 곳에 있어도 하나인 것처럼) / 병행(트랜잭션 동시성 O) /장애(장애에도 정확히 수행) / 분할(사본이 여러 곳에 있음을 인식할 필요 없음)
- 설계 : 물리적 설계 (레코드 집중 분석 / 저장 레코드 / 저장 경로 / 접근 경로), 논리적 설계 (논리구조 매핑, 트랜잭션 인터페이스, 스키마 정제)
4. 프로그래밍 언어 활용 요약
응집도는 높을수록, 결합도는 낮을수록 좋다.
결합도
내용결합도 - 공통결합도 - 외부결합도 - 제어결합도 - 스탬프결합도 - 자료결합도(데이터)
-> 내공부 제스자(약해지는 순서)
응집도
우연적응집도 - 논리적응집도 - 시간적응집도 - 절차적응집도 - 통신적응집도 - 순차적응집도 - 기능적응집도
-> 우논시절 통순기(강해지는 순서) 우 < 기
- 연산자 우선순위 : 단항!, 산술+-, 시프트>>, 관계>=,== 비트&, 논리&&, 조건?, 대입=, 순서, (단술시계 트리건대순)
- 네트워크
어플리케이션 계층 (HTTP, FTP, SMTP, message)
전송 계층 (TCP/UDP, segment/datagram) - 신뢰 검사
네트워크 계층 (IP, packet) - 라우팅/포워딩
데이터링크 계층 (MAC 주소, frame) - 라우터(노드) 간 전송
물리 계층
서브넷마스크 - 32bit 기준 왼쪽부터 1을 채워넣고 변환
- 리눅스
파일의 경우 666 - umask = 파일 권한 값, 디렉토리는 777 - umask = 파일 권한 값
chmod = 허가 지정
uname = 커널 버전 확인
5. 정보시스템 구축관리 요약
- COCOMO 모델 : 소프트웨어 복잡도에 따라 3가지 구별, <5만 : organic / <30만 : semi-detached / >30만 : embedded
- CMM 모델 : 능력 및 조직 성숙도 평가 모델, 초기-반복-정의-관리-최적화. (계획X)
- 라우팅 프로토콜 : RIP(거리벡터, 벨만포드, 최대 15홉, 소규모, 느림) / OSPF(링크상태, 다익스트라, 홉 제한 X)
- 암호화 알고리즘 : 단방향(HASH) / 양방향 (블록-E~, 스트림-LFSR, RC4, 공개키-RSA)
- 정보보안 3요소 : 기밀성(허가 시 열람) / 무결성(허가 시 수정) / 가용성 (필요할 때 사용가능)
- 접근통제 정책 : RBAC (Role Based Access Control) : 사용자 역할에 따라 권한 부여
- 공격기법 :
서비스 공격 - Dos / DDOS / Ping of Death(패킷 크기 범위 이상) / SYN Flooding
네트워크 공격 - 스미싱 / SQL injection / XSS
정보보안 침해 - 좀비 / Worm(시스템 부하로 다운시킴) / Ransomware (문서 암호화)
'기타' 카테고리의 다른 글
[기타] 컴퓨터공학도를 위한 게이밍 노트북 추천 / 쿠팡 5월 빅스마일데이 특가 (1) | 2023.05.08 |
---|---|
클라우드IDE로 주가 조회 서비스 만들기 (0) | 2023.02.19 |
[군장병 SW/AI 역량 강화 교육] 군장병 SW/AI 역량 강화 교육이란? (0) | 2022.08.02 |
[군대] TOD병이란? / 후기 (7) | 2022.07.31 |
가치있는 군생활 보내기 (2) (0) | 2022.07.08 |