CS

CS/블록체인

[블록체인] 3. 블록체인의 구조와 해시 함수

이제부터 비트코인과 블록체인의 기술적인 내용을 다루려고 한다.블록체인은 이름 그대로 여러 블록들이 서로서로 고리를 물고 체인처럼 연결된 구조를 하고 있다.이 구조로 어떻게 탈중앙화된 화폐를 만들 수 있을까? 우선 비트코인에는 '트랜잭션' 이라는 개념이 존재한다.이 트랜잭션은 비트코인을 사용해서 발생하는 모든 거래 정보를 나타낸다.Alice가 Bob에게 1비트코인을 지불하고 상품을 받는 거래를 한다고 한다면,'엘리스가 밥에게 1비트코인을 지불한다' 라는 행위가 트랜잭션이 되는 것이다. 이때 비트코인에서 발생하는 모든 트랜잭션에는 '서명'이 필요하다.비트코인은 Permissionless 블록체인이라 누구나 접근할 수 있는 데이터베이스기 때문에,이 트랜잭션이 '내가' 발생시킨 트랜잭션임을 확실하게 서명을 통해..

CS/블록체인

[블록체인] 2. 블록체인의 활용

블록체인의 활용블록체인은 서브프라임 모기지 사태가 발단이 되어, 금융과 관련된 여러가지 문제를 기술로 해결하려는 시도에서 등장한 산물이다.따라서 블록체인은 그 활용 분야도 금융 분야에서 많이 활용된다. 1. Payment System비트코인의 등장 배경은 결제 시스템을 중앙화된 은행과 정부 기관에 의존하지 않는 것이 등장 배경이었다.따라서 결제 시스템에서 대표적으로 활용될 수 있다.블록체인을 통해서 일종의 입출금 장부를 모두가 공유하고 서로 서로 검증하여 신뢰를 얻는 것이다. 2. Venture Capital크라우드 펀딩과 같이 돈을 모으는 데에도 활용할 수 있다.블록체인은 기술 특성상 내부에 '코드' 를 집어 넣을 수도 있다. (스마트 컨트랙트)이때 내가 투자받은 금액에 대해서 좋은 성과를 낼 때마다 ..

CS/기초데이터베이스

[데이터베이스] 3. ER-Model (Entity, Relationship, Key)

데이터베이스 설계데이터베이스를 설계하는 과정은 크게 3단계가 있다. 1. 요구사항 분석 (requirement analysis)정말 장인 급으로 프로그래밍을 잘하지 않는 이상, 우리는 설계를 잘 할 수 있어야 한다.설계를 잘하려면 먼저 고객이 자연어로 말하는 요구사항을 잘 분석해서 이를 토대로 데이터베이스를 설계할 수 있어야 한다. 2. 개념적 데이터베이스 설계 (conceptual database design)고객의 요구사항을 분석했다면, 그 결과를 토대로 먼저 개념적으로 데이터베이스를 설계한다.이때 UML, ERD 등을 사용하여 데이터베이스를 설계할 수 있다. 3. 논리적 데이터베이스 설계 (logical database design)데이터베이스 설계가 끝났다면, 실제로 사용할 데이터베이스를 선택하고..

CS/기초데이터베이스

[데이터베이스] 2. 트랜잭션

트랜잭션트랜잭션(transaction)은 원자성이 있는(atomic, 쪼개지지 않는) 데이터베이스 내 일련의 동작들을 말한다.데이터베이스 내 동작들이라고 한다면, 당연히 데이터의 읽고 쓰기 과정을 말할 것이다. 예를 들어, 어떤 공동 계좌가 하나 있다고 생각을 해보자.이 계좌에는 1만원의 돈이 들어있다.그리고 '공동' 계좌이기 때문에, 계좌에서 돈을 넣고 빼는 행위는 여러 사용자에 의해서 병행으로 발생할 수 있다. 만약 내가 이 계좌에서 1000원을 출금을 할 때 필요한 과정을 생각해보면 다음과 같이 생각할 수 있다. 1. 데이터베이스에 접근인가를 받아 접근한다. (은행 계좌라면 본인 인증은 필수 일 것이다.)2. 계좌의 잔액을 조회한다. (10000원 read)3. 만약 계좌의 잔액이 1000원보다 많..

CS/블록체인

[블록체인] 1. 블록체인 개요

블록체인 기반 지식인터넷 계층과 프로토콜Ethernet : 데이터링크 계층의 핵심적인 기술, 이더넷을 통해 LAN이 만들어졌다.TCP/IP : 각각의 LAN을 연결시키는 기술. 이 기술로 인터넷이 등장했다.HTTP : 인터넷 상에서 콘텐츠를 주고받는데 사용하는 프로토콜.SSL/TLS : 인터넷의 보안과 관련된 계층 & 프로토콜. 요즘은 TLS를 주로 사용한다.이 프로토콜을 사용하면, 내가 보낸 메세지를 상대방이 탈취했을 때, 원본 메세지가 무엇인지 알 수 없게 만들 수 있고, 메세지를 조작해서 보내더라도, 수신자가 메세지의 조작 여부를 알 수 있다. 암호학인터넷이 발달한 이후, 인터넷을 통한 전자상거래도 활발히 발생하기 시작했다.이렇게 인터넷을 통해 돈이 오고 가기 시작하면서 데이터의 암호화에 대한 중요..

