분류 전체보기 (55) 썸네일형 리스트형 [블록체인] Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습 Scalability 확장성 얼마나 많은 일을 신속히 처리할 수 있는지 비트코인, 이더리움은 확장성 개선중 TPS + Block Interval Transaction Per Second: 초당 몇 개의 거래 처리 Block Interval: 블록 생성 간격 TPS Visa: TPS 1700 비트코인: TPS 7 이더리움: TPS 15 ~ 20 Block Interval 비트코인: 10분 이더리움: 15초 ~ 20초 트랜젝션 계산 20 tps + 15초 block interval 20 * 15 = 300 transactions 한 블록에 들어가는 트랜잭션 기존의 블록체인 왜 느린가? 참여하는 노드가 많다고 빨라지지는 않는다. 웹, 모바일은 최대한 빨리 응답하기 위해서 서버 증가 및 분산 처리 블록체인을 구.. [블록체인] 솔리디티(Solidity) 문법 총정리 솔리디티(Solidity) 깨부수기 목차 Hello Solidity 솔리디티(Solidity)란 스마트 컨트랙을 개발하기 위한 언어 스마트 컨트랙이란 미리 정의된 조건이 충족이 되면 미리 저장된 블록체인 프로그램이 작동하는 것 예) 3의 배수 번째 사람에게 돈을 준다. 스마트 컨트랙은 그 사람이 3번째 사람인지 확인, 아니면 돈을 주지 않음 스마트 컨트랙 작성 방법 리믹스 IDE 사용 라이센스를 제일 윗 줄에 작성해야 함 // SPDX-License-Identifier: GPL-30 pragma solidity >= 0.7.0 < 0.9.0; contract Hello { string public hi = "Hello solidity"; } compile → deploy 하면 Deployed Contra.. [블록체인] 이더리움 입문 바이블 지갑(Wallet) 비결정적 지갑 임의의 개인키/공개키 쌍을 사용하는 유형의 지갑 결정론적 지갑 모든 키가 시드(seed)라는 단일 시작 지점에서 파생 지갑을 쉽게 백업하고 복원 개인키를 모른 채 공개키를 생성 가스(Gas) 스마트 계약 배포, 트랜잭션 실행을 위해서는 가스비가 든다. 트랜잭션을 실행하려면 채굴자에게 이더를 지불해야 한다. 이 이더의 양을 결정하는 연산의 단위를 가스라고 한다. 설정한 가스 가격이 높을수록 트랜잭션이 더 빨리 처리됩니다. 바이트코드(Byte Code) 스마트 계약 코드는 대개 **솔리디티(Solidity)**와 같은 고급 프로그래밍 언어로 작성됩니다. EVM 바이트코드로 컴파일됩니다. 게스(Geth) **이더리움 재단(Ethereum Foundation)**이 제공하는 공.. [블록체인] 블록체인과 클레이튼 블록체인 어떤 거래 정보를 블록 단위로 기록해서 체인형태로 묶어서 관리하는 것 기존 중앙에서 DB를 관리한다는 개념과는 다름 거래 정보를 각 노드들이 갖고 있기 때문에 위변조가 어렵다는 특징 블록체인 종류 비트코인 폴리곤 이더리움(ERC) → 하나의 트랜젝션을 처리할 때 드는 비용이 비쌈 클레이튼(KCT) 클레이튼 토큰 kip7: 대체 가능 토큰. 모든 토큰은 동일 가치. 호환 가능(넥슨 안에서만 사용 가능) kip17: 대체 불가 토큰. 고유 가치. 교환 불가(화폐, 예술작품) kip37: 멀티 토큰. kip7을 여러개 담을 수 있음.(나이키 한정판 신발) 클레이튼 합의 과정 합의노드를 랜덤하게 뽑음 CN: 컨센서스 노드. 합의를 담당하는 노드 PN: 프록시 노드. 엔드포인트와 CN을 연결 EN: 엔드.. [Spring Boot] 스프링 빈과 의존관계 스프링 빈과 의존관계 이제 회원가입 화면을 만든다고 해보자. 회원가입 화면을 구현하려면 Controller가 필요한데 Controller는 Service에 만들어둔 회원가입 기능을 통해서 동작되도록 해야한다. 그러려면 Conroller와 Service를 연결시켜 줘야하는데 이걸 스프링으로 구현할 수 있다. package com.example.hellospring.controller; import com.example.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller pub.. [Spring Boot] 회원 관리 예제 회원 관리 예제 1. 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원등록, 조회 아직 데이터 저장소가 선정되지 않았다는 가상의 시나리오 설정 (데이터베이스를 RDB로 할지, NoSQL로 할지 모르는 상황) 일반적인 웹 애플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 (예. 회원 중복 가입 안됨 등) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: DTO같은 객체 서비스 예: 회원 중복 가입 안됨 도메인: 하나의 DTO 객체라고 보면 됨 클래스 의존 관계 아직 데이터 저장소가 선정되지 않았다는 설정이기 때문에 우선 인터페이스로 설계 개발을 진행하기 위해 가벼운 메모리 기반의 데이터 저장소 사용 2. 회원 도메인과 리포지토리.. [Spring Boot] API 보통 데이터를 내릴 때 두 가지 방식이 있다. 1. 정적 콘텐츠 방식 View를 찾아서 템플릿 엔진을 통해서 html을 웹브라우저에 넘겨주는 방식 2. API 쓰는 방식 API 방식으로 데이터 바로 내리기 @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } @ResponseBody : http에서 header부와 body부가 있는데, body부에 데이터를 넘겨주겠다는 뜻. @ResponseBody를 사용하면 viewResolver를 사용하지 않음. 위 코드를 실행해보면 URL에 파라미터를 주면 View 없이도 그냥 브라우저에.. [JAVA] List 와 ArrayList 차이 List = 인터페이스 ArrayList = 클래스 interface는 공통되는 메서드를 추출해 놓은 클래스로, List 안에 ArayList, LinkedList. 등이 포함되어 있다. ArrayList list = new ArrayList(); List list = new ArrayList(); 위의 두 코드의 차이는 무엇일까? 2가지 모두 같은 결과를 도출한다. 하지만 List 를 사용해 ArrayList 를 생성하는 것은 유연성에서 효과를 볼 수 있다. 여기서 Generic(제너릭)에 대한 개념이 나온다. 만약에 우리가 어떤 자료구조를 만들어서 배포하려고 한다. 그런데 String 타입고 지원하고 싶고 Integer 타입도 지원하고 싶고 많은 타입은 지원하고 싶다. 그러면 String에 대한 클래.. 이전 1 2 3 4 5 6 7 다음