자격증/정보처리기사 84

76. 데이터베이스 설계(A)

데이터베이스 설계 시 고려사항 무결성(연산 후에도 제약 조건 만족) 일관성(응답이 처음부터 끝까지 변함 X) 보안(불법 데이터 노출 또는 변경으로부터 보호) 효율성(응답시간 단축, 시스템의 생산성, 저장 공간 최적화) 회복 확장 데이터베이스 설계 순서 요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 개념적 설계(정보 모델링, 개념화) 개념 스키마 모델링, 트랜잭션 모델링 병행 수행, E-R 다이어그램 작성, 개념 스키마 설계 논리적 설계(데이터 모델링) 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정 개념 스키마 평가 및 정제, 종속적인 논리적 스키마 설계, 트랜잭션의 인터페이스 설계, 테이블 설계 물리적 설계(데이터 구조화) 디스크 등의 물리적 저장장치에 저..

74. 인터페이스 구현 검증(A)

인터페이스 구현 검증 도구 인터페이스 단위 기능과 시나리오 등을 기반으로 하는 통합 테스트가 필요 xUnit(단위 테스트 프레임워크), STAF, FitNesse, NTAF(Naver 테스트 자동화 프레임워크), Selenium(웹 어플리케이션 테스트 프레임워크), watir(Ruby 사용) 인터페이스 구현 감시 도구 APM을 사용해 감시 웹 애플리케이션의 트랜잭션, 변수값, 호출 함수 등을 조회하고 분석 스카우터(Scouter), 제니퍼(Jennifer)

72. 인터페이스 보안(A)

인터페이스 보안 기능 적용 분석한 인터페이스 기능과 보안 취약점을 기반으로 인터페이스 보안 기능을 적용 네트워크 영역 : 데이터 탈취 및 변조 위협을 방지하기 위해 네트워크 트래픽에 대한 암호화 설정, IPSec, SSL, S-HTTP 등의 다양한 방식으로 적용 애플리케이션 영역 : 애플리케이션 코드 상의 보안 취약점을 보완하는 방향 데이터베이스 영역 : 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저, 트리거 등 데이터베이스 동작 객체의 보안 취약점에 보안 기능 적용 데이터 무결성 검사 도구 시스템 파일의 변경 유무를 확인, 파일이 변경되었을 경우 관리자에게 알려주는 도구 Tripwire, AIDE, Samhain, Claymore, Slipwire, Fcheck

70. 인터페이스 구현 (B)

인터페이스 구현 송, 수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업 데이터 통신을 이용한 방법, 인터페이스 엔티티 방법 데이터 통신을 이용한 인터페이스 구현 데이터 포맷을 인터페이스 대상으로 전송, 수신 측에서 파싱하여 해석하는 방식 JSON이나 XML 형식의 데이터 포맷을 사용하여 인터페이스 구현 JSON : 속성 - 값 쌍으로 이루어진 데이터 객체를 전달 XML : 특수한 목적을 갖는 마크업 언어 AJAX : 자바 스크립트 등을 이용하여 클라이언트와 서버 간에 XML 데이터 교환 및 제어, 비동기 기술 인터페이스 엔티티를 이용한 인터페이스 구현 인터페이스 엔티티를 이용한 인터페이스 구현은 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식 테이블의 구조는..

67. 모듈 연계를 위한 인터페이스 기능 식별(B)

EAI(Enterprise Application Integration) 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호연동 가능하게 해주는 솔루션 비즈니스 간 통합 연계성, 시스템 간의 확정성 향상 Point-to-Point : 기본적인 애플리케이션, 1:1 연결 Hub&Spoke : 단일 접점 허브 시스템으로 데이터를 전송하는 중앙집중형 Message Bus : 애플리케이션 사이 미들웨어, 대용량 처리 Hybrid : Hub&Spoke + Message Bus, 데이터 병목 현상 최소화 ESB(Enterprise Service Bus) 애플리케이션 간 연계, 데이터 변환, 웹 서비스 지원 등 표준 기반의 인터페이스 제공 솔루션 서비스 중심의 통합 애플리케이션과의 결합도를 약..

65. 애플리케이션 성능 개선(A)

