전체 글 80

CryptoZombies 2 (좀비가 희생물을 공격하다) 정리

매핑과 주소 - 새로운 자료형 Address - 이더리움 블록체인은 계정들로 이루어져 있음 - 계정은 이더의 잔액을 가짐 (ETH : 이더리움 블록체인상의 통화) - 계정을 통해 다른 계정과 이더를 주고 받을 수 있음 - 각 계정은 특정 계정을 가리키는 고유 식별자인 주소를 가짐 - 주소 → 특정 유저 혹은 스마트 컨트랙트가 소유함 Mapping - 구조화된 데이터를 저장하는 방법 - Key - Value 저장소 - 데이터를 저장하고 검색하는데 이용 // 금융 앱용으로, 유저의 계좌 잔액을 보유하는 uint를 저장 // key -> address / value -> uint mapping (address => uint) public accountBalance; // 혹은 userID로 유저 이름을 저장/..

Solidity 2023.02.07

CryptoZombies 1 (좀비 공장 만들기) 정리

Contract - 이더리움 애플리케이션의 기본적인 구성요소 - 모든 프로젝트의 시작 지점 - 모든 변수와 함수는 어느 한 컨트랙트에 속함 - 솔리디티 코드는 컨트랙트 안에 있음 Version Pragma - 해당 코드가 이용해야하는 솔리디티 버전 선언 - 이를 통해 이후에 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방 pragma solidity ^0.4.19; // 솔리디티 버전 // 컨트렉트 생성 contract ZombieFactory{ } 상태 변수 - 컨트랙트 저장소에 영구적으로 저장됨 ( = 이더리움 블록체인에 기록됨) - DB에 쓰는 것과 비슷 pragma solidity ^0.4.19; contract ZombieFactory{ uint myUnsignedInteger =..

Solidity 2023.02.06

vscode + solidity

vscode에서 솔리디티를 쓰고 싶어서 환경셋팅을 해봤음 - 필요 : node.js, Visual Studio Code 1. 원하는 위치에 프로젝트를 생성할 폴더 만들기 2. VSCode에서 만든 폴더 열기 3. VSCode 터미널에 아래 명령어 입력 npm install -g npm - npm : node.js 기반의 모듈을 모아둔 저장소 npm install -g truffle - truffle : 솔리디티로 스마트 컨트랙트 개발시 배포/테스트 환경 제공, node.js 위에서 작동함 4. VSCode에서 아래 사진과 같이 solidity 확장자 설치 5. VSCode 터미널에 아래 명령어 입력 truffle init - 트러플 프로젝트 관련 파일 및 폴더가 현재 디렉토리에 초기화 초기화를 하면 관련..

Solidity 2023.02.05

Spring Security를 이용한 로그인/로그아웃

