1. 트리 순회 방법
구분 | 개념도 | 순회방법 |
전위 순회 (Pre-Order Traversal) |
![]() |
Root-Left-Right 순으로 방문 |
중위 순회 (In-Order Traversal) |
![]() |
Left-Root-Right순으로 방문 |
후위 순회 (Post-Order Traversal) |
![]() |
Left-Right-Root순으로 방문 |
[전위 순회] ROOT가 처음에 지나감(중간-왼쪽-오른쪽)
예제1 | 예제2 | 예제3 | 예제4 |
![]() |
![]() |
![]() |
![]() |
ABDECFG | +**/ABCDE | ABDCEF | ABDEGCFH |
[중위 순회] ROOT가 중간에 지나감(왼쪽-중간-오른쪽)
예제1 | 예제2 | 예제3 |
![]() |
![]() |
![]() |
DBAECF | FDGBAEC | 4251637 |
[후위 순회] ROOT가 마지막에 지나감(왼쪽-오른쪽-중간)
예제1 | 예제2 | 예제3 | 예제4 |
![]() |
![]() |
![]() |
![]() |
IEJFCGKLHDBA | DBEFCA | AB/C*D*E+ | DEBFCA |
예제5 | 예제6 | 예제7 | |
![]() |
![]() |
![]() |
|
DGEBFCA | ECKAHBGDF | DGCBFEA |
2. 형상 관리
정의 | 소프트웨어에서 일어나는 변경을 체계적으로 관리하는 것 |
항목 | 프로젝트 계획, 분석서, 설계서, 프로그램, 테스트케이스, 프로젝트 요구 분석서, 소스 코드, 운영 및 설치 지침서 |
장점 | -가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다. -소프트웨어 개발의 전체적인 비용은 줄이고, 개발과정의 여러 방해 요인이 최소화 |
기능 | -버전 제어 기술 -형상 식별 : 형상 관리 계획을 근거로 형상 관리의 대상 식별 -형상 검사 : 계획대로 형상 관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞는지 살펴봄. |
3. 제품 소프트웨어 패키징 도구 활용 시 고려사항
-제품 소프트웨어의 종류에 적합한 암호화 알고리즘을 고려한다.
-추가로 다양한 이기종 연동을 고려한다.
-사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다.
-패키징 시 사용자에게 배포되는 sw이므로 보안을 고려한다.
4. DRM의 기술 요소
암호화 | 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술 예) 공개 키 기반 구조(PKI), 대칭 및 비대칭 암호화, 전자서명 |
키 관리 | 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술(중앙 집중형, 분산형) |
식별 기술 | 콘텐츠에 대한 식별 체계 표현 기술 예) DOI, URI |
저작권 표현 | 라이선스의 내용 표현 기술 예) XrML/MPEG-21 |
암호화 파일 생성 | 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술 |
정책 관리 | 라이선스 발급 및 사용에 대한 정책표현 및 관리 기술 예) XML, 콘텐츠 관리 시스템(CMS) |
크랙 방지 | 크랙에 의한 콘텐츠 사용 방지 시루 예) 난독화, Secure DB |
인증 | 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술 예) 사용자/장비 인증, SSO |
5. 인수테스트
[알파 테스트]
-사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
[베타 테스트]
-실제 환경에서 일정 수의 사용자에게 개발자 없이 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트
-필드 테스팅(field testing)이라고도 불림
6. 테스트 기법에 따른 분류
[화이트박스 테스트(White-box Test)]
-모듈의 논리적인 구조를 체계적으로 점검할 수 있다.
-모듈 내부를 직접 관찰
-소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행된다.
-산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
-유형 : 기초 경로 검사, 데이터 흐름 검사, 조건 검사, 루프 검사
[블랙박스 테스트(Black-box Test)
-프로그램 구조를 고려하지 않는다.
-유형 : 동등 분할, 오류 예측, 경곗값 분석, 원인-결과 그래프
7. 알고리즘
[해싱 함수(Hashing Function)]
제산법 | 나머지 연산자(%)를 사용하여 테이블 주소를 계산하는 방식 |
제곱법 | 레코드 키값을 제곱한 후에 결괏값의 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈 주소로 사용하는 방식 |
숫자 분석법 | 레코드 키를 구성하는 수들이 모든 키들 내에서 자리별로 어떤 분포인지를 조사하여 비교적 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용하는 방법 |
폴딩법 | 레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식 |
기수변환법 | 어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방식 (어떤 키값이 16진법으로 표현되어 있다면 이를 10진법으로 표현된 것으로 간주하고 키값을 변환하여 홈 주소를 계산) |
무작위방법 | 난수를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방식 |
[거품 정렬(Bubble Sort)]
-두 인접한 원소를 검사하여 정렬
-첫 번째부터 2개씩 비교하여 정렬
예제1) 4 2 3 5 1 2 4 3 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 1 5 -> pass1(5번째 값이 가장 크게 되면 1회전 종료) 2 3 1 4 5 -> pass2(4번째 값이 가장 크게 되면 2회전 종료) 2 1 3 4 5 -> pass3(3번째 값이 가장 크게 되면 3회전 종료) 1 2 3 4 5 -> pass4(모든 값이 다 정렬됨) |
예제2) 9 6 7 3 5 6 9 7 3 5 6 7 9 3 5 6 7 3 9 5 6 7 3 5 9 -> pass1 6 3 7 5 9 6 3 5 7 9 -> pass2 3 6 5 7 9 3 5 6 7 9 -> pass3 |
예제3) 8 5 6 2 4 5 8 6 2 4 5 6 8 2 4 5 6 2 8 4 5 6 2 4 8 -> pass1 5 2 6 4 8 5 2 4 6 8 -> pass2 2 5 4 6 8 2 4 5 6 8 -> pass3 |
|
예제4) 4 7 3 1 5 8 2 6 4 3 7 1 5 8 2 6 4 3 1 7 5 8 2 6 4 3 1 5 7 8 2 6 4 3 1 5 7 8 2 6 4 3 1 5 7 2 8 6 4 3 1 5 7 2 6 8 ->pass1 3 4 1 5 7 2 6 8 3 1 4 5 7 2 6 8 3 1 4 5 7 2 6 8 3 1 4 5 7 2 6 8 3 1 4 5 2 7 6 8 3 1 4 5 2 6 7 8 ->pass2 1 3 4 5 2 6 7 8 1 3 4 5 2 6 7 8 1 3 4 5 2 6 7 8 1 3 4 2 5 6 7 8 ->pass3 1 3 2 4 5 6 7 8 ->pass4 1 2 3 4 5 6 7 8 ->pass5 |
예제5) 37 14 17 40 35 14 37 17 40 35 14 17 37 40 35 14 17 37 40 35 14 17 37 35 40 ->pass1 14 17 35 37 40 ->pass2 |
예제6) 5 2 3 8 1 2 5 3 8 1 2 3 5 8 1 2 3 5 8 1 2 3 5 1 8 ->pass1 2 3 5 1 8 2 3 5 1 8 2 3 1 5 8 ->pass2 2 3 1 5 8 2 1 3 5 8 2 1 3 5 8 ->pass3 1 2 3 5 8 ->pass4 |
예제7) 10 3 7 6 9 8 5 3 10 7 6 9 8 5 3 7 10 6 9 8 5 3 7 6 10 9 8 5 3 7 6 9 10 8 5 3 7 6 9 8 10 5 3 7 6 9 8 5 10 ->pass1 3 6 7 9 8 5 10 3 6 7 8 9 5 10 3 6 7 8 5 9 10 ->pass2 3 6 7 5 8 9 10 ->pass3 3 6 5 7 8 9 10 ->pass4 3 5 6 7 8 9 10 ->pass5 |
[삽입 정렬(Insertion Sort)]
-자료 배열의 모든 요소를 앞에서부터 차례로 이미 정렬된 배열 부분과 비교하여,
자신의 위치를 찾아 삽입함으로써 정려를 완성하는 알고리즘
-첫 번째는 정렬되어있다고 가정, 2번째부터 시작해서 그 앞의 부분의 숫자를 비교하여 정렬
예제1) 4 2 3 5 1 2 4 3 5 1 -> 2를 4의 자리에 삽입 2 3 4 5 1 -> 3을 4의 자리에 삽입 1 2 3 4 5 -> 1을 2의 자리에 삽입 |
예제2) 64 28 33 76 55 12 43 ->2번째 숫자부터 앞의 숫자와 비교 28 64 33 76 55 12 43 ->pass1 28 33 64 76 55 12 43 ->pass2 28 33 64 76 55 12 43 ->pass3 28 33 55 64 76 12 43 ->pass4 12 28 33 55 64 76 43 ->pass5 12 28 33 43 55 64 76 ->pass6 |
예제3) 5 4 3 2 1 4 5 3 2 1 ->pass1 3 4 5 2 1 ->pass2 2 3 4 5 1 ->pass3 1 2 3 4 5 ->pass4 |
|
예제4) 8 3 4 9 7 3 8 4 9 7 ->pass1 3 4 8 9 7 ->pass2 3 4 7 8 9 ->pass3 |
예제5) 32 14 15 38 27 6 21 14 32 15 38 27 6 21 ->pass1 14 15 32 38 27 6 21 ->pass2 14 15 32 38 27 6 21 ->pass3 14 15 27 32 38 6 21 ->pass4 6 14 15 27 32 38 21 ->pass5 6 14 15 21 27 32 38 ->pass6 |
예제6) 27 5 52 43 20 14 17 5 27 52 43 20 14 17 ->pass1 5 27 52 43 20 14 17 ->pass2 5 27 43 52 20 14 17 ->pass3 5 20 27 43 52 14 17 ->pass4 5 14 20 27 43 52 17 ->pass5 5 14 17 20 27 43 52 ->pass6 |
예제7) 20 19 14 16 18 19 20 14 16 18 ->pass1 14 19 20 16 18 ->pass2 14 16 19 20 18 ->pass3 14 16 18 19 20 ->pass4 |
[선택 정렬(Selection Sort)]
-정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아,
정렬되지 않은 부분의 가장 앞의 데이터와 교환해나가는 알고리즘
예제1) 4 2 3 5 1 -> 맨 앞 4와 가장 작은 1를 선택해 교환 1 2 3 5 4 -> 2는 제자리 1 2 3 5 4 -> 3은 제자리 1 2 3 4 5 -> 5와 4를 선택해 교환 |
예제2) 8 3 4 9 7 ->첫번째 숫자 선택 후 나머지 중 가장 작은 수와 바꾼다. 3 8 4 9 7 ->pass1, 2번째 숫자 선택 후 오른쪽의 나머지 중 가장 작은 수와 바꾼다. 3 4 8 9 7 ->pass2 3 4 7 9 8 ->pass3 3 4 7 8 9 ->pass4 |
|
예제3) 37 14 17 40 35 14 37 17 40 35 ->pass1 14 17 37 40 35 ->pass2 14 17 35 40 37 ->pass3 14 17 35 37 40 ->pass4 |
예제4) 9 4 5 11 8 4 9 5 11 8 ->pass1 4 5 9 11 8 ->pass2 4 5 8 11 9 ->pass3 4 5 8 9 11 ->pass4 |
예제5) 10 3 5 9 6 8 3 10 5 9 6 8 ->pass1 3 5 10 9 6 8 ->pass2 3 5 6 9 10 8 ->pass3 3 5 6 8 10 9 ->pass4 3 5 6 8 9 10 ->pass5 |
8. 클린 코드의 작성 원칙
가독성 | 이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용 |
단순성 | 한 번에 한 가지 처리만 수행, 클래스/메서드/함수를 최소 단위로 분리, 단순, 명료한 코드 작성 |
의존성 최소 | 영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성 |
중복성 제거 | 중복된 코드를 제거, 공통된 코드를 사용 |
추상화 | 클래스/메서드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메서드/함수에서 구현 |
9. EAI(Enterprise Application Integration) 구축 유형
구축 유형 | 개념도 | 설명 |
포인트 투 포인트 (Point-to-point) |
![]() |
중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점대점 형태로 연결 |
허브 앤 스포크 (Hub & Spoke) |
![]() |
단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙집중형 방식 허브 장애 시 전체 장애 발생 |
메시지 버스 (Message Bus) |
![]() |
애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식 뛰어난 확장성과 대용량 데이터 처리 가능 |
하이브리드 (Hybrid) |
![]() |
그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식 필요한 경우 한 가지 방식으로 EAI 구현이 가능하다. 데이터 병목 현상을 최소화할 수 있다. |
10. 중요 인터페이스 데이터의 암호화 전송을 위한 보안 기술(네트워크 영역에 적용)
IPSec (IP Security) |
-IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜 -동작 모드는 전송(Transport) 모드와 터널(Tunnel) 모드가 있음 -주요 프로토콜은 AH, ESP, IKE(키교환)가 있고, IPSEC 정책에는 SPD, SAD가 있음 |
SSL/TLS | -전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 묵결성을 보장하는 보안 프로토콜 -인증 모드는 익명 모드, 서버 인증 모드, 클라이언트-서버인증 모드가 있음 -IPSec 하고는 다르게 Client와 Server 간에 상호인증, 암호 방식에 대해 협상을 거치는 특징 -(대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드 등 특정 암호 기술에 의존하지 않고 다양한 암호 기술이 적용 -Https://~ 표시 형식과 443 포트 이용 |
S-HTTP (Secure Hypertext Transfer Protocol) |
-S-HTTP는 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송 -S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능 |
11. 인터페이스 구현 검증 도구
xUnit | -java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크 -소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구 |
STAF | -서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크 -각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구 |
FitNesse | -웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 -사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대한 테스트를 할 수 있는 장점이 있음 |
NTAF | -FitNesse와 STAF의 장점을 결합하여 개발된 테스트 자동화 프레임워크 -STAF의 분산환경 지원기능과 FitNesse의 효율적인 테스트 케이스 디자인 및 레포팅 기능이 NTAF에서 지원 |
Selenium | -다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크 -셀레늄(Selenium)은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공 |
watir | -Ruby 기반 웹 애플리케이션 테스트 프레임워크 -모든 언어 기반의 웹 어플리케이션 테스트와 브라우저 호환성 테스팅 가능 |
'개발자 되기 > 자격증' 카테고리의 다른 글
[정보처리기사] 필기 4과목 빈출 정리 (0) | 2022.04.13 |
---|---|
[정보처리기사] 필기 3과목 빈출 정리 (0) | 2022.04.12 |
[정보처리기사] 필기 1과목 빈출 정리 (0) | 2022.04.10 |
[정보처리기사] 필기 기출 5과목 키워드 정리 (0) | 2022.04.08 |
[정보처리기사] 필기 기출 4과목 키워드 정리 (0) | 2022.04.08 |