소스 코드 최적화 스파게티 코드 : 코드의 로직이 꼬여 있는 코드 외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지 보수가 어려운 코드 클린 코드 작성 원칙 가독성 단순성 의존성 배제 중복성 최소화 추상화 소스 코드 품질 분석 도구 정적 분석 도구 : 작성한 소스 코드 실행하지 않고 코딩 표준, 스타일, 결함 확인 자료흐름이나 논리 흐름 분석 코딩의 복잡도, 모델 의존성, 불일치성 분석 pmd, cppcheck, SonarQube, checkstyle, ccm 동적 분석 도구 : 작성한 소스 코드를 실행하여 메모리 누수, 스레드 결함 분석 Avalanche, Valgrid

64. 복잡도(A)

복잡도 시스템이나 시스템 구성 요소 또는 소프트웨어의 복잡한 정도를 나타내는 말 정밀한 테스트를 통해 미리 오류 제거 측정 방법 : LOC(Line of Code), 순환 복잡도 시간 복잡도 알고리즘의 실행시간, 프로세스가 수행하는 연산 횟수를 수치화 빅오 표기법 : 최악 세타 표기법 : 평균 오메가 표기법 : 최선 O(1) : 입력값에 관계 없이 일정하게 문제 해결(스택 삽입, 삭제) O(log₂n) : 문제 해결에 필요한 단계가 입력값 또는 조건에 의해 감소(이진 트리, 이진 검색) O(n) : 입력값과 1:1 관계(for문) O(nlog₂n) : 힙 정렬, 2-Way 합병 정렬 O(n²) : 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬 O(2ⁿ) : 피보나치 수열 순환 복잡도 프로그램의..

63. 애플리케이션 성능 분석(B)

애플리케이션 성능 측정 지표 처리량(Throughput) 응답 시간(Response Time)(전달 시간~응답 도착시간) 경과 시간(Turn Around Time)(작업 의뢰시간 ~ 처리 완료시간) 자원 사용률(Resource Usage) 성능 테스트 도구 애플리케이션 성능 측정을 위해 부하나 스트레스를 가하면서 성능 측정 점검 JMeter, LoadUI, OpenSTA 시스템 모니터링 도구 애플리케이션 실행되었을 떄 시스템 자원의 사용량 확인하고 분석하는 도구 Scouter, Zabbix 애플리케이션 성능 저하 원인 분석 애플리케이션 DB에 연결하기 위해 Connection 객체를 생성하거나 쿼리를 실행하는 애플리케이션 로직에서 많이 발생 커넥션 풀 크기 작게 설정, 미들웨어 사용 한후 종료 X -> ..

58. 통합 테스트(A)

통합 테스트 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 찾는 테스트 기법 비점진적 통합 방식 : 프로그램 전체를 테스트, 빅뱅 통합 테스트 방식 점진적 통합 방식 : 모듈 단위로 단계적 통합, 하향식, 상향식, 혼합식 하향식 통합 테스트 상위 모듈 -> 하위 모듈으로 통합 깊이 우선 통합법(아래로), 넓이 우선 통합법(옆으로) 절차 : 주요 제어 모듈 스텁으로 대체 -> 깊이 or 넓이 통합 방식에 따라 스텁들이 한 번에 하나씩 실제 모듈로 교체 -> 테스트 실시 -> 회귀 테스트 실시(오류 검사) 상향식 통합 테스트 하위 모듈 -> 상위 모듈으로 통합 하나의 주요 제어 모듈인 클러스터가 필요 절차 : 하위 모듈을 클러스터로 결합 -> 데이터 입출력 확인하기 위해 드라이버 작성 -> 테스..

57. 개발 단계에 따른 애플리케이션 테스트(A)

V-모델 순서 개발단계 : 요구사항 -> 분석 -> 설계 -> 구현 테스트 단계 : 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수테스트 단위 테스트 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 인터페이스, 외부적 I/O, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 구조 기반 테스트 : 제어 흐름, 조건 결정 명세 기반 테스트 : 동등 분할, 경계 값 분석 통합 테스트 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트 시스템 테스트 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 점검하는 테스트 기능적 요구사항 : 요구사항 명세서, 비즈니스 절차, 유스케이스 등 명세서 비기능적 요구사항 ..