1. 객체지향분석 방법론
- Coad-Yourdon - ER다이어그램을 사용하여 객체 모델링
- Booch(부시) - 미시적, 거시적 개발방법론을 모두 사용
- Jacobson(제이콥슨) - Use Case를 사용하여, 사용자/외부 시스템 등의 상호작용하는 방법을 기술
- Wirfs-Brock - 분석과 설계의 경계가 없음, 고객명세서를 평가하여 설계작업까지 수행
2. UML
- State diagram - 객체가 가진 상태변환
- Sequence diagram - 객체 사이에서 오가는 메시지를 시간 변화 순으로
3. Use Case의 구성요소간 관계
- 일반화 : 상속을 받는 관계
- 그룹화 : 상속을 받지 않는 관계
4. 선택정렬/삽입정렬
- 선택 : 가장 간단한 알고리즘, 정렬되지않는 요소들 중 가장 작은 값을 선택하여 첫번째 요소의 값과 교환
- 삽입 : 하나의 원소를 선택하여, 정렬된 원소 내의 적합한 자리로 삽입
5. 자료구조
- 선형 : 스택, 큐, 덱, 리스트
- 비선형 : 트리, 그래프
※ 스택 : 서브루틴 호출, 인터럽트 처리, 수식계산 및 표기법 등에 활용
6. 이진 검색 알고리즘
- 검색대상의 범위를 반으로 줄여가며 탐색하는 알고리즘
- 검색할 데이터가 정렬되어 있어야 한다.
- 탐색효율이 좋고 탐색시간이 적게 소요
7. 소프트웨어 품질 목표
- 정확성(Correctness) - 시스템 사양, 설계, 구현에 있어 오류가 없는 정도, 시스템의 정확한 구성에 초점
- 유용성(Usability) - 사용자가 시스템을 배우고 사용하는데 있어서 용이함
- 효율성(efficiency) - 메모리와 같은 자원의 효율적 사용
- 신뢰성(reliability) - 정해진 상황에서 필요한 기능을 수행할 수 있는 시스템의 능력
- 무결성(integrity) - 시스템이 프로그램에 대하여 미인증 사용자에 대한 데이터 접근을 막고, 허용된 형태의 데이터 접근 및 사용만을 허가하는 능력
- 정밀성(accurancy) - 구성된 시스템에 오류가 없는 정도, 시스템이 용도대로 기능을 잘 수행하는 것에 초점
- 견고성(robustness) - 시스템이 잘못된 입력, 악조건에서도 기능을 계속 수행할 수 있는 능력
8. 인수테스트
- 알파(개발자), 베타(사용자), 계약 인수, 규정 인수
9. 데이터베이스 설계
- 개념적 설계 - 정보 구조화, 데이터를 추상화하여 표현, 트랜잭션 모델링, 요구조건 분석을 통해 ER다이어그램으로 표현(독립적인 개념 스키마 설계) -> DBMS와 상관없음
- 논리적 설계 - 자료를 컴퓨터가 이해할 수 있도록 논리적 구조, DBMS에 맞게 표현, 트랜잭션에 대한 인터페이스 설계, DBMS에 맞게 스키마 설계, 스키마 평가 및 정제
- 물리적 설계 - 물리적 구조의 데이터로 표현, 저장 구조 및 액세스 경로 설정, 레코드 집중 분석 및 설계, 저장 레코드 양식 설계
10. 로킹
- DB 파일, 레코드
- 로킹 단위가 낮아지면 병행성 수준이 높아지고, 오버헤드 증가, 데이터베이스 공유도 증가
- 한번에 로킹할 수 있는 단위 -> 로킹단위
11. 시스템 카탈로그
- 시스템 그 자체에 대한 내용 등이 포함되어 있는, 다양한 객체와 관련한 정보를 포함하는 시스템 데이터베이스이다.
- 시스템 카탈로그 내 각 테이블은 사용자를 포함하여, DBMS에서 지원하는 모든 데이터 객체 등에 대한 정의와 명세를 포함한 정보를 유지 관리하는 시스템이다.
- DBMS가 스스로 생성하고 유지하는 DB내 시스템 테이블 집합체
- 카탈로그 갱신은 시스템이 자체적으로 자동 갱신하며, 사용자가 갱신하지 않는다.
12. 데이터 조작
- DDL : CREATE, ALTER, DROP, TRUNCATE -> 도메인, 인덱스, 테이블, 뷰 등
- DML : SELECT, INSERT, DELETE, UPDATE
- DML : COMMIT, ROLLBACK, GRANT, REVOKE
13. 정규화를 거치지않아 발생하는 이상현상(Abnormality)
- 삭제이상 : 한 튜플을 삭제할때, 의도와는 달리 다른 값들도 같이 삭제되는 현상
- 삽입이상 : 데이터 삽입시 의도하지 않게 원하지 않는 값들도 같이 삽입되는 현상
- 갱신이상 : 튜플 속성값 변경시, 일부 튜플의 정보만 갱신되어 정보 모순이 발생하는 현상
14. 릴레이션 관련 개념
- 릴레이션 - 테이블
- 튜플 - 행
- 속성 - 열
- 스키마 - 릴레이션의 구조를 논리적으로 정의한 것
15. 교착상태 발생 조건
- 상호배제(Mutual Exclusion)
- 점유와 대기(Holad and Wait)
- 비선점(Nonpreemption)
- 환형대기(Circular Wait)
16. IPv6
- 128bit 주소체계
- 애니캐스트 : 호스트 그룹 내 가장 가까운 수신자에게 전달
- 유니캐스트, 멀티캐스트, 애니캐스트
※ IPv4 -> 유니캐스트, 멀티캐스트, 브로드캐스트
17. Working Set
- 운영체제 가상기억장치 관리에서 프로세스가 일정 시간동안 가장 많이 참조하는 페이지들의 집합
※ 스레싱 : 지나친 페이지 부재가 발생하여, 페이지 교체보다 페이지 부재로 인한 성능 저하가 발생되는 현상
18. WAS
- 웹서버와 함께 동적 자료를 처리하는 구성요소
- Tomcat, GlassFish, JBoss, Jetty, Websphere, WebLogic, JEUS, Resin
19. 백도어 담지 도구
※ tcpdump : 컴퓨터에 부착된 네트워크를 통해 송수신되는 패킷을 가로채고 표시할 수 있도록 도와주는 컴퓨터 도구
※ cron : 스케쥴링 프로그램, 작업 실행 및 주기를 표현하는데 ()표현식을 활용한다.
※ netcat : TCP,UDP를 활용하여 네트워크 연결을 읽고 쓰는 컴퓨터 네트워킹 유틸리티
20. LoC
- LoC
- = 총 라인 수 / 프로그래머의 월평균 생산 라인수
- = 인력 * 투입기간
21. 구조적 개발 방법론
- 요구사항을 문서화
- 자료흐름도, 자료사전, 소단위명세서
22. IT신기술
- SDDC(Software Defined Data Center) - 데이터 센터의 모든 자원이 가상화되어 서비스, 소프트웨어 조작만으로 자동 제어
- WISUN(WIRELESS SMART UTILITY NETWORK) - 스마트그리드와 같은 장거리 무선 통신기술을 구현하기위해 필요한, IoT 서비스를 위한 저전력 장거리 통신 기술
- 스마트그리드 - 전기 및 정보통신기술을 활용하여, 전력망을 지능화/고도화하여 고품질 전력서비스 제공, 에너지 이용효율 극대화
23. 소프트웨어 개발 모형
- 폭포수 : 단계적, 가장 역사가 오래되었고 성공사례 많음, 체계적
※ 폭포수 순서 : 타당성 검토 > 계획 > 요구사항분석 > 설계 > 구현 > 테스트 > 유지보수(KB프로젝트 생각하면 좋을듯, 수주부터 시작함)
- 나선형 : 위험 최소화, 점진적으로 완벽한 시스템 개발, 위험관리 능력에 따라 성공 여부에 영향, 대규모 프로젝트/위험 부담이 큰 시스템 개발에 적합
- 프로토타입 : 요구분석단계에서 사용하며, 사용자 요구사항을 정확히 파악하기위해 소프트웨어 시제품을 만들어 최종 결과물을 예측하는 모형(고객이 샘플 모델 볼 수 있고, 비용이 그렇게 많지는 않음)
- RAD(Rapid Application Development) : 빠르고 쉽게 응용프로그램을 만들기 위한 시각적 도구, 개발 모형(By Code Generator), Visual C#, MiPlatform, JRP/JAD/CutOver 등..
※ 이름이 비슷한 나선형 모델, 폭포수 모델은 이러한 개발 모형을 구체화한 말 그대로 "모델"이고, 모두 Bohem이 제시하였다.
24. 세션 하이재킹 탐지 기법
- 비동기화 상태 탐지
- ACK STORM 탐지
- 패킷 유실 및 재전송 탐지
25. 분할과 정복
- 분할과 정복은 하향식이고, 구조적 개발 방법론이다.
26. 키개수