Unborn 8.0 Yellow Pointer
본문 바로가기

프로그래밍31

[블록체인] 블록체인 A-Z : 블록체인의 이해 3 - 비잔틴 장애 허용 및 합의 프로토콜 비잔틴 장애 허용(BFT; Byzantine Fault Tolerance) 비잔틴 장애 허용에 대해 알아볼 것입니다. 이는 블록체인뿐만 아니라 모든 형태의 탈중앙화 시스템에서도 아주 중요한 특징입니다. 비잔틴 장애 허용 문제 이해하기 비잔틴 장애 허용을 알기 위해서는 두 장군의 문제와 여기서 파생된 비잔티움 장군의 문제를 먼저 알아야 합니다. 비잔티움 제국이 공격하여 점령하고자 했던 성이 있었다고 가정합니다. 네 명의 장군이 있고 과반수의 동의가 있어야 행동을 개시하고 전투에서 이길 수 있습니다. 하지만, 합의점을 찾지 못해 혼란을 겪게 되면 적에게 당할 것 입니다. 전달된 정보에 대한 다수결의 알고리즘으로 장군들은 전달된 정보에 기반해 의사결정을 내립니다. 이 알고리즘을 비잔틴 장애 허용이라고 합니다... 2022. 8. 9.
[블록체인] 블록체인 A-Z : 블록체인의 이해 2 (채굴 작동 방식) 채굴이란? 채굴 방법은 기본적으로 블록체인 시스템이나 알고리즘이 대상을 설정하는 것입니다. 즉, 채굴자들이 특정한 해시를 달성하도록 설정한 대상이 있는 것입니다. 그림처럼 대상보다 값이 큰 해시는 고려 대상이 아닙니다. 블록에 대해 찾은 해시가 대상보다 더 클 때에는 해당 블록체인에 대해 충분하지 않다고 보는 것입니다. 즉, 블록체인에 포함될 수 있으려면 해시값이 대상보다 작아야 합니다. 또한 채굴은 자발적인 작업입니다. 경제적이거나 논리적 혹은 계산적, 수학적 이유가 있는 것이 아니라 단지 채굴자들이 해결해야 할 도전 과제를 생성하기 위해 수행하는 작업일 뿐입니다. 해당하는 해시값 이내일 때 해시를 발견하게 된다면 해당 인원은 채굴자가 되는 것입니다. 채굴 과정 예를 들어 아래와 같이 논스 값과 데이터.. 2022. 8. 9.
SQL Injection 이란? SQL이란 ? SQL(Structured Query Language; 구조적 질의 언어)는 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다. SQL의 특징 대소문자를 가리지 않습니다. 세미콜론으로 끝나야 합니다. 고유의 값은 따옴표로 감싸줍니다. 객체를 나타낼 때는 백틱으로 감싸줍니다. 한 줄 주석의 경우 문장 앞에 --를 붙여서 사용합니다. 여러 줄 주석은 /* */로 감싸줍니다. SQL Injection(SQL 인젝션, SQL 삽입)이란 ? 악의적인 사용자가 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위입니다. 주로 사용자가 입력한 데이터를 제대로 필터링, .. 2022. 7. 28.
[블록체인] 블록체인 A-Z : 블록체인의 이해 1 - 블록체인, 블록, 해시 알고리즘, 불변 원장, 분산 P2P 네트워크 블록체인 블록체인은 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술입니다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었습니다. 즉, 블록(지속적으로 증가하는 데이터)이라고 불리는 데이터를 암호학을 통해 보호하고 연결하는 기술입니다. 블록 블록은 다수의 트랜잭션을 모아서 하나로 관리하기 위한 묶음입니다. 하나의 블록을 다음 블록과 이어 주기 위해 해시값을 통해 블록들을 암호화 링크로 연결한 체인 구조를 만들 수 있습니다. 즉, 블록은 데이터와 이전 해시, 해시 값을 가지고 있으며 데이터와 이전 해시를 이용해.. 2022. 7. 14.
[블록체인] 블록체인 A-Z : 블록체인 소개 앞으로 다룰 내용 및 배울 순서에 대해한 정리입니다. 블록체인은 무엇인가 SHA256해싱 알고리즘 불변 원장(immutable ledger) 분산 P2P 네트워크 채쿨 방법 (논스(Nonce;암호화 임시 값)과 암호화폐 퍼즐) 비잔틴 장애 허용 합의 프로토콜(Consensus Protocol) 공격에 대한 방어 체인에 대해 블록체인 데모 2022. 7. 14.
[블록체인] 블록체인의 부상: 비트코인보다 훨씬 더 파괴적인 슈퍼 기술 블록체인을 배우는 이유 블록체인은 전 세계에 있을 것이다. 또한 우리 주변에 있을 것이기 때문에 블록체인을 이해해야 합니다, 그렇지 않으면, 주변에서 무슨 일이 일어나고 있는지 이해하지 못할 것입니다. 회사의 실제 비즈니스에 블록체인을 활용하고 큰 영향을 미칠 수 있습니다. 블록체인이란 무엇인가 ? 블록체인이 존재하기 전에 거래와 같은 정보를 책이나 가지고 있는 파일과 같은 파일, 컴퓨터가 있는 데이터베이스에 저장할 수 있습니다. 이것의 문제는 데이터베이스를 수정할 수 있고, 100% 보안되지 않았거나, 해킹할 수 있다는 것입니다. 그래서, 블록체인은 이러한 거래를 저장하기 위해 투자되어 수정할 수 없고, 안전하며, 아무도 해킹할 수 없도록 투자되었다. 그것이 개인 정보, 이전에 일어난 거래가 완전히 안.. 2022. 7. 14.
[블록체인] 기초 (블록체인이란, 블록체인 장점과 단점) 블록체인의 탄생 2008년 금융위기 시점을 이후로 2009년에 비트코인이 나오게 되었습니다. 서로 모르는 사람들끼리도 신뢰가 있게 거래할 수 있다는 것입니다. 탈중앙이면서 신뢰할 수 있는 것입니다. 즉, 중앙에 은행 등 기관을 신뢰할 수 없는 부분이 생기면서 나타나게 된 것입니다. 블록체인이란 무엇인가 ? 블록체인(block chain)은 피어(peer) 참여자들 간의 트랜잭션으로 이루어진 탈중앙화 시스템에 신뢰를 구축해주는 기술입니다. 관리 대상 데이터를 소규모 데이터인 블록들이 P2P 방식의 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술입니다. 이는 근본적으로 .. 2022. 4. 11.
[백준/21939] 문제 추천 시스템 Version 1 - 파이썬(Python) 문제 tony9402는 최근 깃헙에 코딩 테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령어는 총 3가지가 있다. 아래 표는 각 명령어에 대한 설명이다. recommend x x가 1인 경우 추천 문제 리스트에서 가장 어려운 문제의 번호를 출력한다. 만약 가장 어려운 문제가 여러 개라면 문제 번호가 큰 것으로 출력한다. x가 -1인 경우 추천 문제 리스트에서 가장 쉬운 문제의 번호를 출력한다. 만약 가장 쉬운 문제가 여러 개라면 문제 번호가 작은 것으로 출력한다. add P 추천 문제 리스트에 난이도가 L인 문제 번호 P=를 추가한다. (추천 문제 리스트에 없는 문제 번호 P만 입력으로 주어진.. 2022. 4. 5.
[백준/21938] 영상처리 - 파이썬(Python) 문제 간단하지만 귀찮은 영상처리 과제가 주어졌다. 과제의 명세는 다음과 같다. 세로 길이가 N이고 가로길이가 M인 화면은 총 N × M개의 픽셀로 구성되어 있고 (i, j)에 있는 픽셀은 Ri,j (Red), Gi,j (Green), Bi,j (Blue) 3가지 색상의 의미를 담고 있다. 각 색상은 0 이상 255 이하인 값으로 표현 가능하다. 모든 픽셀에서 세 가지 색상을 평균 내어 경곗값T보다 크거나 같으면 픽셀의 값을 255로, 작으면 0으로 바꿔서 새로운 화면으로 저장한다. 새로 만들어진 화면에서 값이 255인 픽셀은 물체로 인식한다. 값이 255인 픽셀들이 상하좌우로 인접해있다면 이 픽셀들은 같은 물체로 인식된다. 화면에서 물체가 총 몇 개 있는지 구하는 프로그램을 작성하시오. 입력 화면의 세로.. 2022. 4. 5.
728x90
반응형