목록전체 글 (243)
차밍이
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bktwWw/btruedLfrwq/YO2fen4RzWvkcJtsiK7xWk/img.png)
목차 getattr() 구문 getattr(object, attribute, default) [매개변수] object : 필수. 객체. attribute : 필수. 값을 얻을 속성명. default : 선택. 속성이 없는 경우 반환할 값. getattr() 함수의 정의 gattattr(object, name) 으로 object안의 메소드(name)을 호출한다. object 내부의 name이라는 멤버를 반환한다. 사실 정의만 보면 잘 이해가 되지 않는다. 조금 더 쉽게 애기하자면 문자열로 객체의 속성값이나 메소드를 사용할 수 있다. Example 예제를 보면 쉽게 이해할 수 있다. class Animal: leg = 4 size = "Big" def enemy(self): print("컹컹컹!") def ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0OqsH/btrt4rofzmp/qRhvOYB1FVawxcM3gQJAWK/img.png)
목차 파일명 한 번에 바꾸기 os 모듈의 rename 메소드를 사용해서 바꿀 수 있다. 폴더의 파일 명 앞의 conved_를 모두 삭제한 이름으로 바꾸려고 합니다. 기존 파일 확인하기 파이썬에서 기존 파일 위치 경로를 통해 해당 파일 이름들을 불러와 확인합니다. import os path = "./Documents/test" file_list = os.listdir(path) file_list 파일 이름 수정 및 저장 for file in file_list: # 전체 파일 리스트에 대해서 수행 src = os.path.join(path, file) # 기존 파일 경로 dst_name = file.replace("conved_", "") # 이름 수정 dst = os.path.join(path, dst_n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cMLPom/btrt7sAkb04/at26OIFYomRWyOfrS75NJK/img.png)
목차 파일명 가져오기 os.listdir을 사용해서 원하는 파일의 파일 명을 가져옵니다. import os path = "./Documents/test" file_list = os.listdir(path) file_list 파일명에서 확장자 구분하기 file = file_list[0] os.path.splitext(file) >>> ('2c9fb', '.log') 2c9fb.log >>> 2c9fb 와 .log로 나누어진 것을 확인할 수 있습니다. 파일 이름 부분과 확장자로 나누어지므로 각자 할당 받아서 사용할 수 있습니다. ex) 아래 name, ext = os.path(splitext(file)) 확장자 명에 . 을 포함하고 있으므로 확장자만 사용하려면 ext[1:] 과 같은 방법으로 사용하면 됩니다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjThGv/btrs8Am9l4n/8NN3sQbQRVVO321uBWRLS1/img.png)
Y축 반전 뒤집기 기본 수식 작성 import plotly.graph_objects as go import numpy as np x = np.arange(-5, 6) y = x**3 fig = go.Figure(data=go.Scatter(x=x, y=y)) fig.show() 축 반전 fig.update_layout( yaxis = dict(autorange='reversed'), ) update_layout 에서 자동 범위 설정을 reversed 로 설정하면 반전이 수행됩니다. x 축은 xaxis로 설정해서 하면 동일하게 적용할 수 있습니다. 전체 소스 코드 import plotly.graph_objects as go import numpy as np x = np.arange(-5, 6) y = x*..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OOVsw/btrrUt3v9qU/yXRpX4R1TkIkkaWWQ3Ky40/img.png)
07. Introduction to Corporate Cryptocurrencies 목차 Libra (Diem) Blockchain 페이스북에서 만든 기업형 암호화폐 전 세계 사람들이 금융 서비스를 사용할 수 있도록 서비스를 제공하고자 만듦 페이스북을 이용하는 모든 사람들이 메시지를 보내듯이 돈을 보낼 수 있도록 하기 위함 1달러를 담보로 1달러의 가치를 가지는 스테이블 코인 현재 Diem이라는 프로젝트로 변화함 Diem Protocol Move라는 프로그램 언어를 사용함 보안성과 안정성에 중심을 두고 개발됨 사용자의 의도를 쉽게 표현할 수 있도록 함 Byzantine Fault Tolerant Consensus, DiemBFT 비잔틴 장애 허용(BFT) 방식을 기반으로 한 새로운 합의 알고리즘을 사용함..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btTqzz/btrrwfYXNSU/78pnpjKYOugHkpkhMglaa1/img.png)
Errer Handler 종류는 네 가지가 있음 require, revert, assert, try/catch assert : gas를 다 소비한 후, 특정 조건이 부합하지 않으면 (false일 때) 에러를 발생시킨다. revert : 조건 없이 에러를 발생시키고, gas를 환불시켜준다. require : 특정한 조건에 부합하지 않으면 (false일 때) 에러를 발생시키고, gas를 환불시켜준다. contract testContract { function assertNow() public pure { assert(false); // test용으로 사용함 } // 비용이 절감됨, 실제 coding 할 때 revert와 require을 씀 function revertNow() public pure { rev..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/coFl5D/btrrDOyNK7s/AKtUfebOQAqO3XTzBY52Mk/img.png)
event 솔리디티는 print가 없음 대신 event를 사용해서 확인할 수 있음 contract testContract { event info(string name, uint256 money); function sendMoney() public { // 블록에 작성하면 언제든 꺼내서 확인할 수 있음 emit info("BakChan", 10000); } } indexced 특정 index의 event 만 가져오기 위해서는 index가 필요함 그럴 땐 indexed를 사용해 주어야 함 contract testContract{ event numberTracker(uint256 num, string str); event numberTracker2(uint indexced num, string str); ui..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GhnEV/btrrhERHhWx/0jaWfkkly257nXhkOZdeLk/img.png)
06. Stable Coins 암호화폐 가격의 변동성이 매우 큼 암호화폐를 지불 수단으로 사용하기에는 가격 변동에 의한 잠재적 위험이 존재함 스테이블 코인 특정 상수 값을 안정적으로 유지하는 암호화폐 대부분 1 달러에 고정되도록 만든 암호화폐들이 많음 스테이블 코인의 종류 스테이블 코인의 담보물 담보물에 따라서 종류가 네 가지로 나뉨 Fiat Currency - 법정화폐 Commodity - 실물자산 Cryptocurrency - 암호화폐 None - 알고리즘에 의한 방법 Fiat-collateralized Stablecoins 법정 화폐를 담보함 서비스 제공자의 계좌에 담보금이 저장되어 있는 상태 스테이블 코인을 법정 화폐로 바꾸면 서비스 제공자의 계좌에서 해당 가치만큼의 법정 화폐를 꺼내서 교환해줌 ..
05. Cryptocurrency Exchange 암호화폐 거래소는 말 그대로 암호화폐를 사고팔 수 있는 온라인 거래소 Centralized vs. Decentralized 1. Centralized Cryptocurrency Exchange (CEX) 업비트, 바이낸스, 코인베이스, 크라켄, 제미니 일반 통화로 암호화폐를 살 수 있게 함 거래소에 의해 모든 거래가 통제됨 입출금을 위해서는 거래소의 허가가 필요함 중앙 서버에 저장되므로 해커의 타깃이 됨 탈중앙화를 지향하는 블록체인 시스템을 위해 중앙 집중적인 거래소가 존재한다는 것이 아이러니함 2. Decentralized Crypotocurrency Exchange (DEX) 탈중앙화된 거래소 익명성을 보장함 모든 유저들이 자신의 자산을 직접 제어함 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/srB83/btrrh4CzzR1/KoPs0PnRr7fWxXxYgbmDak/img.png)
04. Definition and Types of Cryptocurrency Wallet 암호화폐 지갑 암호화폐는 암호화폐 지갑과 같은 단일 위치에 저장되거나 물리적 형태로 존재하지 않고, 블록체인 내에 기록된 데이터임 디지털 지갑은 해당 소유주에게 속해 있는 암호화폐를 추적하여 합산한 결과만 보여주는 역할을 함 지갑 내에는 거래하기 위한 중요한 키값들을 저장함 지갑 내에 저장되는 키값은 공개키, 개인키에 해당됨 공개키는 개인의 계좌번호, 개인키는 비밀번호와 같은 역할을 수행함 개인키의 노출은 자산의 탈취를 발생시킬 수 있으며, 개인키를 잊어버리면 자산을 찾을 수 없게 됨 암호화폐 지갑의 종류 1. Hot Wallet 인터넷에 연결되어 있음 언제든 편리하게 바로 입출금 가능 해킹에 취약함 2. Cold ..