본문 바로가기

ETC/자격증

[정보처리기사실기]용어 정리 1

반응형

- 소프트웨어 생명주기 모델(SDLC; Software Development Life Cycle)
시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차

 

- 폭포수 모델

소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델

 

- 프로토타이핑 모델

고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델

 

- 나선형 모델

시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

반복적 모델 구축 대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델

 

- 소프트웨어 개발 방법 론

소프트웨어를 하나의 생명체로 간주하고 소프트웨어 개발의 시작부터 시스템을 사용하지 않는 과정까지의 전 과정을 형상화한 방법론

 

- 구조적 방법론
전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론. 대표적으로 나 씨-슈나이더만 차트 사용

 

- 나씨-슈나이더만 차트

논리의 기술에 중점을 둔 도형식 표현 방법

 

- 정보공학 방법론

정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론

 

- 객체지향 방법론

'객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론

 

- 컴포넌트 기반 방법론

소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론

 

- 애자일 방법론

절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론

 

- 제품 계열 방법론

특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

- XP(eXtreme Programming)
의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론

 

- XP의 5가지 가치

용기(Courage), 단순성(Simply), 의사소통(Communication), 피드백(Feedback), 존중(Respect)

 

- XP의 12가지 원리
짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩터링, 40시간 작업, 고객 상주, 코드 표준

 

- 스크럼(SCRUM)
매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

 

- 백로그(Backlog)

제품과 프로젝트에 대한 요구사항

 

- 스프린트(Sprint)

2~4주의 짧은 개발 기간으로 반복적 수행으로 개발 품질 향상

 

- 스크럼 미팅(Scrum Meeting)

매일 15분 정도 미팅으로 To-Do List 계획 수립

 

- 스크럼 마스터(Scrum Master)

프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람

 

- 스프린트 회고(Sprint Retrospective)

스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인 및 기록

 

- 번 다운 차트(Burn Down Chart)

남아 있는 백로그 대비 시간을 그래픽적으로 표현한 차트

 

- 린(LEAN)
도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론

 

- 린(LEAN) 7가지 원칙

낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

 

- 하향식 산정 방법
경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식

 

- 하샹식 산정 방법 종류

전문가 판단, 델파이 기법

 

- 상향식 산정 방법
세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식

 

- 상향식 산정 방법 종류

코드 라인 수(LoC), Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형

 

- COCOMO 모형

보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식

 

- 푸트남(Putnam) 모형
소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 방식, 시간에 따른 함수로 표현되는
Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.

 

- 기능점수(FP; Function Point) 모형
요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식

 

- 기능점수 공식
기능점수(FP) = 총 기능점수 X [0.65 + (0.1 X 총 영향도)]

 

- 일정관리 모델

프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델

 

- 주 공정법(CPM; Critical Path Method)
여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법

 

- PERT(Program Evaluation and Review Technique)
일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법

 

- 중요 연쇄 프로젝트 관리(CCPM; Critical Chain Project Management)
주 공정 연쇄법으로 자원 제약사항을 고려하여 일정을 계산하는 기법

 

- 현행 시스템 파악

현행 시스템이 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술 요소를 사용하는지를 파악하는 활동

 

- 소프트웨어 아키텍처
여러 가지 소프트웨어의 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

 

- 소프트웨어 아키텍처 프레임워크

소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준

 

- 아키텍처 명세서

아키텍처를 기록하기 위한 산출물들

 

- 이해관계자

시스템 개발에 관련된 모든 사람과 조직

 

- 관심사

시스템에 대해 이해관계자들의 서로 다른 의견과 목표

 

- 관점

개별 뷰를 개발할 때 토대가 되는 패턴이나 양식

 

- 뷰

서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현

 

- 근거

아키텍처 결정 근거

 

- 목표

환경 안에서 한 명 이상의 이해관계자들이 의도하는 시스템의 목적, 사용, 운영 방법

 

- 환경

시스템에 영향을 주는 요인으로 개발, 운영 등의 외부 요인 등으로 시스템에 영향을 주는 요인

 

- 시스템

각 애플리케이션, 서브 시스템, 시스템으 집합, 제품군 등이 구현체

 

- 소프트웨어 아키텍처 4+1 뷰

고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근방법

 

- 유스케이스 뷰

유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는 데 사용되는 뷰

 

