설계원칙 1 . 테스트 체인에서 스마트 컨트랙트를 코딩, 개발, 배포하기 전에 우선 설계부터 한다. 또한, 프로덕션 블록체인에 배포하기 전에 철저한 테스트를 거쳐야 한다. 왜냐하면 스마트 컨트랙트는변조 불가능하기 때문이다.2. 시스템 사용자와 유스 케이스를 정의한다. 사용자란 행위와 입력값을 발생시키고, 설계하고있는 해당 시스템으로부터 그 출력값을 받는 주체다.3. 데이터 애셋,피어 참여자, 그들의 역할, 강제할 규칙, 설계하고 있는 시스템에 기록해야 할 트랜잭션을 정의한다. 4. 컨트랙트 이름, 데이터 애셋, 함수, 함수의 실행과 데이터 접근을 위한 규칙을 정의하는 컨트랙트 다이어그램을 작성한다.5. 스마트 컨트랙트 내에서 일어나는 상태 변화와 같은 시스템 역동성을 표현하기 위해 유한 상태 머신UML 다이어그램을 활용한다.6. 스마트 컨트랙트에서 규칙과 조건을 명시하는 수정자를 사용함으로써 신뢰 중개를 위한 확인과 검증을 구현한다. 통상적으로 확인은 참여자에 대한 일반적인 규칙을 담당하고, 검증은 애플리케이션에 특정한 데이터를 체크하는 역할을 맡는다.7. 일회용 시크릿 패스워드를 사용해 함수의 파라미터를 시큐어 해싱을 함으로써 프라이버시와 보안을 확보한다.8. 스마트 컨트랙트는 규칙의 강제, 준수, 규정, 출처, 리얼타임 알림을 위한 로그, 타임스탬프 활동 정보와 오프라인 오퍼레이션에 대한 메시지에 필요한 함수와 데이터만을 포함하도록 설계한다.9. 스마트 컨트랙트 안의 함수들을 호출하는 것을 표현하는 UML 시퀀스 다이어그램을 활용한다. 시퀀스 다이어그램은 시스템의 다이내믹한 오퍼레이션을 효율적으로 파악할 수 있다.10. 어떤 데이터와 오퍼레이션을 온체인으로 코딩해야 하고, 어떤 것을 오프체인으로 구현해야 하는가는블록체인 애플리케이션 설계의 중요한 결정 사항이다. - P354
1장 마지막에서 작가는 블록체인이 활용될 수 있는 예를 여러가지 드는데 대부분은 블록체인이 아니더라도 할 수 있는 일들이다. 주와 연방 정부가 독립적으로 움직이고, 정부를 신뢰하지 않으며 데이터의 디지털화가 잘 되어있지 않은 미국의 특징에 따른 예들이 많다.
다들 알고 있겠지만 다음 url에서 영어판은 무료 다운도 가능하고, 한국어로 모든 내용을 볼 수도 있다(번역은 조금 다르다). https://git-scm.com/book/ko/v2하지만 종이책을 선호하는 옛날사람이라 책을 사야했다..git을 배우기에는 아래의 사이트도 좋다고 생각한다. https://learngitbranching.js.org/하지만 역시 이 책의 내용이 더 탄탄하고 한국어..
메를로퐁티(Maurice Merleau-Ponty(1908~1961))는 『지각의 현상학』에서 인간존재는 우리에게 필연성과 우연성의 개념을 재검토하지 않을 수 없게 한다고 지적한다. "실존은 자체의 형태를 부여하는 데 기여하지 않는 우연의 속성이나 내용은 가지고 있지 않다. 실존은 자기 안에 단순한 사실이란 것을 허용하지 않는다. 왜냐하면 실존은 사실에의미를 부여하는 운동이기 때문이다"라고 그는 말한다. 그것은 사실이다. 그러나 여러 조건들이 있어서, 그것들 없이는 실존의 사실 자체가 불가능한 것처럼 보이는 것 또한 사실이다. 이 세계에 현존한다는 것은 엄밀히 말해 세계의 사물인 동시에 이 세계에 대해 갖는 한 관점인 신체의 입장을 함축하는 것이다. 그러나 이 신체가 이러저러한 특별한 구조를 소유하도록 요구되는 것은 아니다. - P50
오직 인간적인 관점에서만 인류의 남녀를 비교할 수 있다. 인간은 주어진 존재가 아니라 스스로 만들어 나가는 존재라고 정의할 수 있다. 메를로퐁티가 매우 정확하게 말했듯이, 인간은 자연의 종이 아니라 역사적 개념이다. 여자는 고정불변의 현실이 아니라 하나의 생성(生成)이다. 이러한 생성 속에서 여자를 남자와 비교해야만 할 것이다. 다시 말해서 여자의 *가능성*을 규명해야만 할 것이다. 수많은 논쟁에서 사람들이 그토록 많은 과오를 범하는 이유는 여자의 능력에 대해 문제 삼으면서 여자를 과거와 현재의 상태로 축소하고 싶어 하기 때문이다. 사실, 능력은 현실화되었을 때만이 증명될 수 있다. 그러나 초월과 초아적인 어떤 존재를고려할 때 결코 계산을 중단할 수 없다는 것 또한 사실이다. - P75
그렇지만 내가 택한 관점 - 하이데거, 사르트르, 메를로퐁티의 관점 - 에서 신체가 *사물*이 아니라면, 신체는 상황이라고 말할 것이다. 즉, 그것은 세계를파악하는 우리의 도구며 우리 계획의 소묘다. ...확실히 이러한 사실들은 부정될 수 없을 것이다. 그러나 그 사실들이 그 자체로 의미 있는 것은 아니다. 우리가 실존에서부터 신체를 정의하면서 인간의 관점을 채택하는 즉시 생물학은 추상적인 학문이 된다. ... 세계를 파악하는 데 체력을 최대한 사용할 필요가 없을 때, 즉 사용 가능한 최소한의 체력만을 필요로 할 때 차이는 소멸한다. 관습이 폭력을 금지하는 곳에서 완력이 지배력을 행사할 수 없을것이다. *약함*이라는 개념이 구체적으로 규정될 수 있으려면 실존적·경제적·도덕ㅕ 기준이 필요하다. 인류는 반자연이라고 일컬어져 왔다. 이 표현이 그렇게 정확한 것은 아니다. 왜냐하면 인간은 주어진 조건을 부인할 수 없기 때문이다. 그러나 인간이 그 조건을 받아들이는 방식에 의해서 진실은 구성된다. 자연이 인간의 행동에 의해 파악되는 한에서만 자연은 인간에게 현실성을 갖는다. - P76
요컨대 한 사회는 종이 아니다. - P78
결론적으로 수학은 증명 가능한 서술이 참임을 입증하는 원리라고 볼 수 있다. 반면 과학은 증명 가능한 서술이 거짓임을 입증하는 원리라고 볼 수 있다. - P35
데이크스트라는 "테스트는 버그가 있음을 보여줄 뿐, 버그가 없음을 보여줄수는 없다"고 말한 적이 있다. 다시 말해 프로그램이 잘못되었음을 테스트를 통해 증명할 수는 있지만, 프로그램이 맞다고 증명할 수는 없다. 테스트에 충분한 노력을 들였다면 테스트가 보장할 수 있는 것은 프로그램이 목표에 부합할 만큼은 충분히 참이라고 여길 수 있게 해주는 것이 전부다. - P35