Study
-
Software System Analysis & DesignStudy/시스템 분석 및 설계 2022. 4. 25. 18:20
소프트웨어 개발 = 컴퓨터의 소프트웨어 문제 해결 Beginning 1. 소프트웨어 개발은 문서(요구사항)로 시작된다. 2. 이미 만들어진 동일한 소프트웨어 개발을 처음부터 하는 것은 자원과 시간 낭비로 이어진다. 3. 모든 사람이 소프트웨어 전문가도 아니며, 자신이 원하는 소프트웨어가 무엇인지 정의하지 못한다. 4. 소프트웨어 개발자는 실제 소프트웨어가 이용되는 환경과 용도를 이해하지 못하고 있다. 분석과 설계 - 소프트웨어 시스템 개발 시, 고객 요구사항을 시스템 환경에 맞추어 구현할 것인가를 결정해가는 과정. 무엇을 어떻게 할 것인지를 정의하기 위해 분석과 설계 작업을 수행한다. 1. 분석(무엇을 할 지) - Do the right thing 시스템의 논리적 구성(또는 개념적인 시스템 구성)을 정의..
-
[이더리움 댑 코딩] CryptoZombies | Lesson 5Study/Blockchain 2022. 1. 20. 05:31
블록체인 스터디에서 NFT(대체 불가능한 토큰)에 대해 배웠다. 이는 먼저 대체 가능한 토큰인 ERC20(EIP20)에 대해 공부한 후 대체 불가능한 토큰인 ERC721(EIP721)에 대해서 공부하는 것이 좋다. 메소드(함수)나 이벤트에 대한 설명은 EIP에 더 잘 나와있으니 EIP 표준문서를 보는 것이 더 도움이 될 것이다. 챕터 1: 이더리움 상의 토큰 _토큰_에 대해서 얘기해보지. 자네가 이더리움 세상을 조금이라도 접한 적이 있다면, 사람들이 토큰에 대해 이야기하는 것을 들어봤을 수도 있을 것이네 - 구체적으로는 _ERC20 토큰에 대해서 말이네. 이더리움에서 _토큰_은 기본적으로 그저 몇몇 공통 규약을 따르는 스마트 컨트랙트이네 — 즉 다른 모든 토큰 컨트랙트가 사용하는 표준 함수 집합을 구현하..
-
[이더리움 댑 코딩] CryptoZombies | Lesson 4Study/Blockchain 2022. 1. 20. 02:45
챕터 1: Payable 지금까지 우린 꽤 많은 함수 제어자(function modifier)를 다뤘네. 모든 것을 다 기억하는 것은 힘들 것이니, 한번 빠르게 복습해보세. 우린 함수가 언제, 어디서 호출될 수 있는지 제어하는 접근 제어자(visibility modifier)를 알게 되었네: private은 컨트랙트 내부의 다른 함수들에서만 호출될 수 있음을 의미하지. internal은 private과 비슷하지만, 해당 컨트랙트를 상속하는 컨트랙트에서도 호출될 수 있지. external은 오직 컨트랙트 외부에서만 호출될 수 있네. 마지막으로 public은 내외부 모두에서, 어디서든 호출될 수 있네. 또한 상태 제어자(state modifier)에 대해서도 배웠네. 이 제어자는 블록체인과 상호작용 하는 방..
-
[이더리움 댑 코딩] CryptoZombies | Lesson 3Study/Blockchain 2022. 1. 20. 01:57
챕터 1: 컨트랙트의 불변성 지금까지 본 것만으로는, 솔리디티는 자바스크립트 같은 다른 언어와 꽤 비슷해보였을 것이네. 하지만 이더리움 DApp에는 일반적인 애플리케이션과는 다른 여러가지 특징이 있지. 첫째로, 자네가 이더리움에 컨트랙트를 배포하고 나면, 컨트랙트는 변하지 않는다네(Immutable). 다시 말하자면 컨트랙트를 수정하거나 업데이트할 수 없다는 것이지. 자네가 컨트랙트로 배포한 최초의 코드는 항상, 블록체인에 영구적으로 존재한다네. 이것이 바로 솔리디티에 있어서 보안이 굉장히 큰 이슈인 이유라네. 만약 자네의 컨트랙트 코드에 결점이 있다면, 그것을 이후에 고칠 수 있는 방법이 전혀 없다네. 자네는 사용자들에게 결점을 보완한 다른 스마트 컨트랙트 주소를 쓰라고 말하고 다녀야 할 것이네. 그러..
-
[이더리움 댑 코딩] CryptoZombies | Lesson 2Study/Blockchain 2022. 1. 18. 04:12
챕터 1: 레슨 2 개요 지난 레슨에서 좀비의 이름을 받아서 랜덤으로 좀비를 생성한 다음, 이 좀비를 블록체인상의 우리 앱 좀비 데이터베이스에 추가하는 함수를 만들었지. 이번 레슨에서는 우리 앱을 좀 더 게임답게 만들 걸세: 앱을 멀티플레이어 게임으로 만들고, 좀비를 랜덤으로만 생성하지 않고 좀더 재미있는 방식으로 좀비를 생성할 것이네. 어떻게 새로운 좀비를 생성할까? 좀비가 다른 생명체를 "먹도록" 해서! 좀비 먹이기 좀비가 먹이를 먹으면 먹이는 바이러스에 감염되지. 이 바이러스는 먹이를 새로운 좀비로 바꾸어 좀비 군대의 일원이 되도록 하지. 새로운 좀비의 DNA는 이전 좀비의 DNA와 먹이의 DNA를 활용하여 계산될 것이네. 그럼 우리 좀비들이 가장 좋아하는 먹이가 무엇일까? 그걸 알고 싶으면... ..
-
[이더리움 댑 코딩] CryptoZombies | Lesson 1Study/Blockchain 2022. 1. 13. 03:06
솔리디티라는 언어를 공부하고자 crptozombies를 시작하게 되었다. 챕터 1: 레슨 개요 레슨 1에서 자네는 좀비 군대를 건설하기 위한 "좀비 공장"을 만들 걸세. 우리 공장은 군대 내 모든 좀비의 데이터베이스를 유지할 걸세 우리 공장은 새로운 좀비를 생성하는 함수를 가질 걸세 각 좀비는 랜덤하고 독특한 외모를 가질 걸세 이후 레슨에서 인간이나 다른 좀비를 공격하는 능력 등 더 많은 기능을 추가할 것이네. 그전에 새로운 좀비를 생성하는 기본 기능을 추가해야 하네. 좀비 DNA가 활용되는 방법 좀비의 외모는 "좀비 DNA"에 따라 달라질 것이네. 좀비 DNA는 다음과 같이 간단하게 16자리 정수이네: 8356281049284737 실제 DNA처럼 이 숫자의 각 부분은 좀비가 가진 개별 특성과 매핑이 ..
-
Node.js 환경구축Study/Server 2021. 7. 22. 02:00
환경을 구축하는데 앞서 IntelliJ와 Node.js를 설치해주도록 한다. Node.js는 이미 설치를 해놨으므로 넘어간다. 만약 없다면 설치해주도록..!! https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com IntelliJ에서 Plugins로 들어가 Node.js와 ejs를 설치해주도록 한다. 이미 설치되어있다면 넘어간다. 이제 새로운 프로젝트를 생성한다. javascript > Node.js를 선택하여 프로젝트를 생성하도록 한다. 그리고 api 테스트를 위해 포스트맨을 설치해주도록 한다. web에서 사용이 가능하..