정보처리기사 12

SQL 기본 #1 데이터베이스

데이터베이스 특정 조직이 업무 수행하는데 필요한 관련성 있는 자료들의 집합체 (통합, 저장, 운영, 공용) 1. 데이터베이스 정의 1) 통합된 데이터(Integrated Data) : 자료의 중복을 배제 또는 최소화 한 데이터의 집합 2) 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터의 집합 3) 운영 데이터(Operational Data) : 조직의 업무를 수행하는데 있어서 존재가치가 확실하고 없어서는 안 될 반드시 필요한 데이터의 집합 4) 공용데이터(Shared Data) : 여러 응용 시스템(사람)들이 공동으로 소유하고 유지하는 데이터의 집합 ㄴ ex) 회사 공용파일 2. 데이터베이스 특징 1) 실시간 접근(Real Time Accessibility)..

요구사항 확인 #1

1. 요구공학 - 요구사항을 정의하고, 문서화하고, 관리하는 프로세스를 연구하는 학문 2. 요구사항 분류 1) 기술하는 내용에 따른 분류 - 기능적 요구사항 : 시스템이 무엇을 하여야하는지 (ex. 로그인 기능) - 비기능적 요구사항 : 개발 과정에서 지켜져야 할 제약조건 (ex. 사용자가 많은 피크시간에도 3초 이내에 로그인이 되어야한다) 2) 관점에 따른 분류 - 사용자 요구사항 : 사용자 관점, 이해가 쉽게 표현 - 시스템 요구사항 : 개발자 관점(소프트웨어 요구사항), 기술적인 용어로 표현 3. 요구사항 개발 프로세스 1) 요구사항 도출 - 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계로서 요구사항이 어디에 있고, 어떻게 수집할 것인가와 관련. - 이해관계자가 식별되고, 개발 팀과 고객 ..

현행 시스템 파악

1. 현행 시스템 파악 1) 정의 현행 시스템이 어떤 하위 시스템으로 구성되어 있는지, 제공하는 기능이 무엇인지, 다른 시스템들과 어떤 정보를 주고 받는지, 어떤 기술 요소를 사용하고 있는지, 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크는 어떻게 구성되어 있는지 등을 파악하는 활동이다. 2) 절차 1단계 : 현행 시스템의 구성, 기능, 인터페이스 현황을 파악하는 단계 2단계 : 현행 시스템의 아키텍처 및 소프트웨어 구성 현황을 파악하는 단계 3단계 : 현행 시스템의 하드웨어 및 네트워크 구성 현황을 파악하는 단계 2. 현행 시스템 구성/기능 및 인터페이스 1) 시스템 구성 파악 현행 시스템 구성 현황은 조직의 중요 업무를 처리하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술 - 각..

모델링 #2 (비용산정)

1. 비용산정 소프트웨어 개발에 필요한 기능과 규모를 기반으로 소요되는 인원, 기간, 자원 등으로 확인하여 필요한 비용을 예측. 1) 비용결정 요소 - 프로젝트 요소 : 개발 작품의 복잡도, 시스템 크기, 신뢰도 - 자원 요소 : 인적 자원(개발자들), 개발에 필요한 하드웨어/소프트웨어 자원 - 생산성 요소 : 개발자의 능력, 개발 기간 - 개발 기간 요소 : 개발 기간에 반비례하는 개발 비용 2. 비용 산정 기법 1) 하향식 산정 기법 프로그램의 규모를 예측하고 과거 경험을 바탕으로 예측한 규모에 대한 소요 인력과 기간을 추정 - 전문가 판단 기법 : 조직 내 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰 - 델파이 기법 : 전문가 판단기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을..

모델링 #1 (분석모델)

1. 일반적인 시스템 개발 절차 데이터 관점과 프로세스 관점 두 가지로 개발 진행 1) 전략수립 - 개념 모델링을 통해 개발 범위를 파악 2) 분석 - 업무 중심의 분석 - 논리 데이터 모델링 / 분석 모델 3) 설계 - 개발하고자 하는 환경을 고려한 설계 - 물리 데이터 모델링 / 설계 모델링 4) 개발 - 개발 - 데이터 베이스 구축 / 애플리케이션 개발 2. 모델링의 정의 복잡한 현실세계의 현상을 특정한 목적에 맞추어 일정한 형식으로 이해하기 쉽게 표현하는 일 3. 모델링의 특징 1) 추상화(모형화, 가설적) 현실세계를 일정한 형식에 맞추어 표현한다. 2) 단순화 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현 3) 명확화 애매모호함을 제거하고 정확하게 현상을 기술 4. 분석모델 1) ..

소프트웨어 생명 주기 #2 (애자일 모델)

