RUBY
[SJCU]1주차. 소프트웨어 시스템의 엔진과 P2P 본문
알기쉬운블록체인
1주차. 소프트웨어 시스템의 엔진과 P2P
학습내용
- 소프트웨어 시스템 엔진
: 시스템 아키텍처 - P2P 시스템
학습목표
- 시스템 아키텍처를 설명할 수 있다.
- P2P시스템을 설명할 수 있다.
소프트웨어 아키텍처의 중요성
- the set of design decisions that must be made early
아키텍쳐 디자인은 우선적으로 진행되어야 한다. - the decisions that you wish you could get right eatly
올바른 결정은 더 빨리 내려지는 것을 원한다. - the decisions that are hard to change
결정은 변경하기 어렵다
1. 소프트웨어 시스템 엔진
시스템 아키텍처
"소프트웨어 시스템을 구현하는 방법은 다양하지만, 시스템 아키텍처는 모두 필수적으로 결정"
시스템 아키텍처의 정의
- 아키텍처는 소프트웨어 시스템의 뼈대
- SW 컴포넌트들과의 관계를 정의한 시스템 구조
- 컴포넌트들 간의 상호관계를 설계하고 전개하기 위한 지침과 원리
- 구성요소를 구조화하고 구성요소간 관계를 설정하는 방식
기능적 측면(사용자의 요구사항)과 비기능적 측면의 요구사항을 전부 구현하기 위해 필요한 것은?
예시 ) 자동차 구매 시 디젤 엔진, 가솔린 엔진, 하이브리드 시스템 등 여러 엔진 중 하나 고를 수 있음
사용하는 엔진 종류에 따라 유지비용이나 성능 등이 차이가 있음
- 이러한 엔진에 해당하는 것이 시스템 아키텍처
결제시스템의 계층과 측면
층위 | 기능적 측면 | 비기능적 측면 |
응용계층 | * 입금 * 출금 * 이체 * 계좌조회 |
* 멋진 사용자 환경 * 사용 편의성 * 빠른 이체 * 다중 접속 처리 |
구현계층 | 자동차 엔진을 선택하듯이 소프트웨어 시스템의 엔진에 해당하는 영역 | * 24시간 서비스 * 금융사기 방지 * 무결성 유지 * 개인정보 보호 |
시스템 아키텍처 유형
중앙통제 방식 vs. 분산 방식
노드(Node, 點) 집합을 이루는 하나하나의 개체
- 각각의 원, 노드(Node)
- 시스템을 구성하는 하나의 요소로 실제 시스템을 사용하는 사용자 혹은 개별 컴퓨터
링크(Link, 線)
- 노드들 간의 관계
- 구성요소 간 연결
- 노드 간 네트워크 연결성
학습평가
Q1 . 4차 산업혁명의 파급효과를 역설한 '제 4차 산업혁명'의 저자는?
- 클라우스 슈밥
Q2. 기술 진화단계에서 가장 먼저 시작되는 단계는
- 밀어내기 단계
Q3. 블록체인은 응용계층에 해당한다
- X
Q4. 블록체인은 중앙통제형 P2P 방식이다
- X
중앙통제 소프트웨어 시스템
- 구성요소들이 모두 하나의 중앙 요소에 연결되며 중앙 요소를 가운데 두고 나머지 요소들이 둘러싸고 있는 형태
분산시스템
- 시스템을 통제하거나 조정하는 요소가 없음
- 서로 연결된 네트워크 구조를 형성
- 네트워크는 업무를 위해 공통의 목표를 가지고 있음
분산시스템의 장점
1. 더 강력한 계산(Computing) 능력
- 서로 연결된 여러 컴퓨터의 계산 능력이 합쳐져서 동작
- 단위 시스템보다 훨씬 강력한 계산 능력
2. 비용 절감
- 초기비용은 개별 컴퓨터보다 많이 든다.
(다수의 컴퓨터가 필요하다)
- 하지만 분산 시스템과 동일한 성능을 가진 슈퍼컴퓨터 한 대를 제작한다고 가정했을 때
그 한 대를 유지, 운영하는 비용보다 저렴하다
- 분산 시스템의 경우 일부 컴퓨터가 고장나도 그 부분만 교체하면 되는데,
중앙통제 방식의 경우 해당 슈퍼컴퓨터 전체를 교체해야 해서 유지보수 비용이 더 많이 발생
3. 안정성이 높음
- 안정성(Stability)
바뀌어 달라지지 않고 일정한 상태를 유지하는 성질 / 항상 동일한, 비슷한 수준의 서비스를 계속 제공할 수 있는 것
- 분산 시스템은 단일 구성요소가 오작동 시 다른 구성요소가 그 역할 수행
- 다른 노드들이 고장난 시스템의 일 분담 가능
4. 확장성, 유연함
5. 분산 시스템의 계산 능력 = 각 노드의 개별 계산 능력의 합
6. 시스템에 새로운 컴퓨터를 추가하면 계산 능력을 증대 시킬 수 있음
분산시스템의 단점
1. 구성 요소를 조정하는 중앙 요소의 부재
- 전체적인 분산 시스템 조정이 필요한 경우
조정하는 중앙 노드가 따로 없어서 조정을 위해 서로 계산하는 과정이 필요
- 오버헤드(Overhead) 발생
어떤 처리를 하기 위해 들어가는 간접적인 자원 소모
* 조정 오버헤드(Coordination Overhead) 발생
시스템 조정으로 인한 추가자원, 오버헤드 발생
* 통신 오버헤드(Communication Overhead) 발생
조정을 위해 계산 능력의 일부가 통신 프로토콜 지원과 메시지 송수신 처리에 소모
2. 네트워크에 대한 의존도 증가
- 분산 시스템의 모든 노드들은 네트워크를 통해 서로 통신
- 특히 중앙통제 노드가 없어서 다른 노드와 통신하기 위해 여러 번의 네트워크 채널을 통해 통신을 서로 주고 받아야 함
3. 프로그램이 복잡
- 중앙통제 시스템
시스템 조정 오버헤드, 통신 오버헤드 등을 고려하지 않아도 됨
- 분산 시스템의 문제를 해결하기 위해 시스템 자체가 훨씬 복잡
4. 보안 문제
- 중앙에서 보안을 책임지고 통제하는 시스템이 없음
- 따라서 전체 분산 시스템에 악의적은 컴퓨터가 몇 대 들어와서 공격을 시도하는 경우,
중앙에서 컨트롤하고 막아주는 보안 메커니즘을 만들기 어렵다.
2. P2P시스템
P2P 네트워크는 분산 시스템의 특수한 형태
P2P 시스템의 정의
- 각각의 개인 PC가 시스템의 노드가 되는 분산 시스템의 일종
- 네트워크 모든 구성원이 서로에게 계산 자원을 제공
- 처리 능력, 저장 공간, 데이터, 네트워크 대역폭 등
- 각 노드는 시스템 내에서 동등한 권리와 역할을 가짐
- 모두가 자원의 공급자인 동시에 소비자
P2P 시스템 응용 분야
- 파일 공유, 콘텐츠 배분, 비밀 보호 등
- 개인 PC에 저장된 파일은 시스템의 다른 유저와 공유
- 누군가 파일을 다운로드하기 시작하면, 다른 컴퓨터들에 저장된 파일에서 다운로드
- 더 많은 사용자가 소프트웨어를 사용할 수록 시스템은 더 거대해지고 강력해짐
P2P 시스템 아키텍처
P2P 시스템의 구조
- 분산 컴퓨터 시스템 형태
개별 노드로 구성된 컴퓨터들이 서로 자원을 공유
중앙 통제 P2P 시스템 vs. 순수 분산 P2P 시스템
- 중앙 통제 P2P 시스템
혼합형 아키텍처(중앙통제 시스템 + 분산 계산) - 중앙 통제 P2P의 대표적 사례
냅스터(데이터베이스에 접속한 모든 노드와 노드가 보유한 노래 정보를 저장) - 순수 분산 P2P 시스템
중앙에서 통제하거나 조정하는 요소가 없음
블록체인의 각광 배경(탈중개화)
- 전체 산업 생태계를 변화시킬 잠재력을 가지고 있다고 평가
블록체인
- 분산 소프트웨어 시스템의 구현 계층에 해당
- 블록체인의 목적
분산 소프트웨어 시스템의 특정 비기능적 요소인 무결성을 확보하고 유지하는 것
- P2P 시스템의 무결성(Integrity)를 보장하는 도구 - P2P 네트워크의 장점 활용 가능
- 탈중개화(De-intermediated)를 통한 상업적 잠재력
순수 분산 방식의 P2P 네트워크 구현 가능
Q1. 4차산업혁명의 파급효과를 역설한 '제 4차 산업혁명'의 저자
- 클라우스 슈밥
2016년 세계경제포럼에서 '제4차 산업혁명'의 도래와 대응을 역설하였다.
Q2. 기술 진화단계에서 가장 먼저 시작되는 단계
- 밀어내기 단계
밀어내기 단계, 끌어내기 단계, 밀어내기와 끌어내기 단계의 반복적 단계로 보는 것이 일반적이다.
Q3. 블록체인은 응용계층에 해당한다
- X
블록체인은 순수 P2P방식의 비기능적 구현계층에 해당한다.
Q4. 블록체인은 중앙통제형 P2P방식이다
- X
블록체인은 순수 P2P 방식의 비기능적 구현계층에 해당한다.
'SJCU > 알기쉬운블록체인' 카테고리의 다른 글
[SJCU]2주차. 블록체인 세대 구분 (0) | 2023.03.10 |
---|---|
[SJCU]2주차. 블록체인 배경 (0) | 2023.03.10 |
[SJCU]2주차. 블록체인 정의 (0) | 2023.03.10 |
[SJCU]1주차. 시스템 변화와 소프트웨어 시스템 (0) | 2023.02.28 |
[SJCU]1주차. 제4차 산업혁명의 개념 (0) | 2023.02.28 |