자료 구조의 분류
배열
선형 리스트
스택
큐
데크
트리
그래프
스택의 응용 분야
방향/ 무방향 그래프의 최대 간선 수
트리
Degree, 차수 : 각 노드에서 뻗어나오는 가지의 수
단말 노드 Terminal Node : 자식이 하나도 없는 노드(디그리가 0인 노드)
이진 트리 운행법
Preorder : Root > Left > Right
Inorder : Left > Root > Right
Postorder : Left > Right > Root
퀵 정렬
삽입 정렬
선택 정렬
n개의 레코드 중 최소값을 찾아 첫 번째 레코드 위치에 놓는다.
나머지 n-1개의 레코드 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는다.
버블 정렬
주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 위치를 서로 교환
힙 정렬
O(nlog2n)
2-Way 합병 정렬(Merge Sort)
O(nlog2n)
이분 검색(이진 검색)
주요 해싱 함수
제산법(Division)
레코드 키를 해시표의 크기보다 큰 수 중에서 가장 작은 소수(Prime, Q)로 나눈 나머지를 홈 주소로 삼는 방식제곱법(Mid-Square)
레코드 키 값을 제곱한 후 그 중간 부분의 값을 홈 주소로 삼는 방식폴딩법
레코드 키 값을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR한 값을 홈 주소로 삼는 방식숫자 분석법(Digit Analysis)
키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 택하여 홈 주소로 삼는 방식스키마 3계층
외부 스키마
: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의개념 스키마
: 데이터베이스의 전체적이고 논리적 구조, 개체 간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세 정의내부 스키마
: 물리적 저장장치의 입장에서 본 데이터베이스 구조로서, 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄빌드 자동화 도구
Ant
Maven
Jenkins
Gradle
소프트웨어 패키징
소프트웨어 패키징 시 고려사항
DRM의 구성요소
클리어링 하우스
콘텐츠 제공자
패키저
콘텐츠 분배자
DRM 컨트롤러
보안 컨테이너
DRM의 기술 요소
형상 관리 SCM
형상 관리 기능
형상 식별
: 형상 관리 대상에 이름과 관리 번호를 부여 하고, 계층 구조로 구분하여 수정 및 추적이 용이 하도록 하는 작업버전 제어
: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리, 이를 위해 특정 절차와 도구를 결합시키는 작업형상 통제
: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업형상 검사
: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업형상 기록
: 형상의 식별, 통제, 감사 작업의 결과를 기록/관리하고 보고서 작성하는 작업⭐️ RCS | Revision Control System
수정하는 것을 방지
개발 결과를 합치거나
, 변경 내용 추적
할 수 있음확인(Validation) vs 검증(Verification)
확인
: 사용자의 입장에서 요구사항에 맞게 구현되었는지 확인
검증
: 개발자의 입장에서 명세서에 맞게 만들어졌는지 점검
파레토 법칙
소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다는 법칙
⭐️ 화이트 박스 테스트
논리적
인 모든 경로를 테스트하여 테스트 게이스를 설계하는 방법⭐️ 화이트박스 vs 블랙박스 테스트 종류
기초 경로 검사
, 제어 구조 검사
(조건 검사(Condition Testing)
, 루프 검사(Loop Testing)
, 데이터 흐름 검사(Data Flow Testing)
)동치 분할 검사
, 경계값 분석
, 원인-효과 그래프 검사
, 오류 예측 검사
, 비교 검사
단위 테스트
알고리즘 오류에 따른 원치 않는 결과
, 탈출구가 없는 반복문 사용
, 틀린 계산 수식에 의한 잘못된 결과
통합 테스트
하향식
통합 테스트테스트 스텁
사용상향식
통합 테스트테스트 드라이버
사용테스트 드라이버
테스트 스텁
테스트 케이스
테스트 오라클
참 오라클
샘플링 오라클
추정(Heuristic) 오라클
일관성(Consistent) 오라클
주요 최악의 시간 복잡도
O(1)
O(nlog2n)
순환 복잡도 계산
클린 코드 작성 원칙
가독성
단순성
의존성 배제
중복성 최소화
추상화
Alien Code
아주 오래되거나 참고문서 또는 개발자가 없어 유지 보수 작업이 어려운 코드
⭐️ 소스코드 품질 분석 도구 _ 정적 분석 도구
종류 : pmd, checkstyle, cppcheck
⭐️ EAI 구축 유형
Point-to-Point
Hub & Spoke
Messages Bus(ESB 방식)
Hybrid
IPSec(IP Security)
양방향
암호 방식