- 논리 뷰

시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해 주는 뷰

 

- 프로세스 뷰

시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰

 

- 구현 뷰 : 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여 주는 뷰

 

- 배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

- 소프트웨어 아키텍처

패턴 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식

 

- 계층화 패턴

시스템을 계층으로 구분하여 구성하는 패턴

 

- 클라이언트-서버 패턴

나의 서버와 다수의 클라이언트로 구성된 패턴

 

- 파이프-필터 패턴

데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴

 

- 브로커 패턴

분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴

 

- 모델-뷰-컨트롤러

패턴 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴

 

- SAAM(Software Architecture Analysis Method)
변경 용이성과 기능성에 집중, 평가가 용이하여 경험이 없는 조직에서도 활용 가능한 비용 평가 모델

 

- ATAM(Architecture Trade-off Analysis Method)
아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충관계까지 평가하는 모델

 

- CBAM (Cost Benefit Analysis Method)
ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델

 

- ADR (Active Design Review)
소프트웨어 아키텍처 구성요소 간 응집도를 평가하는 모델

 

- ARID(Active Reviews for Intermediate Designs)
전체 아키텍처가 아닌 특정 부분에 대한 품질 요소에 집중하는 비용 평가모델

 

- 디자인 패턴

소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴

 

- 생성 패턴
객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴

 

- 빌더(Builder)

복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리함으로써 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있는 디자인 패턴

 

- 프로토타입(Prototype)

처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴

 

- 팩토리 메서드(Factory Method)

상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식

 

- 추상 팩토리(Abstract Factory)

구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

 

- 싱글톤(Singleton)

전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴

 

- 구조 패턴
더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴

 

- 브리지(Bridge)

기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴

 

- 데코레이터(Decorator)

기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴

 

- 퍼사드(Facade)

복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴

 

- 플라이웨이트(Flyweight)

다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리를 절약하고, '클래스의 경량화'를 목적으로 하는 디자인 패턴

 

- 프록시(Proxy)

실체 객체를 드러나지 않게 하여 정보은닉의 역할도 수행하는 디자인 패턴

 

- 컴포지트(Composite)

객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴

 

- 어댑터(Adapter)

기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

- 행위 패턴
클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴

 

- 미디에이터(Mediator)

객체지향 설계에서 객체의 수가 너무 많아지면 서로 간 통신을 위해 복잡해져서 객체지향에서 가장 중요한 느슨한 결합을 해칠 수 있기 때문에 이를 해결하는 방법으로 중간에 이를 통제하고 지시할 수 있는 역할을 하는 중재자를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체지향의 목표를 달성하게 해 주는 디자인 패턴

 

- 인터프리터(Interpreter)

언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴

 

- 이터레이터(Iterator)

컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴

 

- 템플릿 메서드(Template Method)

어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

 

- 옵저버(Observer)

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴

 

- 스테이트(State)

객체 상태를 캡슐화하여 클래스화함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시 원시 코드의 수정을 최소화할 수 있고, 유지보수의 편의성도 갖는 디자인 패턴

 

- 비지터(Visitor)

각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아 다니며 특정 작업을 수행하도록 만드는 패턴

 

- 커맨드(Command)

실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

 

- 스트레티지(Strategy)

알고리즘 군을 정의하고(추상 클래스) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음, 필요할 때 서로 교환하서 사용할 수 있게 하는 패턴

 

- 메멘토(Memento)

클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴

 

- 책임연쇄(Chain of responsibility)

정적으로 어떤 기능에 대한 처리의 연결이 하드코딩되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴

 

- 운영체제(Operating System)

컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램

 

- 네트워크(Network)

컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술

 

- 응용 계층(Application Layer)

사용자와 네트워크 간 응용서비스 연결, 데이터 생성

 

- 응용 계층(Application Layer) 전송 단위

Data

 

- 응용 계층(Application Layer) 프로토콜

HTTP, FTP 

 

- 표현 계층(Presentation Layer)

데이터 형식 설정과 부호교환, 암/복호화.

 

- 표현 계층(Presentation Layer) 전송단위

Data

 

- 표현 계층(Presentation Layer) 프로토콜

JPEG, MPEG 

 

- 세션 계층(Session Layer)

연결 접속 및 동기제어.

 

- 세션 계층(Session Layer) 전송단위

