![post-thumbnail](https://velog.velcdn.com/images/lxn_ee/post/a8e1465d-ace7-42a9-9d8e-665dbc6a150c/image.png)
2과목 프로그래밍 언어 활용
결합도
- 모듈 간에 상호 의존되는 정도를 나타낸다.
- 독립적인 모듈이 되기 위해서는 각 모듈 간의 결합도가 약해야 하며 의존하는 모듈이 적어야 한다.
- 결합도의 종류(약함<강함)
- 자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도 (자스제외공내)
- 자료 결합도 : 서로 다른 모듈 간에 매개변수 또는 인수를 통해 꼭 필요한 자료만을 교환하는 경우의 결합도 (제일 바람직)
- 스탬프 결합도 : 서로 다른 모듈이 동일한 자료구조를 참조하는 경우의 결합도
- 내용 결합도 : 한 모듈이 다른 모듈의 내부자료를 직접적으로 참조 하는 경우의 결함도(제일 결합도가 강함)
응집도
- 모듈 안의 요소들이 서로 관련되어 있는 정도를 나타냄
- 응집도의 종류(약함<강함)
- 우연적 응집도 < 논리적 응집도 < 시간적 응집도 < 절차적 응집도 < 교환적 응집도 < 순차적 응집도 < 기능적 응집도 (우논시절교순기)
- 논리적 응집도 : 논리적으로 서로 관련 있는 요소들을 모아 하나의 모듈로 작성한 경우의 응집도
- 절차적 응집도 : 일정한 순서에 의해 처리되어야 할 요소들을 하나의 모듈로 구성한 경우의 응집도로, 전달 데이터와 반환 데이터 사이에 관련이 없음
- 기능적 응집도 : 모듈 내부의 모든 기능 요소가 한 가지의 작업만을 수행하는 경우의 응집도
재사용
- 이미 개발된 기능들을 파악하고 재구성하여 사로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화시키는 작업이다.
- 재사용 규모에 따른 문류 : 함수와 객체, 컴포넌트, 애플리케이션
효과적인 모듈 설계 방안
- 결합도는 줄이고 응집도는 높여서 모듈의 독립성과 재사용성을 높인다.
- 복잡도와 중복성을 줄이고 일관성을 유지한다
보안 취약점(Security Vulnerability)
- 시스템 기능이나 설계, 구현 단계에서의 문제점 등으로 인해 시스템이 가지게 되는 약점을 의미한다.
보안3대요소
- 기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허영되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음
- 무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음
- 가용성 : 인가받은 사용자는 언제라도 사용할 수 있음
API(Application Programming Interface)
- 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 의미한다.
- Open API : 누구나 무료로 사용할 수 있게 공개된 API