728x90 반응형 분류 전체보기301 다익스트라 알고리즘 다익스트라 알고리즘(Dijkstra 알고리즘) 다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘 특정한 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알려준다. 하나의 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 그대로 사용한다. 다익스트라 알고리즘의 경우 어떤 경우에는 다이나믹 프로그래밍, 어떤 경우에는 탐욕 알고리즘으로 분류되기도 한다. 탐욕 알고리즘이란? 현재 상황에서 여러가지 경우가 있을 경우, 그 순간의 최선의 선택을 하는 알고리즘이다. 작동 과정 출발 노드를 설정 출발 노드를 기준으로 각 노드의 최소 비용을 저장 방문하지 않은 노드 중에서 가장 비용이 적은 노드를 선택 해당 노드를 거쳐서 특정한 노드로 가는 경우를 고려하여 최소 비용을 갱신 위 과정에서 3~4.. 2019. 4. 23. Architectural Views 아키텍처 구조 - UP(Unified Process) 4+1뷰 아키텍처 모델 4 + 1 뷰(Philippe Kruchten) 논리뷰: 구성요소는 핵심 개념 프로세스뷰: 기능의 동시성과 분산을 표현 구현뷰: 소프트웨어 모듈, 라이브러리, 서브시스템의 구조를 표현 배포뷰: 구성 요소를 물리적인 노드로 매핑 - 논리 뷰(logical view) 시스템의 기능적인 요구사항 시스템이 최종사용자를 위해 해야만 하는 것을 나타냄 - 구현 뷰(implementation view) 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여줌 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현 - 프로세스 뷰(process view) 런타임 시의 시스템의 동시적인 면 테스크, 쓰레드, 프로.. 2019. 4. 20. Architectural Design 소프트웨어아키텍처란? 프로그램이나 컴퓨팅 시스템의 소프트웨어아키텍처는 소프트웨어 구성요소와 그들이 지니고 있는 특성 중에 외부에 드러나는 특성, 그리고 구성요소들의 관계를 표현하는 시스템의 구조나 구조체이다. 소프트웨어아키텍처는 소프트웨어 시스템의 구조(structure)를 정의하며 표현한다. 소프트웨어아키텍처는 상위 레벨의 추상화를 통해서 시스템의 전반적인 모습을 보여주는 것이다. 소프트웨어시스템은 여러 소프트웨어 요소 또는 컴포넌트로 구성된다. 소프트웨어 요소 또는 컴포넌트는 외부로 드러나는 속성 즉, 인터페이스를 갖는다. 소프트웨어아키텍처는 왜 중요한가? 1. 이해당사자 사이의 의사 소통 (이해당사자(고객)들이 동일하게 이해해야 되서 의사소통이 중요) 2. 초기 설계 결정 사항 3. 재사용할 수 있.. 2019. 4. 20. System Modeling Context Models 시스템 명세 초기단계 - 개발되는 시스템의 내용 및 시스템의 경계를 정함 - 시스템 이해당사자들과 함께 작업 - 시스템 비용, 요구사항 및 설계를 이해하는데 필요한 시간을 제한하기 위하여 빠른 결정 필요 비즈니스 프로세스 모델 - 특정 소프트웨어 시스템이 사용되는 자동화된 프로세스들과 사람들을 설명 - Activity Diagram 프로세스의 액티비티들과 한 액티비티에서 다른 액티비티로 제어의 흐름을 보여줌 Interaction Models Use case modeling - 시스템과 외부 에이전트(사용자나 다른 시스템들)와의 상호작용을 모델링 Sequence diagram - 액터와 시스템의 객체들 간의 상호작용과 객체들 간의 상호작용을 모델링 - 외부 에이전트도 상호작용에 .. 2019. 4. 20. Requirements Engineering 시스템 요구사항 시스템이 제공해야 하는 서비스들과 그 서비스들이 동작에 관한 제약을 기술한 것 요구공학(RE) 서비스와 제약사항들을 찾고, 분석하고, 문서화하며 점검하는 프로세스 요구사항 사용자 요구사항 시스템이 사용자에게 제공해야 할 서비스와 동작하면서 준수해야 할 제약사항들에 대해 자연어와 다이어그램으로 기록한 문장 시스템 요구사항 소프트웨어 시스템의 기능, 서비스와 동작 중 제약사항에 대한 보다 상세한 설명 Fuctional and Non-Functional Requirements 기능적 요구사항 시스템이 제공해야 하는 서비스와 특정 입력에 대해 시스템이 반응하는 방식, 그리고 특정 상황에 시스템이 동작해야 하는 방식을 기술한 것 기능적 요구사항은 시스템이 무엇을 해야 하는지를 설명 기능적 요구사항.. 2019. 4. 20. SQL 데이터 조작문 DML 데이터 검색 - 기본 구조 SELECT 열_리스트 FROM 테이블_리스트 WHERE 조건; EX) SELECT Sname, Sno FROM STUDENT WHERE Dept = '컴퓨터'; 결과는 똑같은 쿼리문이 있다. SELECT STUDENT.Sname, STUDENT.Sno FROM STUDENT WHERE STUDENT.Dept = '컴퓨터'; 폐쇄 시스템(closed system) 테이블 처리 결과가 또 다시 테이블이 되는 시스템 중첩 질의문(nested query)을 구성할 수 있는 이론적 기초 SQL과 이론적 relational model의 차이점 - SQL의 테이블 한 테이블 내에 똑같은 레코드(행) 중복 가능(기본키가 없어도 되고 그래서 중복이 허용) 기본 키를 반드시 가져야 하는.. 2019. 4. 19. 해시, 해시테이블 해쉬란? 해쉬는 임의의 크기를 가진 데이터를 고정된 크기로 변환시키는 것 해시 함수란? 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 이 때 매핑 전 원래 데이터의 값을 키(key), 매핑 후 데이터의 값을 해시값(hash value), 매핑 하는 과정 자체를 해싱(hashing) 해쉬알고리즘? 해쉬를 하는 방법에 대해 절차적으로 명세 해시 테이블이란? 데이터가 해시 함수를 거쳐 분류된 이후 그 정보가 저장되는 테이블 해시 충돌(collision) 해시함수는 해쉬값의 개수보다 대개 많은 키값을 해쉬값으로 변화하기 때문에 해시함수가 서로 다른 두 개의 키에 대해 동일한 해시값을 내는 해시 충돌이 발생할 수 있다. 해시테이블의 장점 적은 리소스로 많은 데이터를 .. 2019. 4. 18. 이전 1 ··· 31 32 33 34 35 36 37 ··· 43 다음 728x90 반응형