본문 바로가기

컴퓨터 | IT25

럼바우(Rumbaugh) 객체지향 분석 기법 럼바우(Rumbaugh) 객체지향 분석 기법 객체 지향 분석 기법 정의 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석 기법 모델링의 목적 물리적 엔티티를 빌드하기 전에 테스트 고객과의 소통 시각화 복잡성 감소 종류 객체 모델링(Object modeling) - 객체 다이어그램으로 표시. 가장 중요하며 가장 선행되는 단계 동적 모델링(Dynamic modeling) - 상태 다이어그램(상태도)를 이용 기능 모델링(Functional) - 자료흐름도를 이용하여 프로세서들의 처리 과정을 기술 럼바우 객체 지향 분석 절차 객체 모형 → 동적 모형 → 기능 모형 2021. 2. 27.
인터페이스 구현 검증 도구, 감시도구 인터페이스 구현 검증 도구, 감시도구 인터페이스 구현 검증 도구 인터페이스가 정상적으로 작동하는 지 확인하기 위한 도구 인터페이스 구현을 검증하기 위해서는 인터페이스 단위 기능 및 시나리오에 기반한 통합 테스트가 필요하다. 인터페이스 구현 검증 도구의 종류 xUnit : Java, C++, Net 등 다양한 언어를 지원 STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원 FitNesse : 웹 기반 테스트 케이스 설계, 실행, 결과 확인 등을 지원 NTAF : STAF와 FitNesse를 통합 Selenium : 다양한 브라우저 지원 및 개발 언어를 지원 watir : Ruby 기반 인터페이스 구현 감시 도구 APM(Application Performance Management)을 사용하.. 2021. 2. 25.
EAI(Enterprise Application Integration) EAI(Enterprise Application Integration) EAI 개념 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해 주는 솔루션. EAI의 구축 유형 Point-to-point 중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결. 변경 및 재사용이 어려움 Hub & Spoke 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식. 확장 및 유지 보수 용이. Hub 장애 시 전체가 영향. 모든 데이터 전송 보장. Message Bus 애플리케이션 사이 미들웨어를 두어 처리. 확정성이 뛰어나고 대용량 처리 가능 Hybrid Hub & Spoke와 Message Bus의 혼합방식. 데이터 병목현.. 2021. 2. 24.
제품 소프트웨어 패키징 도구 제품 소프트웨어 패키징 도구 제품 소프트웨어 패키징 도구 패키징 작업 진행 시에 암호화/조안 기능을 고려하여 패키징할 수 있도록 도와준다. 제품 소프트웨어 패키징 도구의 개념 배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능 제공. 안전한 유통과 배포를 보장하는 도구이자 솔루션. 패키징 도구 활용 시 고려 사항 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려한다. 추가로 다양한 이기종 연동을 고려한다. 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다. 제품 소프트웨어 종류에 적합한 암호화 알고리즘을 적용한다. 2021. 2. 23.
인터페이스 요구 사항 검증 방법 인터페이스 요구 사항 검증 방법 요구 사항 검증(Verification) 요구 사항 검증은 요구 사항 명세서에 사용자의 요구가 올바르게 기술되었는지에 대해 검토하고 베이스라인으로 설정하는 활동. 요구 사항 검증 방법 요구 사항 검증 방법에는 크게 요구 사항 검토, 프로토타이핑, 테스트 설계, CASE 도구 활용 4가지로 나뉜다. 요구 사항 검토(Requirements Review) 요구 사항 검토 담당자들이 요구 사항 명세서를 수작업으로 분석하는 방법 동료 검토(Peer Review) : 2~3명이 진행하는 리뷰의 형태. 요구 사항 명세서 작성자가 요구 사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견 워크 스루(Walk Through) : 시스템 개발 단계마다 실시하는 비정형 검토 회의.. 2021. 2. 22.
디자인 패턴(Design Pattern) 디자인 패턴(Design Pattern) 디자인 패턴 정의 어떤 분야에서 반족적으로 나타나는 문제점들에 대해 전문가들의 경험을 정리하여 해결방안을 제시한 패턴. 디자인 패턴을 구성하는 요소 문제 및 배경 사례 샘플코드 디자인 패턴의 종류 디자인 패턴은 크게 생성 패턴(Creational Patterns), 구조 패턴(Structural Patterns), 행동 또는 행위 패턴(Behavioral Patterns)로 나뉘고, 그 안에 여러가지의 패턴이 존재한다. ¤ 생성 패턴(Creational Patterns) 추상 팩토리 패턴(Abstract Factory) : 동일한 주제의 다른 팩토리를 묶어 준다. 빌더 패턴(Builder) : 생성(construction)과 표기(representation)를 분.. 2021. 2. 21.
코드의 종류 코드의 종류 코드의 정의 데이터를 사용 목적에 따라 식별, 분류, 배열하기 위하여 사용되는 숫자, 문자 또는 기호로 컴퓨터 처리에 효율적인 것을 선정 코드의 종류 순차 코드(Sequence Code) 자료의 발생순, 크기순 등 코드화 대상 항목을 일정한 순서에 의해 일련 번호를 부여하는 코드 블럭 코드(Block Code) 코드화할 대상이 갖는 공통 특징을 중심으로 항목들을 별도의 집단으로 분류하고, 한 집단 안에서 순서대로 코드를 부여 그룹 분류 코드(Group Classification Code) 대상 항목에 대한 분류 기준에 따라 대분류, 중분류, 소분류 등 각 분류별로 번호를 순서적으로 부여하는 코드 표의 숫자 코드(Significant Digit Code) 코드화 대상 항목의 중량, 면적, 용량.. 2021. 2. 20.
소프트웨어 아키텍처 패턴 소프트웨어 아키텍처 패턴 아키텍처 패턴의 정의 문제를 해결하는 해법으로 SW시스템의 기본구조와 관련된 것을 다룰 경우 아키텍처 수준의 패턴이라고 한다. 아키텍처 패턴의 종류 레이어 패턴(Layers pattern) 가장 일반적으로 사용하는 아키텍처 패턴으로서 시스템을 계층으로 구분하여 구성되어 있다. 모듈의 재사용성을 높여 유지보수성이나 이식성에 좋은 패턴. 클라이언트 서버 패턴(Client-Server pattern) 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴 파이프 필터 패턴(Pipe-Filter pattern) 서브시스템이 입력데이터를 받아 처리하고 다음 서브시스템으로 넘겨주는 과정에서 파이프를 통해 다음으로 전달되는 패턴 모델 뷰 컨트롤러 패턴(Model View Contr.. 2021. 2. 19.
객체 지향 설계 원칙(SOLID) 객체 지향 설계 원칙(SOLID) SOLID 컴퓨터 프로그래밍에서 SOLID란 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 의미한다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. 설계 원칙 5가지 단일 책임 원칙(Single responsibility principle : SRP) 한 클래스는 하나의 책임만 가져야 한다. 개방 - 폐쇄 원칙(Open / Closed principle : OCP) 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다. 리스코프 치환 원칙(Liskov substitution principle : LSP) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀.. 2021. 2. 17.
인터넷(Internet) 인터넷(Internet) 인터넷 개념 인터넷은 수천 개의 개별 네트워크를 연결하는 글로벌 통신 시스템이며, 컴퓨터로 연결하여 TCP/IP(Transmission Control Protocol / Internet Protocol)라는 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크이다. 이러한 연결을 통해 메시지를 교환하고, 실시간으로 통신하며 정보를 무제한으로 공유할 수 있다. 인터넷 프로토콜(TCP/IP) 컴퓨터나 원거리 통신 장비 사이에서 정보를 주고 받는 양식과 규칙을 의미한다. 인터넷에서 사용되는 프로토콜은 TCP/IP가 있다. 이 프로토콜은 하드웨어, 소프트웨어 및 설계에서 서로 다른 두 네트워크를 연결한다. TCP/IP는 가장 낮은 네트워크 연결 계층(Network Access Laye.. 2021. 2. 15.
네트워크(Network) 네트워크(Network) 네트워크 개념 네트워크는 둘 이상의 호스트 / 컴퓨터 간의 상호 연결을 의미한다. 케이블을 사용하여 물리적으로 연결하거나 무선 네트워크를 사용하여 가장으로 연결할 수 있다. 네트워크에서 컴퓨터 장치들은 데이터 링크를 통해 데이터를 교환한다. 네트워크 유형 네트워크의 주요 유형에는 LAN, WAN, MAN 등이 있다. LAN(Local Area Network) 근거리 통신망이라 불리는 LAN은 짧은 거리 내에서 데이터 통신을 제공하고 컴퓨터 및 프린터와 같은 여러 장치를 연결한다. 보통 단일 건물 또는 인접한 건물 내에 존재하는 네트워크의 경우 LAN이다. WAN(Wide Area Network) 광역 네트워크라 불리는 WAN은 넓은 지리적 영역에 데이터 통신을 제공하는 네트워크다.. 2021. 2. 14.
운영 체제(Operating System : OS) 운영체제(Operating System : OS) 운영 체제 시스템 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어. 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 준다. 가장 많이 사용되는 운영체제에는 Windows, Linux 등이 있다. 운영 체제의 기능 ¤ 사용자 인터페이스 제공 ¤ 시스템의 오류를 검사하고 복구 ¤ 자원 보호 기능을 제공 ¤ 프로그램을 컴퓨터의 메모리에 로드 ¤ 정보가 디스크에 저장되고 검색되는 방법을 관리 ¤ 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공 ¤ 프로그램이 하드웨어 및 기타 소프트웨어와 함께 작동하는 방식을 조정 ¤ 실.. 2021. 2. 13.
컴퓨터(Computer) 컴퓨터(Computer) 컴퓨터(Computer) 정의 컴퓨터는 사용자로부터 데이터를 받아 처리하고 결과를 만들어 사용자에게 표시하고 향후 사용을 위해 결과를 저장하는 전자 장치이다. 데이터는 체계화되지 않은 사실과 수치들의 집합 정보는 체계화된 데이터, 즉 처리된 데이터이다. 컴퓨터의 기능 컴퓨터의 기능에는 입력, 정보 처리, 정보 저장, 출력이 있다. 입력 : 키보드, 마우스, 스캐너 등과 같은 다양한 입력장치를 통해 컴퓨터에 입력 정보 처리 : 컴퓨터의 프로그램에 의해 수행 정보 저장 : 정보가 처리된 후에는 기본 또는 보조 공간에 저장 출력 : 모니터, 프린터 등의 출력장치를 통해 출력 이 파일은 Creative Commons Attribution-Share Alike 3.0 Unported 라이.. 2021. 2. 11.
UML 다이어그램의 종류 UML 다이어그램의 종류 UML 다이어그램 실제 시스템에서 많은 지식들을 구현하기 위해서는 다양한 다이어그램을 이해하는 것이 중요하다. 시스템의 종류에 따라 더 이해하기 쉽게 만들 수 있기 때문이다. 시스템의 다양한 측면을 다루기 위해 여러 개의 다이어그램이 정의되어 있다. 다이어그램에는 아래와 같이 크게 두 가지로 나눌 수 있고 그 안에 하위 범우의 다이어그램이 있다. ¤ 구조 다이어그램 : 시스템 정적 부분을 담당 클래스, 개체, 컴포넌트, 배포 다이어그램이 구조 다이어그램에 속한다. ¤ 행동 다이어그램 : 시스템 동적 부분을 담당 유즈 케이스, 시퀀스, 협업, 상태, 활동 다이어그램이 행동 다이어그램에 속한다. →UML(Unified Modeling Language)← UML 다이어그램의 종류 ¤ .. 2021. 2. 10.
UML이란? UML(Unified Modeling Language) UML(Unified Modeling Language) UML은 소프트웨어 시스템의 아티팩트를 지정, 시각화, 구성 및 문서화하기위한 표준 언어. UML은 C++, Java 등과 같은 일반적인 프로그래밍 언어와 다르다. UML은 소프트웨어 설계 / 시스템 설계를 하는데 있어 사용되는 시각적 모델링 언어다. UML은 객체 지향 분석 및 설계와 직접적인 관련이 있다. UML의 목표 UML의 가장 궁극적 목표는 모든 모델러가 사용할 수 있는 범용 모델링 언어를 정의하고 이해하기 쉽고 사용하기 쉽게 만드는 것이다. UML은 개발자뿐만 아니라 사용자, 일반인 모두가 이해하고 사용할 수 있도록 제작되었다. UML과 객체지향 UML은 객체지향 분석 및 디자인과 .. 2021. 2. 9.
스크럼(Scrum) 스크럼(Scrum) 스크럼(Scrum) 스크럼(Scrum)은 팀 기반 개발 환경 내에서 작업을 관리하는 방법에 특히 집중하는 애자일(Agile) 개발 방법이다. 기본적으로 스크럼은 럭비 경기 중에 발생하는 활동에서 파생되었다. 스크럼(Scrum)은 개발 팀의 역량을 강화하고 소규모 팀에서 선호된다. 세 가지 역할로 구성되며, 그 책임은 다음과 같다. ¤ Scrum Master 마스터는 팀 구성, 스프린트 미팅 및 진행에 방해되는 것을 제거할 책임이 있다. ¤ Product owner 프로덕트 오너는 제품 백로그를 생성하고 백로그의 우선 순위를 지정하며 각 반복에서 기능 제공을 담당한다. ※ 제품 백로그 - 출시하려는 제품에 필요하다고 알려진 모든 요구사항에 대한 수선 순위 목록 ¤ Scrum Team 팀.. 2021. 2. 8.
애자일 방법론(Agile) 애자일 방법론(Agile) 애자일(Agile) 애자일 소프트웨어 개발 방법론은 비즈니스 요구에 대한 비전을 소프트웨어 솔루션으로 전환하는 가장 간단하고 효과적인 프로세스 중 하나이다. 애자일 프로세스 모델은 고객의 요구사항을 바로 반영하고 상황에 따라 주어지는 문제를 풀어나가는 방법론이다. 주로 요구사항에 대처하기 어려운 폭포수 모델과 비교할 수 있다. 애자일(Agile)은 네 가지 핵심 가치를 가지고 있다. 1. 프로세스 및 툴에 대한 개별 및 팀 상호 작용 2. 포괄적인 설명서를 통한 소프트웨어 작동 3. 계약 협상을 통한 고객 협업 4. 계획에 따른 변경 대응 애자일과 폭포수 모델 애자일 폭포수 모델 점진적이고 반복적인 접근방식 순차적 진행 고객이 초기에 제품을 보고 프로젝트 결정 및 변경 프로젝트.. 2021. 2. 7.
XP(Extreme Programming) XP(Extreme Programming) XP(Extreme Programming) 익스트림 프로그래밍(Extreme Programming, XP)은 변화하는 고객 요구사항에 대한 소프트웨어 품질과 대응성을 향상시키기 위한 소프트웨어 개발 방법론이다. Value 익스트림 프로그래밍은 처음에 커뮤니케이션, 단순성, 피드백, 용기라는 네 가지 가치를 인식했다. 존중이라는 새로운 가치가 Extreme Programming Descripted의 두 번째 판에 추가되었다. 1. 소통(Communication) 소프트웨어 시스템을 구축하려면 시스템 개발자에게 시스템 요구사항을 전달해야한다. 공식 소프트웨어 개발 방법론에서 이 작업은 문서를 통해 수행된다. 목표는 모든 개발자에게 시스템 사용자가 보유한 보기와 일치.. 2021. 2. 6.
시스템 개발 수명 주기(System Development Life Cycle : SDLC) 시스템 개발 수명 주기(System Development Life Cycle : SDLC) SDLC(System Development Life Cycle) SDLC(System Development Life Cycle)는 시스템 엔지니어링, 정보 시스템 및 소프트웨어 엔지니어링에서 애플리케이션 개발 수명 주기라고도 하며 정보 시스템을 계획, 생성, 테스트 및 배포하는 프로세스이다. 시스템 개발 수명주기 개념은 시스템이 하드웨어, 소프트웨어 또는 둘 모두의 조합으로 구성될 수 있기 때문에 다양한 하드웨어 및 소프트웨어 구성에 적용된다. 이 주기에는 일반적으로 요구사항 분석, 설계, 개발 및 시험, 구현, 문서화 및 평가의 단계가 있다. 이 파일은 Creative Commons Attribution-Shar.. 2021. 2. 5.
객체 지향 프로그래밍 객체 지향 프로그래밍 객체 지향 프로그래밍 객체 지향 프로그래밍(OPP)은 필드 형태의 데이터와 코드(속성 또는 속성), 프로시저 형태의 코드를 포함할 수 있는 객체(objects)의 개념에 기반한 프로그래밍 패러다임이다. 객체의 특징은 객체 자체의 절차가 자주 자신의 데이터 필드에 접근하고 수정할 수 있다는 것이다. 객체 지향 프로그래밍에서 컴퓨터 프로그램은 서로 상호작용하는 개체로 만들어 설계된다. 언어는 다양하지만, 가장 인기 있는 언어는 클래스 기반이며, 개체가 클래스 인스턴스이며, 클래스 유형도 결정한다. 중요한 객체 지향 언어에는 Java, C++, C#, Python, R, PHP, Visual Basic.NET, JavaScript, Ruby, Perl, Object Pascal, Obje.. 2021. 2. 4.
소프트웨어 개발 모델 : 나선 모델(Spiral model) 나선 모델(Spiral model) 나선 모델 하향식 및 상향식 개념의 장점을 결합하기 위해 폭포 모델의 일부 핵심 측면과 빠른 프로토타이핑 방법론을 결합한 공식 소프트웨어 시스템이 "나선 모델"이다. 특히 대규모 복잡한 시스템에 적합한 의도적인 반복 위험 분석으로 인해 많은 사람들이 무시했었던 주요 영역에 중점을 두었다. 나선 모델에서는 설계, 프로그래밍 및 테스트로 구성된 일련의 프로세스가 시스템의 각 하위 단위에 대해 반복되며, 개발은 반복적이고 곱게 이루어진다. 기본 원리 프로젝트를 더 작은 세그먼트로 나누고 개발 프로세스 동안 보다 쉽게 변경할 수 있는 기회를 제공함으로써 위험 평가와 프로젝트 위험 최소화에 초점을 맞추고 있으며, 라이프사이클 전체에 걸쳐 리스크를 평가하고 프로젝트 지속에 대한 .. 2021. 2. 3.