1. 애자일 모델 개념 - 소프트웨어 개발과정에서 지속적으로 발생하는 변경에 유연하고 기민하게 대응하여 생산성과 품질향상을 목표로 하는 협력적인 모델 ※ 애자일(Agile) - 사람(고객 소통, 고객 협업)이 중심이 되어 전체 개발 단계에서 변화에 대한 신속히 대응할 수 있도록 일정 주기를 반복하여 좋은 결과를 빠르고 낭비없게 만들기 위한 방법론 - 급변하는 요구사항에 적합 - 소규모 프로젝트에 적합 - 숙련된 개발자 필요 - 폭포수 모델은 계획 중심 2. 애자일 방법론 1) 스크럼(Scrum) 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 중심의 방법론. 1~4주의 짧은 개발 기간으로 분리하여 반복적으로 수행하는 스프린트(Sprint)를 중심으로 진행한다. 2) 스크럼..

소프트웨어 생명 주기 #1 (폭포수, 프로토타입, 나선형, 반복 점증적, RAD 모델)

1. 개념 소프트웨어 제품을 계획할 때부터 시작하여 운용/유지 보수에 이르기 까지 변화의 전 과정 분석, 설계, 구현, 테스트, 확인, 유지보수 등 여러 단계가 있다. 대표적인 소프트웨어 생명 주기 모형으로 폭포수 모델, 프로토타입 모델, 나선형 모델, 애자일 모델 등이 있다. 2. 폭포수 모델 - 순차적으로 한단계씩 진행해 나가는 모델 1) 장점 - 프로세스가 단순하여 쉽게 적용 가능 - 단계별 작업 진행으로 해당 단계의 진척 관리가 용이함 - 반드시 각 단계마다 눈에 보이는 결과물이 출력됨 2) 단점 - 앞 단계로 돌아가서 처리할 작업이 많은 경우 작업 단계 변경이 비효율적. - 초반 단계에서 중점적으로 처리할 경우 후반 단계의 구현, 테스트 등에서 시간이 부족할 수 있다. - 사용자의 요구를 만족하..

현행 시스템 분석 - 네트워크, DBMS

1. 네트워크 개념 네트워크 : 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라 프로토콜 : 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙 ㄴ 프로토콜 3요소 : 구문, 타이밍, 의미 2. 네트워크 구성도 - 라우터 : 최적화된 네트워크 망 경로를 설정하는 장비 - 방화벽 : 내부의 네트워크를 보호하기 위해 외부의 불법적인 트래픽 유입을 막고 허가되고 인증된 트래픽만 받도록 함 - 허브 : 컴퓨터 연결 장치, 느리다. - 스위칭 허브 : 근거리 통신망 (LAN) 구축에 사용되는 장치, 빠르고 안전 - 백본망 : 여러 하위 망들을 연결하거나 분산된 통신장치들을 통합하기 위한 최상위 통신 네트워크 1. DBMS 개념 DBMS (database management system,..

현행 시스템 분석 - 운영체제(OS : Operation System)

1. 개념 하드웨어 소프트웨어 리소스를 관리하 컴퓨터 프로그램을 위한 공통 서비스 제공하는 소프트웨어 (사용자가 컴퓨터를 사용하기 쉽도록 인터페이스 제공) 2. 운영체제의 종류 및 특성 종류 저작자 비용 및 라이선스 주요 용도 Windows Microsoft 유상, 다양한 라이선스 정책 중소 규모 서버, 개인용 PC, Tablet PC, Embedded System UNIX IBM(AIX), HP(HP-UX), SUN(Solaris) 유상, 다양한 라이선스 정책 대용량 처리, 안전성이 요구되는 서버, NAS, Workstation Linux Linus Torvalds 무료, GNU GPLv2 중대 규모 서버 iOS Apple 하드웨어 번들(Bundle) 스마트폰, 태블 PC Android Google 리..

독립성이 높은 모듈, 결합도(Coupling)와 응집도(Cohesion)

※ 모듈화 : 소프트웨어를 성능 향상이나 수정, 재사용이 용이하도록 모듈 단위로 분해하여 나누는 것 - 모듈은 단독으로 컴파일이 가능한 최소 단위 - 각 모듈의 독립성이 높을 수록 좋은 모듈이다. - 결합도가 약할 수록, 응집도가 높을 수록 좋은 모듈이다. (결합도가 약하면 다른 모듈과 별개로 단독 사용가능) (응집도가 높으면 모듈 내부 요소가 서로 관련성이 높아 일처리가 효율적이다) 1. 결합도(Coupling) : 약할 수록 좋은 모듈 - 모듈간 상호 의존 정도, 두 모듈 사이의 연관 관계 - 결합도가 강하면 모듈 수정 및 유지보수가 어려워짐 결합도 약함 ↑ ↓ 결합도 강함 자료 결합도 (Data Coupling) 모듈 간 인터페이스가 자료 요소로만 구성되는 결합도, 다른 모듈 호출 시 매개변수나 인..