Data

 

- 세션 계층(Session Layer) 프로토콜

SSH, TLS 

 

- 전송 계층(Transport Layer)

신뢰성 있는 통신 보장.

 

- 전송 계층(Transport Layer) 전송단위

Segment

 

- 전송 계층(Transport Layer) 프로토콜

TCP, UDP 

 

- 네트워크 계층(Network Layer)

단말 간 데이터 전송을 위한 최적화된 경로 제공.

 

- 네트워크 계층(Network Layer) 전송단위

Packet

 

- 네트워크 계층(Network Layer) 프로토콜

IP, ICMP 

 

- 데이터 링크 계층(Data Link Layer)

인접 시스템 간 데이터 전송, 전송오류 제어.

 

- 데이터 링크 계층(Data Link Layer) 전송단위

Frame

 

- 데이터 링크 계층(Data Link Layer) 프로토콜

이더넷

 

- 물리 계층(Physical Layer)

0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변화.

 

- 물리 계층(Physical Layer) 전송단위

Bit

 

- 물리 계층(Physical Layer) 프로토콜

RS-232C 

 

- 백본망

각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망

 

- 라우터
3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비

 

- 스위치

2계층 장비로서, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비

 

- 게이트웨이

컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 네트워크 장비

 

- 방화벽

외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크의 상호 간 영향을 차단하기 위한 보안 시스템

 

- 미들웨어

분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해 주는 소프트웨어

 

- 요구공학

사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동

 

- 요구사항 개발 단계

도출 -> 분석 -> 명세 -> 확인 및 검증

 

- 인터뷰

요구사항 도출 단계로, 이해관계자와 직접 대화를 통해 정보를 구하는 공식적, 비공식적 정보 수집 방법

 

- 브레인스토밍

요구사항 도출 단계로, 말을 꺼내기 쉬운 분위기로 만들어, 회의 참석자들이 내놓은 아이디어들을 비판 없이 수용할 수 있도록 하는 회의

 

- 델파이 기법

전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 방법

 

- 롤 플레잉

현실에 일어나는 장면을 설정하고 여러 사람이 각자가 맡은 역을 연기함으로써 요구사항을 분석하고 수집하는 방법

 

- 워크숍

단기간의 집중적인 노력을 통해 다양하고 전문적인 정보를 획득하고 공유하는 방법

 

- 설문 조사 

설문지 또는 여론조사 등을 통해 간접적으로 정보를 수집하는 방법

 

- 요구사항 분석 단계

요구사항 분류 -> 개념 모델링 생성 및 분석 -> 요구사항 할당 -> 요구사항 협상 -> 정형 분석 

 

- 요구사항 명세 원리 및 검증 항목
명확성, 완전성, 검증 가능성, 일관성, 수정 용이성, 추적 가능성, 개발 후 이용성

 

- 요구사항 관리 단계

요구사항 협상 -> 요구사항 기준선 설정 -> 요구사항 변경관리 -> 요구사항 확인 및 검증

 

- 상호 운용성

다른 목적을 지닌 2개 이상의 시스템들이 상호 간 정보 및 서비스를 교환하면서 효과적으로 운용될 수 있는 시스템의 능력

 

- 사용자 인터페이스(UI; User Interface)
사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체

 

- CLI(Command Line Interface)
정적인 텍스트 기반 인터페이스로, 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스

 

- GUI(Graphical User Interface)
그래픽 반응 기반 인터페이스로, 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스

 

- NUI(Natural User Interface)
직관적 사용자 반응 기반 인터페이스로, 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스

 

- OUI(Organic User Interface)
유기적 상호작용 기반 인터페이스로, 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

 

- 직관성(Intuitiveness)
UI 설계 원칙 중 하나로, 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함

 

- 유효성(Efficiency)
UI 설계 원칙 중 하나로, 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작

 

- 학습성(Learnability)
UI 설계 원칙 중 하나로, 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작

 

- 유연성(Flexibility)
UI 설계 원칙 중 하나로, 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

 

- 사용자 중심(UI 설계 지침)
사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경을 제공하며, 실사용자에 대한 이해가 바탕이 되어야 함

 

- 일관성(UI 설계 지침)
버튼이나 조작 방법을 사용자가 기억하기 쉽고 빠르게 습득할 수 있도록 설계해야 함

반응형