정보처리기사 38

[정보처리기사] 데이터베이스 구축 (1)

데이터베이스 개념 데이터베이스 개념 특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 모임 데이터베이스 정의 저장 데이터: 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터 공유 데이터: 여러 응용 프로그램들이 공동으로 사용하는 데이터 통합 데이터: 검색의 효율성을 위해 중복이 최소화된 데이터의 모임 운영 데이터: 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터 데이터 언어 DDL(Data Definition Language: 데이터 정의어) 개념 DB의 구조, 데이터 형식, 접근 방식 등 DB의 구축과 변경 목적으로 사용하는 언어 스키마에 사용되는 제약 조건을 정의 종류 CREATE ALTER DROP RENAME TRUNKATE DML(Data Manipulation Langu..

정보처리기사 2023.07.06

[정보처리기사] 소프트웨어 구축 (7)

소프트웨어 유지보수 소프트웨어 유지보수 개념 개발 완료 시점부터 폐기될 때까지, 지속적으로 수행하는 작업 소프트웨어의 수명을 연장하기 위한 활동 소프트웨어 생명주기 동안 가장 많은 비용이 소모되는 단계 유지보수의 구분 수정 보수(Corrective Maintenance) 소프트웨어 구축 시 테스트 단계에 미처 발견하지 못한 잠재적인 오류를 찾아 수정한다. 적응 보수(Adaptive Maintenance) 운영체제, 하드웨어와 같은 프로그램 환경변화에 맞추기 위해 수행하는 유지보수 해당 시스템을 다른 곳으로 이동시킬 수도 있기 때문에 향상 보수(Perfective Maintenance) 기존 기능과 다른 새로운 기능을 추가하거나 기존 기능을 개선 소프트웨어 확장 및 리모델링 유지보수 활동 중 가장 많은 자..

정보처리기사 2023.07.06

[정보처리기사] 소프트웨어 구축 (6)

애플리케이션 테스트케이스 설계 소프트웨어 테스트 개념 구현된 소프트웨어의 동작과 성능, 사용성, 안정성 등을 만족하기 위해 소프트웨어의 결함을 찾아내는 활동 소프트웨어 테스트 필요성 오류 발견 관점 오류 예방 관점 품질 향상 관점 스포트웨어 테스크의 기본 원칙 테스팅은 결함이 존재함을 밝히는 활동 완벽한 테스팅은 불가능하다 테스팅은 개발 초기에 시작해야 한다. 결함 집중(Defect Clustering) 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다 파레토 법칙: 전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상 살충제 패러독스(Presticide Paradox) 동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트케이스를 리뷰하고 개선해야 한다..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (5)

인터페이스 구현 인터페이스 시스템 개념 서로 다른 시스템, 장치 사이에서 정보나 신호를 주고받을 수 있도록 도움을 주는 시스템 구성 송신 연계할 데이터를 생성해, 연계 테이블 또는 파일 형태로 송신하는 시스템 수신 수신할 데이터를 데이터 형식에 맞게 저장하고 활용하는 시스템 중계 송/수신 시스템 사이에서 데이터를 송수신하고 현황을 모니터링 하는 시스템 송수신 데이터 식별 개념 송수신 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식에 따라 전송 송수신 전문 구성 전문 공통부 인터페이스 표준 항목을 포함 전문 개별부 업무처리에 필요한 데이터를 포함(실제 사용할 데이터) 전문 종료부 전송 데이터의 끝을 표시하는 문자 포함 인터페이스 설계서 구성 목록 연계 업무와 연계에 참여하는 송수신 시스템의 정보, 연..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (4)

모듈 구현 단위 모듈 구현 개념 소프트웨어를 기능 단위로 분해하여 구현하는 기법 여기서 모듈이란? 하나의 기능을 수행하는 단위 효과적인 모듈화 결합도는 낮추고 응집도를 높여 모듈의 독립성을 높임 FAN-OUT 최소화, FAN-IN 증가 단위 모듈 설계의 원리 단계적 분해 추상화 독립성 정보은닉 분할과 정복 단위 모듈 작성 원칙 정확성 명확성 완전성 일관성 추적성 결합도 결합도 개념 두 모듈 사이의 연관 관계 결합도가 낮을수록 잘 설계된 모듈이다. 결합도 유형 내용 결합도 변수 또는 기능이 여기저기 모두 얽혀서 사용하는 경우 공통 결합도 전역 변수를 참조하고 사용할 경우 외부 결합도 외부 변수를 사용할 경우 제어 결합도 자료 결합도로 자료가 넘어가는데, 해당 자료로 제어문 즉 조건문을 사용할 때 스탬프 결..

정보처리기사 2023.07.05

[정보처리기사] 소프트웨어 구축 (3)

개발 환경 구축 서버 환경 구축 웹 서버(WEB) 클라이언트에게 정적 파일(HTML, CSS, JS, Image)을 제공하는 웹 서버 애플리케이션이 설치된 하드웨어 Apache Web Server, IIS, Nginx, GWS 등 웹 어플리케이션 서버(WAS) 동적인 웹 서비스를 제공하기 위한 미들웨어로 설치된 하드웨어 WebLogin, WebSpere, Jeus, Tomcat 등 데이터베이스 서버(DBMS) 데이터의 저장과 관리를 위한 데이터베이스 소프트웨어가 설치된 하드웨어 Oracle, MySQL, MS-SQL 등 파일서버 사용자의 파일을 저장하고, 파일을 목적으로 구성된 하드웨어 Load Balancer L4 switch 여기서 OSI7계층에서 사용되는 Layer 확인 L2: 집선으로 컴퓨터를 연..

정보처리기사 2023.07.04

[정보처리기사] 소프트웨어 구축 (2)

소프트웨어 설계 소프트웨어 설계 개념 요구사항 명세서를 참조하여 소프트웨어의 구체적인 설계서를 작성하는 단계 종류 (CASE 도구의 상위 CASE, 하위 CASE 와 유사) 상위 설계 (분석, 설계 관련) 아키텍처 설계 데이터 설계 인터페이스 정의 사용자 인터페이스 설계 하위 설계 (구현 관련) 모듈 설계 자료구조 설계 알고리즘 설계 소프트웨어 설계의 원리 정보은닉(Information Hiding) 다른 객체에게 자신의 정보를 숨기고, 자신의 연산만을 통해 접근이 가능하도록 한다. 분할과 정복(Divide & Conquer) 규모가 큰 소프트웨어를 여러 개의 작은 서브시스템으로 나누어 하나씩 완성시킨다. 추상화(Abstraction) 실세계의 복잡한 상황을 간결하고 명확하게 핵심 위주로 단순화시킨다. ..

정보처리기사 2023.07.04

[정보처리기사] 소프트웨어 구축 (1)

소프트웨어 공학 소프트웨어 공학(Software Engineering) 소프트웨어 위기를 극복하고 효율적으로 품질 높은 소프트웨어를 개발하기 위한 학문 소프트웨어 공학의 3R 역공학(Reverse Engineering) 기존 개발된 시스템을 CASE(Computer Aided Software Engineering) 도구를 이용해 요구 분석서, 설계서 등의 문서로 추출하는 작업 개발 단계를 역으로 올라가 기존 개발된 시스템의 코드나 데이터를 시작으로 설계 명세서나 요구 분석서 등을 도출하는 작업 재공학(Re-Engineering) 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 ****생산성으로 해결하려는 방법 기존 소프트웨어를 폐기하지 않고 기능을 개선시키거나 새로운 소프트웨어로 재활용..

정보처리기사 2023.07.04

[정보처리기사] 프로그램 언어 특성

프로그램 언어 특성 프로그래밍 언어의 유형 분류 개발 편의성 측면에 따른 분류 저급언어 컴퓨터가 직접 이해할 수 있는 언어 빠름 고급언어 인간이 이해할 수 있는 소스코드 느림 실행 및 구현 방식에 따른 분류 명령형 언어(Imperative Language) 컴퓨터가 동작해야 할 절차를 통해 프로그래밍의 상태를 변경시키는 구문에 중점을 둔 방식 종류 Fortran C 함수형 언어(Functional Language) 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임 중 하나 종류 LISP Scala 논리형 언어(Logic Language) 논리 문장을 이용해 프로그램을 표현하고 조건이 만족되면 연관된 규칙이 실행되는 방식 종류 Prolog 객체지향 언어(Obje..

정보처리기사 2023.07.03

[정보처리기사] 알고리즘 표현 방법 및 변수 표기법

알고리즘 표현 방법 및 변수 표기법 알고리즘 표현 방법 자연어 우리가 사용하는 언어로 자유롭게 알고리즘을 표현 의사코드(Pseudo Code) 프로그램 코드를 흉내 내어 알고리즘을 작성해 놓은 코드 순서도(Flow Chart) 기호와 도형을 사용해서 문제나 일의 흐름을 표현한 것 나씨 슈나이더만 차트(Nassi-Schneiderman Chart) 구조적 프로그램의 순차, 선택, 반복의 구조를 사각형을 도식화하여 알고리즘을 표현 변수명 표기법 카멜 표기법(Camel Case) 낙타 등처럼 올라갔다 내려가는 모양으로 표현한 이름 ex) flowChart 파스칼 표기법(Pascal Case) 모든 단어의 앞자리를 대문자로 표기 클래스 이름 지정시 주로 사용 ex) FlowChart 스네이크 표기법(Snake ..

정보처리기사 2023.07.03