1. UML
소프트웨어 시스템의 시각적 모델로, 객체 관리를 위해 표준화 된 범용 모델링 언어
- 특징
· 가시화 언어
· 명세화 언어
· 구축 언어
· 문서화 언어
2. 데이터 모델링 절차
개념 데이터 모델링 -> 논리 데이터 모델링(정규화 등) -> 물리 데이터 모델링(반정규화 등) -> 데이터베이스 구축
3. 데이터베이스 특징
· 데이터 무결성 : 동일한 연산에 대하여 정해진 조건을 항상 만족해야함
· 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함 없이 일정
· 데이터 회복성 : 장애 발생시 특정 시점으로 복구가 가능
· 데이터 보안성 : 불법적인 행위로 부터 보호되어야 함
· 데이터 효율성 : 한정된 자원에 요구 조건을 만족해야 함
4. 트랜잭션 특징
· 원자성 : 한 트랜잭션은 완전 성공 또는 실패하여야 함
· 일관성 : 삭제, 삽입, 수정 후에도 일관성 있는 상태를 유지해야 함
· 독립성 : 하나의 트랜잭션이 수행중 일 때 다른 트랜잭션이 끼어들 수 없음
· 지속성 : 성공적으로 수행된 트랜잭션은 영원히 반영 되어야 함
5. 정규화
중복성을 최소화하고 정보의 일관성을 보장하기 위한 데이터 모델링 기법 (ERD 최적화)
(※ 반정규화란? 성능을 목적으로 정규화를 위배를 허용하는 데이터 모델링 기법)
· 제 1정규화 : 모든 속성이 반드시 하나의 값을 가져야 함 (도메인 원자 값으로 구성)
· 제 2정규화 : 모든 속성이 반드시 하나의 UID에 종속 되어야 함 (부분 함수 종속 제거)
· 제 3정규화 : UID가 아닌 다른 속성 간에 종속이 없도록 함 (이행 함수 종속 제거)
· BCNF : 결정자 함수 종속성 제거
· 제 4정규화 : 다중값 종속성 제거. 상호 관계가 없는 Entity를 별도 분리
· 제 5정규화 : 조인종속 제거. 상호 관계가 없는 Entity를 별도 분리
6. 참조 무결성 계약 조건
두 개의 릴레이션이 기본기, 외래키로 참조 관계를 형성한 경우, 참조하는 외래키의 값은 항상 그 릴레이션에서 기본키여야 함
7. 연계 방식 유형
- 직접 연결 : DB Connection Pool, DB Link, 화면 Link, JDBC, API 등
- 간접 연결 : EAI, Web Service/ESB, Socket 등
(※ EAI 유형 Hub & Spoke, Point to Point, Message Bus, Hybrid)
(※ ESB? 웹 서비스 및 Bus를 중심으로 애플리케이션간 통합을 도와주는 기술)
8. 웹 서비스
SOAP, WSDL, UDDI 등 표준기술을 이용하여 다른 컴퓨터와 상호작을을 위한 서비스
· SOAP : 필요한 서비스를 이용하기 위한 프로토콜
· WSDL : XML 포맷의 웹 서비스 기술 언어
· UDDI : 웹 서비스 공개를 위한 WSDL 등록처
9. 형상관리(SCM)
소프트웨어 변경사항을 파악하고 관리하는 작업 (형상 식별 -> 형상 통제 -> 형상 감사 -> 형상 기록)
10. 소프트웨어 모듈 응집도
- 모듈 내부 요소간의 연관도 ( 높을 수록 Good! )
· 우연적 응집도 : 관련 없는 작업을 한 모듈에 모은 경우 (Bad!)
· 논리적 응집도 : 유사한 성격 또는 형태의 요소가 한 모듈에서 처리되는 경우 (Ex> 카드 분실과 카드 정지)
· 시간적 응집도 : 같은 시간에 처리되어야 하는 요소를 모은 경우 (Ex> 초기 또는 종료 처리)
· 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때 요소들이 순차적으로 수행되는 경우
· 통신적 응집도 : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 경우
· 순차적 응집도 : 모듈 내에서 한 활동으로 나온 결과를 다른 모듈의 입력 값으로 사용한 경우
· 기능적 응집도 : 하나의 기능만 수행하는 모듈 (Good!)
11. 소프트웨어 모듈 결합도
- 모듈 간 연관성 ( 낮을 수록 Good! )
· 내용 결합도 : 모듈 내부에 있는 변수나 제어정보를 다른 모듈에서 사용하는 경우 (Bad!)
· 공통 결합도 : 각 모듈의 밖의 전역 변수를 통해 상호 작용하는 경우
· 외부 결합도 : 모듈 밖에 도입된 데이터, 프로토콜, 인터페이스를 공유하는 경우
· 제어 결합도 : 모듈 간 제어용 신호를 주고 받는 경우
· 스탬프 결합도 : 모듈 간 인터페이스로 배열이나 오브젝트 등을 교환하는 경우
· 자료 결합도 : 모듈이 서로 변수 파라미터를 교환하여 상호작용 (Good!)
12. 프레임워크 특징
· 모듈화 : 구현을 인터페이스 뒤에 감추는 캡슐화를 통해 모듈화를 강화하고, 변경에 따른 영향을 최소화
· 재사용성 : 반복적으로 사용하는 컴포넌트를 안터페이스로 제공
· 확장성 : 다형성을 통해 인터페이스 확장이 용이
· 제어의 역흐름 : 프레임워크가 코드 전체 애들리케이션 코드 흐름을 제어
13. 소프트웨어 테스트 원칙
· 자신의 코드는 다른사람에게 테스트 받는다.
· 낚시의 법칙 및 파레토 법칙 : 특정 기능에 결함이 집중되어 발견된다.
· 완벽한 소프트웨어 테스팅은 불가능하다.
· 테스트는 계획 단계부터 실행한다.
· 살충제 패러독스 법칙 : 매번 동일한 테스트 케이스를 반복하면 새로운 결함을 발견할 수 없다.
· 오류-부재의 궤변 : 아무리 테스팅을 완벽하게해도 본래의 기능이 작동하지 않으면 무의미하다.
14. 소프트웨어 테스트 유형
· 정적 테스트 : 리뷰 또는 정적 코드 분석과 같이 소프트웨어의 실행 없이 테스트
· 동적 테스트 : 소프트웨어를 실행하면서 테스트
- 화이트박스 테스트 : 프로그램 내부구조 또는 아키텍쳐 등에 대한 테스트 (≒구조 기반 테스트)
- 블랙박스 테스트 : 적절한 테스트 상황을 만들고 이에 대한 테스트 (≒명세 기반 테스트)
15. UI 설계 원칙
· 직관성 : 누구나 쉽게 이용할 수 있어야 함
· 유효성 : 사용자 목적에 맞게 작동해야 함
· 학습성 : 누구나 쉽게 배울 수 있어야 함
· 유연성 : 사용자 요구사항을 최대한 수용하고 오류를 최소화 해야 함
16. ISO/IEC 9126 품질 요구사항 특성
· 기능성 : 요구된 기능이 제대로 작동하는가(적절성, 정밀성, 상호 운용성, 보안성, 호환성)
· 신뢰성 : 고장에 대한 내구성 및 회복성이 좋은가 즉, 일정시간 기능의 보증
· 사용성 : 사용하기 쉬운가
· 효율성 : 한정된 자원으로 빨리 처리할 수 있는가
· 유지보수성 : 요구사항 개선 및 확장에 얼마나 유연한가
· 이식성 : 다른 플랫폼으로 적용이 쉽게 가능한가
17. 애플리케이션 성능 지표
· 처리량 : 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
· 응답 시간 : 사용자 입력 후 출력이 시작되기 까지의 시간
· 경과 시간 : 사용자 입력 후 출력이 완료되기 까지의 시간
· 자원 사용률
18. SW 개발 보안 가이드
· 입력 데이터 검증 및 표현 : 프로그램 입력 값에 대한 검증 누락 등으로 발생할 수 있는 보안 약점 (SQL 삽입, 크로스 사이트 스크립트)
· 보안 기능 : 부적절한 인가, 중요 정보 평문 저장 등
· 시간 및 상태 : 경쟁 조건, 제어문을 사용하지 않는 재귀 함수 등
· 에러 처리 : 취약한 패스워드 조건, 오류 메시지 노출 등
· 코드 오류 : 널 포인트 역참조, 부적절한 자원 해제 등
· 캡슐화
· API 오용
※ SQL 삽입 : 공격자가 입력 폼 및 URL를 통해 SQL문을 삽입하여 정보를 조작 및 탈취하는 행위
※ 크로스사이트 스크립트 : 악성 스크립트를 입력하여 동적 웹페이지를 생성하여 공격하는 행위
19. IPSec(IP Security)
IP계층에서 무결성과 인증을 보장하는 인증헤더와 기밀성을 보장하는 암호화를 이용한 IP보안 프로토콜
21. SSL/TLS
응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송시 기밀성을 보장하는 공개키 기반의 보안 프로토콜
21. IKE
키 교환 알고리즘
22. AH
메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜
23. ESP
암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성을 제공하는 프로토콜
24. LDAP
TCP/IP 위에서 조직화되고 비슷한 특성을 가진 객체들의 디렉토리 서비스를 조회하고 수정하는 응용 프로토콜
25. SW 개발 보안의 3대 요소
· 기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 노출을 차단
· 무결성 : 데이터가 악의/고의로 변경 또는 파괴되지 않음을 보장
· 가용성 : 서비스를 지속할 수 있도록 보장
26. 객체지향 기본 원칙
· 캡슐화 : 클래스 속성에 대하여 특정 메소드를 통해 접근
· 추상화 : 현실을 속성과 메소드를 통해 모델링
· 다형성 : 같은 이름의 인터페이스를 각 클래스가 재정의하여 사용 가능
· 정보은닉 : 복잡, 변경 가능한 부분을 캡슐화하고 인터페이스만 제공하여 정보보호
· 상속성 : 부모 클래스 속성, 메소드를 상속받아 사용 가능
27. OSI 7 계층
· 물리 -> 데이터 -> 네트워크 -> 전송 -> 표현 -> 세션 -> 응용
(※ TCP/IP 프로토콜 레이어 : 네트워크 인터페이스 -> 인터넷 -> 전송 -> 응용)
28. 프로토콜 기능
· 단편화 : 전송이 가능한 작은 패킷으로 나누는 것
· 재조립 : 단편화 된 패킷을 복원
· 캡슐화(디캡슐화)
· 연결 제어 : 데이터 전송량이나 속도를 제어
21. 라우팅 알고리즘
· 거리 벡터 알고리즘 : 라우터 간의 최단 경로를 스패닝 트리를 통해 찾아 구성
· 링크 상태 알고리즘 : 라우터 간 모든 경로를 미리 파악해 사전에 구성
22. 라우팅 프로토콜
· RIP : 최초의 라우팅 프로토콜. 거리 벡터 알고리즘 사용
· IGRP : RIP를 개선.
· OSPF : 링크 상태 알고리즘을 사용
· BGP : 대형 사업자(ISP) 간의 상호 라우팅
추천 블로그
qh5944.tistory.com/65?category=413403
댓글