CS/기초데이터베이스

[데이터베이스] 1. 데이터베이스와 DBMS 개념

DBMSDataBase Management System : 데이터베이스 관리 시스템거대한 통합 데이터 저장소 (data collection) 프로그램이다. (DBMS는 소프트웨어다.) RDBMS (Relational DBMS) : 관계형 데이터베이스 관리 시스템 관계형 데이터베이스는 엔티티(개체)와 엔티티 사이의 관계(릴레이션)을 통해 실제 세상을 모델링한다.엔티티는 모델링하는 환경을 구성하는 요소이다. 학생이 수업을 듣는 환경을 모델링한다면, 엔티티는 '학생'과 '수업'으로 구성된다.그리고 학생과 수업은 '수강한다' 라는 관계로 이루어져있다. 나는 엔티티는 명사, 관계는 동사로 구성하기 좋다고 이해했다.  "학생이 수업을 수강한다" 학생 - 수강하다 - 수업 File System vs DBMS컴퓨터가 ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 38. Network Layer (14) : ICMP

ICMPInternet Control Message Protocol 의 줄임말이다.trace route를 하는 과정을 통해 ICMP 동작을 살펴본다. 원래 ICMP의 목적은 호스트나 라우터에서 error reporting 목적으로 사용되는 프로토콜이다.(호스트나 라우터에 도달할 수 없다든가, 프로토콜이 존재하지 않는다거나) 또는 ping 프로그램에서 요청/응답을 echo 하는데 사용한다. 이 프로토콜은 3계층 프로토콜이지만, 마치 TCP 처럼 IP 위에 존재하는 프로토콜이라, ICMP 메세지는 IP 데이터그램의 데이터로 들어간다. 그래서 이때는 IP 헤더에 프로토콜을 가리키는 부분에 ICMP 정보가 들어간다. ICMP 메세지는 다음과 같은 구조를 가진다. Type, Code 로 구성된다.(0, 0) 이면..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 37. Network Layer (13) : SDN control plane

이전에 정리한 SDN은 data plane 관점에서의 SDN 이었다.이번엔 control plane 관점에서 SDN을 정리해보자.즉, 어떤 OpenFlow 기반의 라우팅 테이블이 어떻게 만들어지는지, 누가 만드는지를 살펴보자. SDN인터넷 네트워크 계층인 기본적으로 분산 라우터 기반의 control approach를 쓰고 있다.라우터끼리 라우팅 도메인(AS, 정확히는 area) 내에서 정보를 교환해서 각 라우터가 스스로 라우팅 알고리즘도 결정해서 포워딩 테이블을 만들었다. 이 방식은 최초의 라우터를 만든 CISCO 사에서 시작했다.그때는 라우터를 만들면서 당연히 장치에 필요한 소프트웨어를 다 넣어서 같이 팔았다.온전한 일체형 제품을 판 것이다. (이를 가리켜 monolithic router 라고 한다.)..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 36. Network Layer (12) : inter-AS routing protocol (BGP)

BGPBGP (Border Gateway Protocol) 는 ISP 사이의 통신 표준이다.이 프로토콜을 따르지 않으면 다른 AS하고 통신할 방법이 없기 때문에, 모든 라우터 벤더들이 이 프로토콜을 따른다.이 프로토콜은 인터넷을 연결시켜주는 접착제 역할을 한다. intra-AS routing protocol 은 심지어 프로토콜 자체를 안써도 상관없다.우리는 그냥 라우팅 프로토콜 없이 어떤 목적지로 갈 때는 static 하게 무조건 이 길로 간다라고 해도 상관이 없다.하지만 그런 AS도 다른 AS와 연결되고 싶다면 이 프로토콜을 써야 한다.  가령 위 그림과 같이 네트워크가 구성되어 있다고 해보자.AS X 에 속한 A 컴퓨터에서 트래픽을 발생시켰는데, 목적지를 가는 길에 AS Y 를 거쳐야 한다고 하면, ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 35. Network Layer (11) : intra-ISP routing protocol (OSPF)

지금까지는 일반적인 라우팅 알고리즘들을 정리하였다.이제 실제 인터넷에서 사용되고 있는 구체적인 라우팅 프로토콜에 대해 정리한다. 대표적으로 자주 사용되는 프로토콜이 intra-ISP 라우팅 프로토콜인 OSPF와 inter-ISP, 즉, ISP끼리의 라우팅 프로토콜 표준인 BGP가 있다. 만약 내가 어떤 특정한 라우팅 도메인을 관리하고 있는 네트워크 관리자라면 intra ISP 라우팅 프로토콜은 임의로 선택하면 된다. (OSPF도 좋고, 직접 만들어서 써도 된다.) 이 방식이 기존의 전통적인 라우팅에 기반한 방식이고, 비교적 최근 등장한 SDN에 기반한 방식을 사용할 수도 있다.분산된 라우팅 알고리즘을 각각 라우터들끼리 나눠서 정보를 주고받으면서 나온 결과로 라우팅하는 것이 SDN 기반이다.이 방식을 사용..

에버듀
'CS' 카테고리의 글 목록 (7 Page)