Pixabay로부터 입수된 Maike und Björn Bröskamp님의 이미지 입니다.
실생활에서 마주하는 문제를 코딩을 이용하면 꽤 효율적으로 해결할 수 있다. 특히 문서작업에서 자동화를 한다면 훨씬 효율적으로 일할 수 있다.
최근에 동아리의 팀 자동 배정 프로그램을 만들어 보았다. 만약 이 프로그램이 없다면 매우 힘들었을 것이다. 왜냐하면 많은수의 해당하는 사람들의 시간들을 직접 확인하면서 팀을 짜야하기 때문이다.
이는 많은 시행착오가 필요하지만 코드는 돌리기만 하면 자동으로 배정된다.
목적 코드의 목적은 많은수의 사람들의 팀을 자동 배정하는 것이다.
Pixabay 로부터 입수된 Ellen Chan 님의 이미지 입니다.
당면한 문제에만 최선을 다하자 개발을 하다 보면 신기술이 나오고 공부해야 할 양이 많다. 이것을 하다 보면 저것도 공부해야하나? 라는 우유부단한 호기심이 든다. 하나에만 집중하자. 우리는 개발을 할 때 결과가 아닌 과정에 집중해야 한다. 결과에 집착하면 조급해지고 즐길 수 없다. 개발하는 과정에 집중하고 여유로운 마음가짐으로 공부해야 한다. 내가 할 수 있는 일은
당면한 문제에만 최선을 다하는 것
따라서 욕심을 내려 놓아야한다. 이것저것 다 잘 하려는 욕심은 그 무엇도 제대로 할 수 없게 만든다.
Java HashMap Class 를 알아보자.
먼저 HashMap 은 탐색에 매우 효율적이다.
Key-value pair 로서 값을 저장한다. key 값과 value 값을 hashfunction 을 이용해 매우 빠르게 찾는다. 탐색시 O(1) 의 성능을 보인다. 해당 사이트들을 참고하여 작성하였다.
https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
https://coding-factory.tistory.com/556
import HashMap<K,V>
K - key 값의 type V - value 값의 type import java.util.HashMap; Constructors default load factor - 0.75
HashMap() HashMap<String, String> map = new HashMap<String, String>(); HashMap<String, String> map = new HashMap<>(); HashMap(int initialCapacity) 선언시에 미리 사이즈를 정해두면 메모리 공간에 상당히 도움된다.
지금까지는 스마트 컨트렉트를 개발하는 것에 초점이 맞춰져 있었다. 그렇다면 frontend 랑 스마트 컨트렉트와 연결은 어떻게 할까?
web 개발은 크게 front-end 와 back-end 로 나누어서 볼 수 있다. API 서버를 만들어서 필요한 정보들을 HTTP 프로토콜로 가져오든지 해서 보기 좋게 front-end 에서 뿌려준다.
Web2 과 유사하게 back-end 는 smart-contract 로 보고 front-end 는 동일하다. 그렇다면 소통 방식도 같을까? 그렇지 않다. Blockchain node 의 provider 는 JSON-RPC 라는 통신 규약을 사용하고 우리는 smart-contract 에서 정보들을 가져올때 이러한 규약들을 이용해서 소통해야한다.
taetaetae 님의 블로그 포스트를 읽던 와중 꽂히던 말 이 있었다.
정답형 블로그(A는 B)가 아니라 본인의 개발 이야기가 담긴 내용으로 구성
그 후에 블로그에 글을 쓰는 목적과 방향성에 대해 생각 해보았다. 그러다가 블로그를 굳이 정보전달의 목적으로만 사용 할 필요가 있나? 라는 생각이 들었다. 해서 개발 블로그의 방향성을 정보전달에서 개발 문제해결 과정, 그 외에도 나만의 경험과 생각을 기록하는 곳으로 탈바꿈하고자 한다.
개발 블로그의 시작 지금 생각해보면 개발 블로그를 시작한 것은 너무 잘한 일 이다.
Blockchain Oracle Oracle 은 무었인가? Chainlink Education
Blockchain oracles are entities that connect blockchains to external systems, thereby enabling smart contracts to execute based upon inputs and outputs from the real world.
스마트 계약이 블록체인 외부의 데이터를 가져올 수 있게 연결해주는 entity 이다. 또한, 블록체인 안의 데이터 뿐만 아니라 외부의 데이터와 상호작용 할 수 있는 스마트 계약을 hybrid smart contract 라고 부른다.
Smart Contract 의 양면성 Smart Contract 는 blockchain 위에서 동작하기 때문에 탈중앙화가 되어있고 누군가가 임의적으로 데이터를 수정하지 못하고 코드에 의해서만 동작한다.