[정처기 필기] 결함, 알고리즘, 클린코드, 외계인코드, 정/동적 분석, EAI
by 볼빵빵오춘기결함
SW의 에러, 결함, 결점, 버그, 실패와 같은 용어가 사용되며, 이러한 결함으로 인하여 설계와 다르게 동작하거나 다른 결과가 발생하는 것을 의미한다.
결함 관련 용어
- 에러(Error)
SW 개발 또는 유지보수 수행 중에 발생한 부정확한 결과로, 개발자의 실수로 발생한 오타, 개발 명세서와 잘못된 이해, 서브루틴의 기능 오해 등이 있다. - 오류(Fault)
프로그램 코드상에 존재하는 것으로 비정상적인 프로그램과 정상적인 프로그램 버전 간의 차이로 인하여 발생되며, 잘못된 연산자가 사용된 경우에 프로그램이 서브루틴으로부터의 에러 리턴을 점검하는 코드가 누락된 것을 말한다. - 실패(Failure)
정상적인 프로그램과 비정상적인 프로그램의 실행 결과의 차이를 의미하며, 프로그램 실행 중에 프로그램의 실제 실행 결과를 개발 명세서에 정의된 예상 결과와 비교함으로써 발견한다. - 결함(Defect)
버그, 에러, 오류, 실패, 프로그램 실행에 대한 문제점, 프로그램 개선사항 등의 전체를 포괄하는 용어이다.
알고리즘
- 주어진 과제를 해결하기 위한 방법과 절차를 의미한다.
- 알고리즘 자연어, 의사코드(특정 프로그래밍 언어의 문법에 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 알고리즘을 써놓은 코드), 순서도, 프로그래밍 언어를 이용하여 표현 가능하다.
알고리즘 설계 기법
분할 정복법
- 제시된 문제를 분할이 불가할 때까지 나누고, 각 과제를 풀면서 다시 병합해 문제의 답을 얻는 Top-Down 방식이다.
동적 계획법
- 주어진 문제를 해결하기 위해 부분 문제에 대한 답을 계속적으로 활용해 나가는 Bottom-Up 방식이다.
- 이전 단계의 해답을 활용하기 위해 반드시 기억할 수 있는 저장소가 필요 하기 때문에 속도는 빠르지만, 공간 복잡도가 커지는 단점이 있다.
탐욕법
- 국소적인 관점에서 최적의 해결 방법을 구하는 기법으로 최적의 해결 방법을 구하지는 못하나 동적 계획법보다 효율적이라고 할 수 있다.
퇴각 검색법
- 어떤 문제의 최적해를 구하기 위해 모든 가능성을 찾아가는 방법이다.
- N-Qeen 문제 해결 시에 응용된다.
- 동적 계획법과 같이 기억할 저장소를 필요로 한다.
※ N-Qeen : N*N 체스판에서 N개의 퀸을 서로 공격할 수 없게 배치하는 경우의 수를 출력하는 문제
분기 한정법
- 정해진 범위를 벗어나는 값들을 가지치기해가며 결과값을 추적해 나가는 방식이다.
근사 해법
- 복잡도가 매우 높은 문제에 대해 가장 근사치의 값을 구하는 기법이다.
클린 코드(Clean Code)
- 깔끔하게 잘 정리된 코드이다.
- 중복 코드 제거로 애플리케이션의 설계가 개선된다.
- 가독성이 높아진다.
- 버그를 찾기 쉬워지며, 프로그래밍 속도가 빨라진다.
클린 코드의 작성원칙
가독성
- 누구나 코드를 쉽게 읽을 수 있도록 작성한다.
- 이해하기 쉬운 용어를 사용하고 들여쓰기 등을 활용한다.
단순성
- 한 번에 한 가지 기능만 처리한다.
- 클래스/메소드/함수는 최소 단위로 분리한다.
의존성 배제
- 다른 모듈에 미치는 영향 최소화하여 코드 변경 시 다른 부분에 영향 없도록 작성한다.
중복성 최소화
- 중복된 코드는 삭제하여 공통된 코드로 사용한다.
추상화
- 상위 클래스/메소드/함수에서 간략하게 애플리케이션 특성을 나타내고, 상세 내용은 하위 클래스/메소드/함수에서 구현한다.
외계인 코드
아주 오래되었거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.
정적분석
- SW를 분석하는 방법의 하나로 SW를 실행하지 않고 코드 레벨에서 분석하는 방법이다.
- 종류 : pmd, cppcheck, checkstyle, FindBugs
동적 분석 도구
- 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 등을 분석하기 위한 도구이다.
- 종류 : Avalanche, Valgrind, ValMeter
EAI(Enterprise Application Integration)
- 기업 내부에서 운영되는 각종 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 간으하게 해주는 솔루션이다.
- 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높일 수 있다.
- 각 시스템 간의 확정성을 높여 줄 수 있다.
EAI 유형
Point-to-Point
- 애플리케이션을 중간 미들웨어 없이 Point to Point로 연결하는 기본적인 통합 방식이다.
- 별도로 솔루션(미들웨어)를 구매하지 않고 구축할 수 있다.
- 상대적으로 저렴하게 구축 가능 하지만 변경 및 재사용이 어렵다.
Hub & Spoke
- 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식으로 확장 및 유지보수가 수월하다.
- 중앙 허브에 장애가 발생하면 시스템 전체에 영향을 준다.
Message Bus
- 애플리케이션 사이에 미들웨어를 배치하여 처리하는 방식으로 확장성이 뛰어나다
- 대용량 데이터 처리에 유리하다.
Hybrid
- Hub & Spoke와 Message Bus의 혼합방식이다.
- 그룹 내 : Hub & Spoke
- 그룹 간 : Message Bus
- 데이터 병목현상을 최소화할 수 있다.
- 필요한 경우 한 가지 방식으로 EAI구현이 가능하다.
'📚 자격증 > 정처기' 카테고리의 다른 글
[정처기 필기] 정렬, 검색, 해싱, 파일 편성 방법 (0) | 2023.07.12 |
---|---|
[정처기 필기] 자료구조, 스택, 큐, 데크, 트리, 이진트리 (0) | 2023.07.12 |
[정처기 필기] 테스트 자동화, 테스트하네스, 통합방식 (0) | 2023.07.11 |
[정처기 필기] V-모델, 시각에 따른 테스트, 하/상향식 설계, 테스트케이스, 테스트 종류 (0) | 2023.07.11 |
[정처기 필기] SW 테스트 원리 및 테스트 종류 (0) | 2023.07.11 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기