전체 글

Hi i'm eom :)
퀵 정렬(quick sort)은 기준값(pivot)을 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다. 양쪽에 포인트를 잡고, 정렬 기준에 맞는지를 판단하여 맞지않는 점끼리 스왑한다. 스왑이 끝나면 pivot을 기준 위치에 넣어준다. 재귀 voidft_swap(int *l_arr, int *r_arr) { int tmp; tmp = *l_arr; *l_arr = *r_arr; *r_arr = tmp; } voidquick_sort(int *arr, int start, int end) { ints_pnt; inte_pnt; intpivot; s_pnt = start; e_pnt = end..
· 코딩/etc
1) 무엇일까? 유클리드 알고리즘은 두 수의 최대공약수(gcd)를 계산하는 알고리즘 중 하나이다. 유클리드 호제법이라고도 하는데 같은 의미이다. 확장된 유클리드 알고리즘은 특정 a와 b에 대해서 as + bt = gcd(a,b)인 s와 t를 구하는 알고리즘이다. 2) 선후관계 확장된 유클리드 알고리즘은 유클리드 알고리즘을 사용하기 때문에, 유클리드 알고리즘을 먼저 알고 있어야 이해할 수 있다. 3) 유클리드 알고리즘 유클리드 알고리즘은 최대공약수의 두가지 기초 성질을 이용한 알고리즘이다. a(나눠지는 수) = q(몫) * b(나누는 수) + r(나머지) 이라 할 때 (필수조건 : a >= b) 1. gcd(a, 0) = a 이다. 2. gcd(a, b) = gcd (b, r) 4) 유클리드 알고리즘 - ..
지난 1주차에는 블록체인에 대한 간단한 개념과 아이디어톤이었다면, 2주차에는 앞으로 만들 앱을 간단히 살펴보고, NFT와 마켓앱에 관한 스마트 컨트랙트를 작성해본다. 이번 강에서 무엇을 배울지, 각 주차에 무엇을 배울지 알아보고, 후에 만들 BApp을 시연하였다. 우선은 클레이튼 월렛 사이트에서 컨트랙트를 배포할 지갑을 만든다. 만든 지갑에서 클레이를 주고 받을수도 있고, 컨트랙트를 배포할 수도 있다. https://wallet.klaytn.com/ Klaytn Wallet wallet.klaytn.com 지갑을 만든 후 위 사진의 빨간 동그라미에서 메인넷을 바오밥 테스트 넷으로 바꿀 수 있다. 우리는 테스트넷에서 배포를 할 것이다. 네트워크가 나눠져있는 이유는 컨트랙트를 배포할때 돈이 들기도 하고, 배..
멋쟁이 사자처럼에서 내가 딱 필요로 하던 강의를 열어주었다. 클레이튼 + NFT + 마켓까지... 넘나리 완벽한 이 강의가 15만원이다. 테스트넷이 아니라 메인넷에 실제 사용 가능한 어플리케이션을 만든다고 한다. 이더리움은 수수료가 비싸서 힘들지만, 클레이튼은 수수료가 저렴해서 메인넷에 올리는 것이 부담이 덜 된다. 메인넷 + 실제 사용 가능 = 완벽 이건 공부하는 입장에서 안 살 수가 없다. 전체적인 BApp 개발 과정을 경험해보고, 스마트 컨트랙트만 작성하는 게 아니라 웹을 이용한 서비스로 만들고 잘하면 klay까지 받을 수 있는 강의... 나는 보자마자 바로 질렀다. (사실 좀 지나서 질렀다) 강의를 듣는 사람을 선발하겠다며 여러 가지 질의를 했지만, 웬만해서는 신청하면 다 들을 수 있었던 것 같다..
챕터 4 : 암호학 출판 시점 기준 이더리움 프로토콜의 어떤 부분도 암호화되어있지 않다. 따라서 누구나 내용을 읽고 확인할 수 있다. 향후에는 영 지식 증명이나 동형 암호화 같은 고급 암호화 도구를 사용하여 암호화된 계산을 블록체인에 기록할 수 있을 것이다. 암호화 도구를 제공할 준비는 마쳤으나 아직 배포되지는 않았다. 이 책이 19년도 5월 초판이다. 원본은 18년 12월 23일 발행. (생각보다 번역본이 빨리 나왔다 신기...) 지금이 21년 5월 10일이니 2년반이 지났는데, 서칭을 해보니 지금도 아직 적용이 안된 것 같다. 다만 이더리움 네트워크 위에서 동형암호를 이용한 서비스들은 가능한 것 같다. www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE076122..
· 코딩/R
Data Frame 다수의 벡 터가 열단위로 묶인 것 매트릭스와의 차이점은 매트릭스는 전체가 같은 데이터타입이어야했고 그 자체가 하나라면 데이터 프레임은 벡터 여러개가 묶인 것으로 벡터 하나하나 마다 다른 데이터타입을 가질 수 있다. 데이터 프레임은 무조건 열 이름(변수명)이 존재한다. 매트릭스는 열 이름을 붙이지 않아도 인덱스로 나타낼 수 있었지만 데이터 프레임은 무조건 열 이름이 있어야하며 지정되지 않으면 임의로 이름을 부여한다. #data frame 선언하기 #vector 벡터 생성 후 데이터프레임 만들기 myVector1
· 코딩/R
Matrix 행렬 | 벡터가 1차원적 자료구조라면 matrix는 2차원적 자료구조이다. help 명령어를 통해 사용방법을 익힐 수 있다. 행렬내의 모든 요소는 같은 데이터타입으로 선언되어야하고, matrix[행, 열]로 표현하며, 행전체를 부르고 싶으면 matix[행, ] 열전체를 부르고 싶으면 matrix[, 열]로 나타내면 된다. #matrix 선언하기 #1. myVector
· 코딩/R
Vector 어떤 값들의 묶음 ex) 출석부 출석 번호 1 2 3 이름 김미나 오민수 장기수 출석번호 한 줄이 한 벡터이고, 이름 한 줄이 한 벡터이다. 하나의 벡터에는 같은 데이터 타입만 들어갈 수 있고, 각 벡터는 값이 들어있는 순서대로 인덱스로 나타낼 수 있다. 일반 프로그래밍 언어와는 달리 벡터의 인덱스는 1부터 시작한다. (출석부[1] = 1, 이름[1] = 김미나) R에서는 모든 변수들이 벡터 취급되고, 기본 적인 연산도 모두 벡터 연산으로 이루어진다. vector1 = [1, 2, 3, 4] vector2 = [2, 4, 6, 8] vector1 + vector 2= [3, 6, 9, 12] 길이가 다른 벡터의 경우는 어떻게 연산될까? 1. 길이가 배수인 경우 vector1 = c(1, 2,..
· 코딩/R
강의를 한번 쭉 듣고 언젠간 정리해야지하며 까먹고 있다가 곧 강의가 끝나가길래 이제서야 정리한다... 3달만에 만나니 참 반갑다. 처음 듣는거 같은 느낌 ㅎㅎ 기본 데이터 타입 Numeric : 숫자형 변수 (정수, 실수) Integer : 숫자형 변수 (정수만) Double : 숫자형 변수 (실수만 저장, Integer의 2배의 메모리를 잡아먹음) Character : 문자형 변수 (따옴표로 묶어 표시) Logical : 논리형 변수 (참, 거짓 둘 중 하나) Factor : 카테고리형 변수 (여러 개 중 하나, 키-밸류 묶어 저장) 아래의 코드는 실습 내용이다. (cmd + enter을 누르면 한칸씩 적용된다) #변수 선언하기(변수의 종류) #numeric 타입 변수 one
챕터 3 : 이더리움 클라이언트 "이더리움 클라이언트는 이더리움 사양을 구현하고 다른 이더리움 클라이언트와 피어투피어 네트워크를 통해 통신하는 소프트웨어 애플리케이션이다. 기준 사양과 표준 통신 프로토콜을 준수한다면, 서로 다른 이더리움 클라이언트들끼리 상호운용(interoperate)이 가능하다." 그냥 이 문장만 딱 봤을 때 무슨 말인지 사실 이해하기 힘들었다. 챕터를 다 읽고나서 대충 이해한 것 같은데 쉽게 설명하자면, 1. 이더리움 네트워크가 있고 2. 네트워크에 접속할 수 있도록 도와주는 클라이언트가 있는 것이다. 더 쉽게 비유해서 설명하면 네트워크가 있고 통신사가 여러개 있다고 생각하면 맞는 것 같다. 통신 규격만 맞춰서 통신하면 통신사끼리 통신이 가능하듯이 이더리움 사양을 구현한 이더리움 클..
챕터 2 : 이더리움 기초 이더 화폐 단위, 이더리움 지갑 선택하기, 통제와 책임,메타마스크 설치하기, 네트워크 바꾸기, 테스터 이더 얻기, 메타마스크에서 이더 보내기,주소의 트랜잭션 내역 탐색 지갑을 만들고 테스터넷을 통하여 이더를 발급받고 전송해보고 가스비를 확인하는 내용까지를 알려준다,. 이 과정에서 나는 이상함을 느꼈는데, 이더의 테스터넷의 경우 종류도 많고 제각기 운영방식이 달라 의아했다. 찾아보니 각 커뮤니티에서 하드포크하여 자체적으로 운영하는 형태인 듯 하였다. 월드 컴퓨터 소개 이더리움은 이더리움 가상머신(EVM)이라고 하는 에뮬레이트 된 컴퓨터에서, 스마트컨트랙트 라는 프로그램을 실행하기 위해 사용되는 화폐이다. EVM은 글로벌 싱글톤으로, 세계 어디서든 하나의 컴퓨터처럼 작동한다. 이더..
Chapter 2: Evolution of Economics 2.1. What is Economics: An Evolution Economics is a science. It primarily examines how decisions are made and which alternatives provide the greatest benefits to various stakeholders. It has always been, and continues to be, about the study of allocation of scarce resources (behaviours). One of the key differences in token economics is to create rules around the..
HEOM
IMEOM