본문 바로가기

분류 전체보기577

네트워크 분석 네트워크 분석 네트워크 개념 노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망 중 하나. 간단히 말해서, 둘 이상의 컴퓨터의 연결로 서로 통신 하는 것을 말한다. OSI 7계층 정의 국제표준화기구에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. OSI 7계층별 설명 1계층 - 물리 계층 물리계층(Physical Layer)은 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다. 전기적 변환이나 기계적 작업을 담당 2계층 - 데이터 링크 계층 데이터 링크 계층(Data Link Layer)은 포인트 투 포인트 간 신뢰성있는 전송을 보장하기 위한 계층. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 .. 2021. 2. 18.
플랫폼 성능 특성 분석 플랫폼의 성능 특성 분석 플랫폼의 성능 특성을 분석하는 이유 1. 성능을 분석하여 사용자가 사용하기에 속도가 느린지 빠른지 알 수 있다. 2. 사용자 요구사항 중 성능에 대한 요구사항이 현재 시스템의 플랫폼 성능과 관련성이 높다. 플랫폼 성능 특성 확인 방법 1. 성능 테스트 : 현재 시스템의 플랫폼을 대상으로 성능/부하 테스트를 수행 2. 사용자 인터뷰 : 현재 시스템 사용자를 대상으로 인터뷰 수행하여 성능 확인 3. 문서 점검 : 현재 시스템의 플랫폼과 유사한 플랫폼의 성능 자료 분석 예제 다음 중 플랫폼의 성능 특성을 확인하기 위한 방법이 아닌 것은? 1. 성능 테스트 2. 문서 점검 3. 기능 테스트 4. 사용자 인터뷰 2021. 2. 18.
플랫폼 기능 분석 플랫폼 기능 분석 플랫폼의 개념 1. 응용 소프트웨어 프로그램을 구동시키는 데 필요한 하드웨어와 소프트웨어의 결합 2. 소프트웨어 개발과 운영을 쉽게하고 한 번 만들어지고나면 언제, 어디서 실행시키더라도 손쉽게 소프트웨어가 구동가능하다. 플랫폼의 기능 1. 소프트웨어 개발 및 운영 비용 감소 2. 동일한 플랫폼간 커뮤니티 형성하여 네트워크 효과 유발 3. 소프트웨어 개발 생산성 향상 플랫폼의 기능 특성 확인 방법 1. 기능테스트 : 플랫폼을 평가할 수 있는 기능 테스트를 수행 2. 사용자 인터뷰 : 현재 시스템 사용자대상으로 인터뷰 수행 3. 문서 점검 : 현재 플랫폼과 유사한 플랫폼의 기능 자료 분석 2021. 2. 18.
운영체제 분석 운영체제 분석 운영체제 개념 운영체제(OS : Operaing System)는 하드웨어와 소프트웨어 자원을 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어 운영체제의 종류 및 특징 1. 유닉스(Unix) 저작자 : IBM의 IBM AIX, HP(HP-UX), SUN(Solaris) 용도 : 멀티 태스킹과 다중 사용자를 지원, 대용량 처리 2. 윈도우(Windows) 저작자 : Microsoft 용도 : 개인용 PC, Tablet PC, 중소규모 서버 3. 리눅스(Linux) 저작자 : 리누스 토르발스(Linus Torvalds) 용도 : 중/대규모 서버 4. 안드로이드(Android) 저작자 : Google 용도 : Tablet PC, 스마트폰 5. iOS 저작자 : Apple 용도 :.. 2021. 2. 18.
객체 지향 설계 원칙(SOLID) 객체 지향 설계 원칙(SOLID) SOLID 컴퓨터 프로그래밍에서 SOLID란 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 의미한다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. 설계 원칙 5가지 단일 책임 원칙(Single responsibility principle : SRP) 한 클래스는 하나의 책임만 가져야 한다. 개방 - 폐쇄 원칙(Open / Closed principle : OCP) 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다. 리스코프 치환 원칙(Liskov substitution principle : LSP) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀.. 2021. 2. 17.
분석자동화 도구 분석자동화 도구 CASE(Computer Aided Software Engineering) 도구 - 구조화된 요구 사항 명세서에 대해서는 자동화된 일관성 분석을 제공하는 CASE 도구를 활용 - 이러한 도구를 사용하면 요구사항 변경 사항을 추적하고 분석 및 관리할 수 있으며, 표준 준수 여부를 확인할 수 있다. 또 분산된 환경에서 다양한 이해관계자가 공동 작업할 수 있으며, 테스트 연계 및 결함 관리 등의 기능을 제공하기 때문에 시스템 구축 업무를 효율적으로 수행할 수 있다. CASE의 정의 소프트웨어 개발 과정의 일부 또는 전체를 자동화하기 위한 도구. 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공. 작업 과정 및 데이터 공유를 통해 작업자간 커뮤니케이션을 증대. CASE의 기능 소프트웨어 생명.. 2021. 2. 16.
인터넷(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.
어메이징한 살아있는 다리 살아있는 다리 살아있는 다리는 나무에 의해 살아있는 뿌리로 형성된 다리를 말한다. 인도 북동부 메갈라야 주의 남부 지역에서 흔하게 발견되는 이것은 농부들이 쉽게 개울을 건너기 위해 만들어졌다. 자연에서 스스로 형성된 것은 아니다. 살아있는 다리를 만들게 된 것은 세계에서 가장 비가 많이내리는 메갈라야 주의 Mawsynram 마을에는 심한 폭풍과 홍수로 인해 인공 다리는 썩고 무너진다. 이러한 조건에서 살아남기 위해 원주민들은 일반적으로 인도 고무 식물로 알려진 나무로 다리를 만들게 되었다. 나무 뿌리는 천천히 반대 편 둑에 도달할 때까지 수년간 끈기 있게 보살핌을 받으며, 결국 인간의 무게를 지탱할 수 있는 다리를 형성하게 되었다. 이 다리는 형성되기까지 15~20년 정도 걸릴 수 있다. 살아있는 다리의.. 2021. 2. 12.
컴퓨터(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.
소프트웨어 개발 모델 : 프로토타입 모델(Prototype model) 프로토타입 모델(Prototype model) 프로토타입 모델 폭포수 모델은 다음과 같은 문제들을 수반한다. -폭포모형에서는 시스템 기본계획 단계에서 사용자의 요구 사항을 파악하기가 매우 어렵습니다. 때로는 고객조차도 그러한 요구 사항을 알지 못한다. - 설계 다이어그램 및 구두 설명이 불충분한 경우가 있다. 이러한 문제를 해결하기 위해, 프로토타입 모델이 고안되었다. 프로토타입 모델을 사용하여, 구성될 시스템은 고객의 이해를 돕기 위해 SQL(Structured Query Languag)과 같은 단순화된 프로그래밍 언어로 대략 모델링된다. 그런 다음 의도된 개발 작업을 주시한다. 프로토타입 모델 분류 - "투기형": 시험편은 목적 달성 후 폐기된다. - "기밀형" : 이후 시험편에 세부사항이 추가되어 .. 2021. 2. 2.
소프트웨어 개발 모델 : Waterfall model(폭포수 모델) Waterfall model(폭포수 모델) 폭포수 모델 모델에서, 작업은 여러 단계로 나뉘며, 각 단계에 대해 관리를 수행한다. '폭포수'라는 이름으로 알 수 있듯이, 모델의 작업은 상류(기본 계획)에서 하류(下流)로 진행되며, 절대 역류하지 않는다. 폭포수 모델은 소프트웨어 엔지니어링에 적용되는 전통적인 엔지니어링 접근 방식이다. 접근방식이 이전단계를 다시 수정할 수 없도록 되어 있기 때문에 보다 유연한 모델로 대체되었다. 소프트웨어 요구사항 분석 → 소프트웨어 디자인 → 수행 → 검증 → 유지보수 이 파일은 Creative Commons Attribution 3.0 Unported 라이선스에 따라 사용이 허가되었습니다 . 폭포수 모델의 단점 - 폭포모형에서는 시스템 기본계획 단계에서 사용자의 요구 사.. 2021. 2. 1.