관리 메뉴

RUBY

[SJCU]1주차. 소프트웨어 시스템의 엔진과 P2P 본문

SJCU/알기쉬운블록체인

[SJCU]1주차. 소프트웨어 시스템의 엔진과 P2P

ruby-jieun 2023. 2. 28. 18:05

 

 

 

 

 

알기쉬운블록체인
1주차. 소프트웨어 시스템의 엔진과 P2P

 


 

 

 

 

학습내용

 

  1. 소프트웨어 시스템 엔진
    : 시스템 아키텍처
  2. P2P 시스템

 

 

학습목표

 

  1. 시스템 아키텍처를 설명할 수 있다.
  2. 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, 點) 집합을 이루는 하나하나의 개체

 

  1. 각각의 원, 노드(Node)
  2. 시스템을 구성하는 하나의 요소로 실제 시스템을 사용하는 사용자 혹은 개별 컴퓨터

 

 

 

링크(Link, 線)

 

  1. 노드들 간의 관계
  2. 구성요소 간 연결
  3. 노드 간 네트워크 연결성

 

 

학습평가

Q1 . 4차 산업혁명의 파급효과를 역설한 '제 4차 산업혁명'의 저자는?

       - 클라우스 슈밥

 

Q2. 기술 진화단계에서 가장 먼저 시작되는 단계는

      - 밀어내기 단계

 

Q3. 블록체인은 응용계층에 해당한다

      - X

 

Q4. 블록체인은 중앙통제형 P2P 방식이다

      - X

 

 

 

 

 

 

 

 

 

 

중앙통제 소프트웨어 시스템

 

  1. 구성요소들이 모두 하나의 중앙 요소에 연결되며 중앙 요소를 가운데 두고 나머지 요소들이 둘러싸고 있는 형태

 

 

 

분산시스템

 

  1. 시스템을 통제하거나 조정하는 요소가 없음
  2. 서로 연결된 네트워크 구조를 형성
  3. 네트워크는 업무를 위해 공통의 목표를 가지고 있음

 

 

 

 

분산시스템의 장점

 

 

 

 

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 방식의 비기능적 구현계층에 해당한다.

 

Comments