Today I Learned/정보처리기사 16

비용산정

소프트웨어의 개발 규모를 소요인력, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 산정하는것이다. 소프트웨어 비용 결정 요소 프로젝트 요소 제품 복잡도 - 소프트웨어의 종류에 따라 발생할 수 있는 문제점들의 난이도 시스템 크기 - 소프트웨어의 규모에 따라 개발해야 할 시스템의 크기 요구되는 신뢰도 - 일정기간 내 주어진 조건 하에서 필요한 기능을 수행하는 정도 자원 요소 인적자원 - 소프트웨어 개발 관련자들이 갖춘 능력 혹은 자질 하드웨어 자원 - 소프트웨어 개발 시 필요한 장비와 프린터 등의 보조장비들 소프트웨어 자원 - 소프트웨어 개발 시 필요한 IDE, 문서 관리 도구 등의 툴들 생산성 요소 개발자 능력 - 개발자들이 갖춘 전문지식, 경험, 이해도 등 개발 기간 - 소..

개발 방법론

구조적 방법론 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리중심의 방법론이다. 빠르고 간단한 프로세스의 방법론이지만, 프로젝트 도중 발생할 리스크 관리의 부재나 변수에 취약한 특징 때문에 소규모의 단위 프로젝트에서 채택한다. 타당성 검토 → 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수 정보공학 방법론 정보 시스템의 개발을 위해 계획 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 데이터 중심의 방법론이다. 이 방법론은 데이터 중심적인 특징을 가지고 있는데, 수시로 변하는 업무 프로세스와 달리 데이터는 잘 변하지 않으므로 시스템 유지보수를 줄이고 잦은 변화에 적극 대응하고자 하는 목적이다. 프로세스와 데이터를 분리하여 분석 및 설계를 진..

애플리케이션 테스트

애플리케이션 테스트는 애플리케이션에 잠재되어있는 결함을 찾아내는 일련의 행의 또는 절차이다. 애플리케이션 테스트에선 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인하고, 소프트웨어가 기능을 정확히 수행하는지 검증한다. 애플리케이션 테스트의 기본은 다음과 같이 정리할 수 있다. 테스팅은 결함이 존재함을 밝히는 것이다. 결함을 줄일 순 있지만, 결함이 없다고는 증명할 수 없다. 완벽한 테스팅은 불가능하다. 무한경로, 무한 입력값으로 인한 어려움이 존재한다. 개발 초기에 테스팅을 시작한다. 테스팅 기간 단축, 재작업 감소로 개발기간 단축 및 결함을 예방한다. 결함 집중의 법칙(파레토 법칙)을 유념한다. 20%의 모듈에서 80%의 결함이 발견된다. 살충제 패러독스를 유념한다. 동일한 테스트케이스에 의한 ..

버전 관리 도구

버전관리란 동일한 소스코드에 대한 여러 버전을 관리하는것을 말한다. 팀 단위로 개발중인 소스코드나 설계도 등의 디지털 문서를 관리하는데 사용된다. 숫자나 문자로 구분되어 사용되는 “버전”을 부여하여 변경된 시간과 변경 사항, 작업자를 추적할 수 있다. 일반적인 버전 관리 도구의 사용방식은 다음과 같다. add 로컬 컴퓨터 또는 서버에 파일을 추가하는 행위 check out 추가된 파일을 인출하는 행위 commit 인출된 파일을 수정한 다음, 저장소에 예치하며 설명을 덧붙이는 행위 update 저장소와 자신의 작업공간을 동기화 하는 행위 diff add나 commit된 파일의 수정기록(change log)을 보면서 추가한 파일과 변경한 파일의 차이를 보는 행위 버전 관리 방법의 종류는 다음과 같다. 공유폴..

형상관리

