모듈 구현 (직전 , 전전 회차에 나옴)
모듈 : 특정 기능을 수행하는 단위, 다른 모듈과 결함해 전체 구성
독립성 : 응집도는 높이고 결합도를 낮춘다.
FAN IN / FAN OUT - 틀리면 접자..
결합도 (낮을수록 좋다) - 자스제외공내 => 뒤로 갈수록 낮아짐
자료 : 값을 그대로 전달 f(10)
스탬프 : 배열, 스트럭쳐 전달 f(&a)
제어 : 제어 요소 전달 f(int a, int b)
외부 : 다른 모듈 선언 변수 참조
공통 : 전역 변수
내용 : 다른 모듈 내부 기능 사용
응집도 (높을수록 좋다) - 우논시절통순기
기능 : 단일 목적 수행
순차 : 순차적으로 실행되는데 출력값이 다음것의 입력값이 됨
통신 : 동일한 입출력을 가짐
절차 : 순차적으로 수행
시간 : 같은 시간에 실행되는 것
논리 : 유사한 성격을 가짐
우연 : 연관 X
EAI - 기업 내 애플리케이션 간의 데이터를 통합하고 상호 운용하는 것
ex): CJ ONE - CJ계열사를 묶은 어플 (로지스 , 제일제당 , 대한통운 등 ...)
SSO (하나 로그인하면 다 로그인됨) / 포인트 통합 등등 여러 기능 제공
EAI종류
- Point To Point - 어플간 1:1 연결
- Hub & Spoke - 중앙 허브를 통해 관리
- Message Bus - 메세지 버스를 통해 통신
- Hybrid - 다 사용
SOAP
XML기반의 표준화된 웹 프로토콜
보안성과 트랜잭션 관리가 중요한 복잡한 웹 서비스 통신에 사용
HTTP, HTTPS , SMTP 등을 통한 XML 메세지 교환 프로토콜
SOAP 구성 요소
- SOAP
- UDDI : 모음집
- WSDL : XML형식의 언어(설명서)
REST
HTTP 기반의 경량화된 아키텍쳐 스타일
URL을 통해 자원을 표현,교환
구성 요소
- 자원 : URI
- 행위 : GET, POST, PUT, DELETE
- 표현 : 데이터
HTTP
HTTP : 클라이언트와 서버간의 HyperText 전송 프로토콜
HyperText 문서내의 링크를 통해 다른 문서나 리소스로 접근 가능
HTML : 웹 페이지용 마크업 언어 HYPERTEXT 작성(구조 정의)
AJAX : 비동기 처리
인터페이스 전송 데이터
JSON : 경량 데이터 교환 언어 , 가독성,구조화 높음
XML : 계층적 표현하는 마크업 언어
YML : 직렬화
CSU : 쉼표로 구별
객체지향 구성 요소
클래스 - 붕어빵 틀
ㄴ 속성 : 객체가 가지는 데이터나 상태
ㄴ 메서드 : 객체가 수행할 수 있는 동작 , 기능을 정의한 함수
객체 - 붕어빵 틀에서 만들어져 나온 붕어빵 , 인스턴스
메세지 - 객체간의 메서드를 호출하여 상호 작용하는 방식
객체지향 특징
캡슐화 : 외부에서의 접근 제한
정보은닉 : 내부를 숨기고 필요한정보만 제공
상속 : 생략
다형성 : 메서드 오버로딩,라이딩 / 하나의 객체지만 여러타입을 가질 수 있음
추상화 : 간결하게 표현
객체지향 설계 원칙
SOLID
- 단일 책임 원칙 (Single Responsibility principle) - 한 클래스는 하나의 책임
- 개방 폐쇄 원칙 (Open Closed Principle) - 개방에는 열려 있고 변경에는 닫혀 있어야 한다.
- 리스코프 치환 원칙 (Liscov Substitution Principle) - 자식은 부모를 대체 가능해야 한다.
- 인터페이스 분리 원칙 (Interface Sergregation Principle) - 안쓰는 인터페이스는 구현하지 마라.
- 의존성 역전 원칙 (Dependency Inversion Principle) - 구현클래스에 의존하지 말고 인터페이스에 의존해라.
테스트 기본원칙
결함 집중 (파레토) - 결함은 특정 기능에 몰아서 나타난다 20%의 기능이 80%의결함
살충제 패러독스듈 구현 (직전 , 전전 회차에 나옴)
모듈 : 특정 기능을 수행하는 단위, 다른 모듈과 결함해 전체 구성
독립성 : 응집도는 높이고 결합도를 낮춘다.
FAN IN / FAN OUT - 틀리면 접자..
결합도 (낮을수록 좋다) - 자스제외공내 => 뒤로 갈수록 낮아짐
자료 : 값을 그대로 전달 f(10)
스탬프 : 배열, 스트럭쳐 전달 f(&a)
제어 : 제어 요소 전달 f(int a, int b)
외부 : 다른 모듈 선언 변수 참조
공통 : 전역 변수
내용 : 다른 모듈 내부 기능 사용
응집도 (높을수록 좋다) - 우논시절통순기
기능 : 단일 목적 수행
순차 : 순차적으로 실행되는데 출력값이 다음것의 입력값이 됨
통신 : 동일한 입출력을 가짐
절차 : 순차적으로 수행
시간 : 같은 시간에 실행되는 것
논리 : 유사한 성격을 가짐
우연 : 연관 X
EAI - 기업 내 애플리케이션 간의 데이터를 통합하고 상호 운용하는 것
ex): CJ ONE - CJ계열사를 묶은 어플 (로지스 , 제일제당 , 대한통운 등 ...)
SSO (하나 로그인하면 다 로그인됨) / 포인트 통합 등등 여러 기능 제공
EAI종류
- Point To Point - 어플간 1:1 연결
- Hub & Spoke - 중앙 허브를 통해 관리
- Message Bus - 메세지 버스를 통해 통신
- Hybrid - 다 사용
SOAP
XML기반의 표준화된 웹 프로토콜
보안성과 트랜잭션 관리가 중요한 복잡한 웹 서비스 통신에 사용
HTTP, HTTPS , SMTP 등을 통한 XML 메세지 교환 프로토콜
SOAP 구성 요소
- SOAP
- UDDI : 모음집
- WSDL : XML형식의 언어(설명서)
REST
HTTP 기반의 경량화된 아키텍쳐 스타일
URL을 통해 자원을 표현,교환
구성 요소
- 자원 : URI
- 행위 : GET, POST, PUT, DELETE
- 표현 : 데이터
HTTP
HTTP : 클라이언트와 서버간의 HyperText 전송 프로토콜
HyperText 문서내의 링크를 통해 다른 문서나 리소스로 접근 가능
HTML : 웹 페이지용 마크업 언어 HYPERTEXT 작성(구조 정의)
AJAX : 비동기 처리
인터페이스 전송 데이터
JSON : 경량 데이터 교환 언어 , 가독성,구조화 높음
XML : 계층적 표현하는 마크업 언어
YML : 직렬화
CSU : 쉼표로 구별
객체지향 구성 요소
클래스 - 붕어빵 틀
ㄴ 속성 : 객체가 가지는 데이터나 상태
ㄴ 메서드 : 객체가 수행할 수 있는 동작 , 기능을 정의한 함수
객체 - 붕어빵 틀에서 만들어져 나온 붕어빵 , 인스턴스
메세지 - 객체간의 메서드를 호출하여 상호 작용하는 방식
객체지향 특징
캡슐화 : 외부에서의 접근 제한
정보은닉 : 내부를 숨기고 필요한정보만 제공
상속 : 생략
다형성 : 메서드 오버로딩,라이딩 / 하나의 객체지만 여러타입을 가질 수 있음
추상화 : 간결하게 표현
객체지향 설계 원칙
SOLID
- 단일 책임 원칙 (Single Responsibility principle) - 한 클래스는 하나의 책임
- 개방 폐쇄 원칙 (Open Closed Principle) - 개방에는 열려 있고 변경에는 닫혀 있어야 한다.
- 리스코프 치환 원칙 (Liscov Substitution Principle) - 자식은 부모를 대체 가능해야 한다.
- 인터페이스 분리 원칙 (Interface Sergregation Principle) - 안쓰는 인터페이스는 구현하지 마라.
- 의존성 역전 원칙 (Dependency Inversion Principle) - 구현클래스에 의존하지 말고 인터페이스에 의존해라.
테스트 기본원칙
결함 집중 (파레토) - 결함은 특정 기능에 몰아서 나타난다 20%의 기능이 80%의결함
살충제 패러독스 -동일한 테스트 케이스로 반복 실행하면 더 이상 새로운 결함을 발견 할 수 없다. 정기적으로 테스트를 리뷰하고 새로운 테스트 케이스를 추가해야 한다.
오류 부재의 궤변 - 개발된 시스템이 사용자의 요구사항을 만족하지 못하거나 사용성이 낮다면 오류를 발견하고 제거해도 품질이 높다고 말할 수 없다.
테스트 산출물
TEST 계획서 : 범위, 전략 , 자원 등을 정의
TEST 케이스 : 조건 , 입력값, 기대결과 로 구성되어 있는 테스트 항목의 명세서
TEST 시나리오 : 케이스를 묶은 것
TEST 결과서 : 기록 문서
테스트 오라클 -> 정답 넣고 비교 ★
- 테스트 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참값을 대입하여 실제 결과와 비교하는 것
유형
- 참 오라클 : 올 퍼펙
- 샘플링 오라클 : 일부만 비교 , 설렁설렁
- 휴리스틱 오라클 : 경험, 직관적으로 비교
- 일관성 검사 오라클 : 변경 전후 , 여러 버전에서 비교 등
테스트 레벨
단위 테스트 - 개별 모듈 ,컴포넌트 독립적으로 테스트
통합 테스트 - 모듈간 흐름 테스트 (상향식 : 드라이버 , 하향식 : 스텁 , 빅뱅:한꺼번에 쾅 테스트)
테스트 기법
-화이트박스 테스트 : 소스코드를 보면서 문장 검증, 분기 검증, 경로검증 , 조건검증
*맥케이브 공식 : 면 +1 *
-블랙박스 테스트
동등분할
경계값 테스트(Boundery Value Test) : 경계값에서 오류가 가장 많이 발생한다는 이론에 따라 테스트 - 90~95가 통과값일때 89 90 91 / 94 95 96 으로 테스트 하는것
원인 -효과 그래프
오류 예측 검사
비교 검사
상태전이 검사
테스트 목적
-회복 테스트 : 고의 실패
-안전 : 보안
-강도 : 과부하 테스트
-성능 : 응답시간 , 처리량 , 속도
-구조 : 복잡도 평가
-회귀 : 변경된것의 결함 여부 확인
-병행 : 변경된값에 동일한 입력값 넣어 확인
-A/B : 약간의 변화로 기존대비 변화 확인
-스모크 : 테스트를 테스트
테스트 커버리지
테스트가 얼마나 커버했는지 측정 기준
종류
- 구문 커버리지 : 구문(문장) 1번 이상
- 조건 커버리지 : 모든 조건식의 참 / 거짓 평가 f(x>y || x>z) 일때 x>y 와 x>z를 의미
- 결정 커버리지 : 모든 결정문의 참 / 거짓 평가 f(x>y || x>z) 전체를 의미
- 조건/결정 커버리지 : 조건 + 결정
- 변경 조건/결정 : TF / TT / FF 모든 경우
- 다중조건 : 모든것 전부
테스트 장치
- 테스트 드라이버 : 상향식
- 테스트 스텁 : 하향식
- 테스트 슈트 : 케이스 집합
- 테스트 케이스 : 입력값, 조건 결과 집합
- 테스트 스크립트 : 설명서
- 목 오브젝트 : 조건부 상황 유도 - 결함 추적
성능 분석 지표
- 처리량 -
- 응답시간 - 전송 시점부터 응답!까지
- 경과 시간 - 전송 시점부터 끝날때!까지
- 자원 사용률 - cpu memory network 자원 사용량
소스코드 품질 분석
- 동료 검토 - 주변사람이
- 워크 쓰루 - 팀회의 동료검토 /워크쓰루 는 개발자 포함
- 인스펙션 - 공식 검토회의 - 개발자 제외
리팩토링
- 내부구조 개선
튜닝
- sql 쿼리 최적화
유지보수
-수정보수 : 오류수정
-적응보수 : 환경변화
-향상보수 : 기능추가
-예방보수 : 잠재적 오류 대비
DRM ★
디지털 콘텐츠 보호 기술
저작권 보호
- 암호화 : ID PW 처럼 특정 키를 가진 사용자만 접근할수 있도록 하는 방식
- 위변조 방지 : 변조 감지
- 워터마킹 : 워터마크 찍는것
- 핑거 프린팅 : 구매자 정보를 저장해서 최초 유포자 검거