스프링 시큐리티 - 사용자 정의가 가능한 인증 및 엑세스 제어 프레임워크 - Java 애플리케이션에 인증 및 권한 부여를 모두 제공하는데 중점을 둔 프레임워크 Maven 추가 - 스프링 시큐리티와 Thymeleaf 추가함 추가하고 실행하면 처음에 로그인 화면이 뜸 (기본 로그인 페이지 제공) id : user / pw : 콘솔에 뜸 SecurityConfig.java - SecurityConfig 파일을 생성하여 스프링 시큐리티 관련 설정을 할 수 있음 @Configuration @EnableWebSecurity public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { ht..

Spring Boot 2023.02.04

TypeScript를 사용해 간단한 블록체인 만들어보기2

start를 실행하면 build 폴더 안의 index.js 파일을 실행하도록 코드 추가 // package.json ... "scripts": { "build": "tsc", "start": "node build/index.js" }, ... 워크 플로우 실행 // VS Code 터미널에서 명령어 실행 // 프로젝트 빌드한 다음 실행 npm run build && npm run start - 빌드 → build/index.js 파일 생성 - node build/index.js로 실행 → 효율적이지 않음 → ts-node 설치 ts-node - Node.js용 TypeScript 실행 엔진 및 REPL - 빌드 없이 TypeScript 실행 가능, 개발환경에서만 사용 - JIT는 TypeScript를 Ja..

TypeScript 2023.02.03

TypeScript를 사용해 간단한 블록체인 만들어보기1

** TypeScript 프로젝트 생성 - 필요 : node.js, Visual Studio Code 1. 원하는 위치에 프로젝트를 생성할 폴더 만들기 2. Visual Studio Code에서 만든 폴더 열기 3. Visual Studio Code 터미널에 아래 명령어 입력 npm init -y - 위 명령어를 실행하면 package.json 파일이 생성됨 파일을 열어서 아래 코드 지우기 + "main": "index.js" → 지우기 + "test": "echo \"Error: no test specified\" && exit 1”→ 지우기 npm install -D typescript - TypeScript를 설치 - "-D" : TS가 devDependencies에 설치됨 4. src 폴더 생성,..

TypeScript 2023.02.02

eclipse 주석

주석 생성 방법 Alt + Shift + j /** + Enter 주석 설정 1. Windows → Preferences 선택 2. Java → Code Style → Code Templates 선택 - Comments 에서 Types와 Methods 수정 후 적용 + 내가 설정한 주석 (22.01.04) Types - 파일정보 주석 (소스 가장 위 상단에 찍힘) @Project : ${project_name} //선택된 프로젝트 이름 @FileName : ${file_name} // 선택된 편집 파일 이름 @Data : ${date} // 현재 날짜 @Author : Leejisu @프로그램 설명 : @변경 이력 : Methods - 메소드 정보 주석 (함수 위에 찍힘) @MethodComment : ..

기타/Eclipse 2023.02.01

TypeScript의 다형성

Polymorphism - 다른 모양의 코드를 가질 수 있게 해주는 것 - 다형성을 이룰 수 있는 방법 → 제네릭 사용 Jeneric - 같은 코드를 다른 타입에 대해서 쓸 수 있도록 해줌 → - 코드를 보기 쉽게 해줌 interface SStorage { [key:string] : T } class LocalStorage { private Storage: SStorage = { } } - 제네릭을 클래스로 보냄 → 클래스는 제네릭을 인터페이스로 보냄 → 인터페이스는 제네릭 사용 - TypeScript는 제네릭을 바탕으로 call signature를 만들어줌 - 코드 사용 예시 interface SStorage { [key:string] : T } class LocalStorage { private St..

TypeScript 2023.01.31

Tap을 space 4로 변경

Insert spaces for tabs 설정 1. Windows → Preferences 선택 2. General → Editors → Text Editors 이동 - Insert spaces for tabs 선택 후 적용 Formatter 설정 1. Windows → Preferences 선택 2. Java→ Code Style → Formatter 이동 - new 버튼 클릭 후 뜬 팝업 창에서 Profile name 작성 - Ok 선택 후 뜬 팝업 창에서 아래와 같이 선택 후 적용 + 적용 모두 적용 : Package Explorer에서 적용하고자 하는 프로젝트 우클릭 → Source → Format 일부 파일에 적용 : 적용하고자 하는 파일 우클릭 → Source → Format

기타/Eclipse 2023.01.31

TypeScript의 인터페이스

Interface - Object의 모양을 특정해주기 위해 사용 - 클래스가 아니지만 클래스의 모양을 특정할 수 있게 해주는 간단한 방법 - 고유한 사용처가 있고 클래스의 모양을 알려준다는 점에서 유용 - 프로퍼티들 축적 가능 // TypeScript가 알아서 합쳐줌 // interface에선 사용 가능하지만, type에서는 사용 불가능 interface User { name: string } interface User { lastName: string } interface User { health: number } const jisu: User { name : "jisu", lastName : "lee", health : 10 } - TypeScript에서 Object의 모양을 특정하는 방법 2가지 1..

TypeScript 2023.01.30