소프트웨어 형상관리(Software Configuration Management)는 소프트웨어의 개발과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동이다. 소프트웨어 개발의 모든 단계에 적용되는 활동이며, 유지보수단계에서도 수행한다. 형상관리를 통해 변경사항을 체계적으로 추적하고 통제할 수 있으며. 제품 소프트웨어에 대한 무절제한 변경을 방지할 수 있다. 또한, 진행정도를 확인하기 위한 기준으로 사용될 수 있다. 형상관리는 4가지 작업으로 구분할 수 있다. 형상 식별 형상항목(Software Configuration Item)에 이름과 관리번호를 부여하고, 계층 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업이다. 형상 통제 변경통제 위원회(CCB; Change Control Boa..

릴리즈 노트

릴리즈 노트는 개발과정에서 정리된 릴리즈 정보를 소프트웨어의 고객과 공유하기 위한 문서이다. 소프트웨어의 기능, 서비스, 사용 환경 또는 지속적인 업데이트에 대한 정보를 확인할 수 있다. 개선된 작업이 있을 떄마다 관련 내용을 릴리즈 노트에 담아 제공한다. 개발팀에서 제공하는 소프트웨어 사양에 대한 최종 승인을 얻은 후 문서화 되어 제공된다. 초기 버전 작성 시 고려사항 정확하고 완전한 정보를 기반으로 개발팀이 직접 현재 시제로 작성한다. 신규 소스, 빌드 등의 이력이 정확하게 관리되어 변경 또는 개선된 항목에 대한 이력 정보들도 작성되어야 한다. 릴리즈 노트 작성에 대한 표준 형식은 없지만, 일반적으로 다음 항목이 포함된다. 요약: 머릿말, 개요, 목적, 문제 요약, 재현 항목, 수정/개선 내용, 사용..

소프트웨어 패키징

소프트웨어 패키징이란 모둘별로 생성한 실행파일들을 묶어 배포용 설치파일을 만드는것이다. 사용자에게 관리의 용이성과 다양한 기종에 대한 범용성, 보안 등을 제공하기 위해 진행된다. 고려사항 운영체제, CPU, 메모리 등 SW를 구동하는데 필요한 최소 환경을 정의한다. 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로의 제공을 고려한다. Managed Service란 기업이나 조직체의 운영을 보다 효율적으로 하기위해 사용하는 방법으로, 기업이나 조직의 일상적이고 반복적인 업무를 전문가나 전문기업이 대신 관리하도록 대행하는 서비스이다. 다양한 사용자의 요구사항을 반영한다. 패키징 작업 순서 기능 식별 - 소프트웨어가 제공하는 기능을 분리하여 식별한다. 모듈화 - 식별된 기능을 단위로 코드를..

절차형 SQL

절차형 SQL이란 C, JAVA 등 일반적인 언어형식과 같이 절차적으로 명령을 수행하는 SQL을 뜻한다. 일반적인 프로그래밍 언어에 비해 효율이 떨어지지만, 연속적인 작업을 처리하는데에 적합하다. BEGIN-END 형식으로 작성되는 블록 구조로, 기능별 모듈화가 가능하다. 절차형 SQL의 요소는 다음과 같다. 프로시저(Procedure) 호출을 통해 미리 실행되어 미리 설정해둔 SQL 작업을 수행하고 결과를 반환한다. 트리거(Trigger) CRUD 행위의 이벤트가 발생할떄마다 관련 작업을 자동으로 수행한다. 사용자 정의 함수 프로시저와 유사하게 일련의 작업을 연속적으로 수행한 뒤, return문을 이용해 단일값을 반환한다.

데이터 입출력

SQL Structured Query Language하는 뜻으로, 1974년 IBM에서 개발한 SEQUEL에서 유래한 관계대수와 관계해석을 기초로 한 혼합 데이터 언어이다. SQL이 제공하는 기능들은 다음과 같다. 2022.04.11 - [Today I Learned/정보처리기사] - 데이터베이스 데이터베이스 글로벌한 통신망이 구축되고 사용량이 늘어나자, 중요한 데이터들의 전기적 전송 또한 많아지게 되었는데, 이를 한데 모아 통합적으로 관리해줄 창고가 필요하게 되었다. 데이터베이스(DB: databa malachai.tistory.com DDL DOMAIN, SCHEMA, TABLE, VIEW, INDEX를 정의, 변경, 삭제하는데 사용되는 언어 DML SELECT, INSERT, UPDATE, DELE..

데이터베이스

글로벌한 통신망이 구축되고 사용량이 늘어나자, 중요한 데이터들의 전기적 전송 또한 많아지게 되었는데, 이를 한데 모아 통합적으로 관리해줄 창고가 필요하게 되었다. 데이터베이스(DB: database)는 통합하여 관리되는 데이터의 집합체를 의미한다. 이는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다. 데이터베이스의 특징 공용 데이터 데이터베이스는 여러 응용시스템들이 공동으로 소유하고 유지하는 데이터의 집합이다. 통합된 데이터 데이터베이스는 자료의 중복을 최대한으로 배제한 데이터의 집합이다. 운영 데이터 데이터베이스는 고유한 업무를 수행하는데 없어서는 안될 데이터의 집합이다. 저장된 데이터 데이터베이스는 컴퓨터가 접근할 수 있는 저장매체에 저장된 데이터의 집합이다. D..