전체 글323 Truffle Truffle - 이더리움 기반 DApp을 쉽게 개발할 수 있도록 도와주는 블록체인 프레임워크 - Smart Contract 빌드, 컴파일, 배포, 테스트 환경을 제공 - Javascript에게 node.js가 있다면 Solidity는 truffle - truffle 환경 세팅 (truffle init) => sol파일 작성 후 컴파일 (truffle compile) => migration 파일 작성 후 배포 (truffle migrate) => 작동 점검 (truffle test) - migrations에 js파일 생성 시 파일명을 [번호_내용_컨트랙트명] 형식으로 만들어야 함 - Solidity 파일에서 데이터를 JavaScript로 가져올 때 Object 타입으로 가져옴 (js에서 타입 변환 필수).. 2023. 5. 17. 블록체인 기술사업 교육 31일차 Ajax(Asynchronous Javascript and xml)- 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법(비동기 처리 기법) 중 하나ex) 페이지를 전환하지 않고도 예상 결과를 보여줌 (아이디 중복체크)※ 요즘은 ajax보다는 fetch()나 axios를 사용기본 메소드- $.ajax() = ajax를 이용하여 HTTP 요청을 전송($.get + $.post)- $.ajax().done() = HTTP 요청이 성공할 경우 done()에 데이터 전달- $.ajax().fail() = HTTP 요청이 실패할 경우 오류와 상태에 관한 데이터를 fail()에 전달- $.ajax().always() = HTTP 요청 성공 유무와 상관없이 실행 - $.get() = 지정한 주소로 GET 방식.. 2023. 5. 17. java.lang.StringBuilder, StringBuffer StringBuilder, StringBuffer - java.lang 패키지로 여러 String 데이터를 하나로 합칠 때 사용 - 한번 생성되면 내용을 바꿀 수 없는 String 객체와는 다르게 내용 변경 가능 => 메모리를 더 효율적으로 사용 - 같은 메소드를 공유하지만 StringBuilder는 동기화 지원 X, StringBuffer는 동기화 지원 => StringBuilder는 싱글 스레드 환경에, StringBuffer는 멀티 스레드 환경에 적합 ※ 버퍼(Buffer) = 데이터를 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역 메소드 종류(공통) - append() = 해당 String 데이터 추가 (+=) - delete(첫 순서, 끝 순서+1) = 지정한 인덱스 위치의 문자열.. 2023. 5. 16. 블록체인 기술사업 교육 30일차 jQuery- 오픈소스 기반의 JavaScript의 라이브러리 중 하나로 짧고 단순한 코드로 웹 페이지에 다양한 효과나 연출(HTML의 DOM 조작, 이벤트 핸들링, 애니메이션, Ajax)을 적용할 수 있음- Element(HTML 태그) 선택이 편리하고 효율적으로 제어할 수 있음- $() = 제이쿼리 객체를 의미 (=jQuery())- $(HTML태그) 형식으로 지정한 HTML 태그 전체를 지정 - HTML 파일에서 script src="https://code.jquery.com/jquery-3.7.0.min.js">로 기본 세팅 (jQuery가 여러 페이지에서 쓰일 수 있으니 하나의 파일에 입력해 놓은 뒤 를 통해 import 하는 것이 효율적)- $(document).ready(function(){.. 2023. 5. 16. 블록체인 기술사업 교육 29일차 SmartContract와 node.js(express) 연동 기본 세팅 예시 - JavaScript에서 SmartContract에서 보낸 JSON 객체의 value를 조회할 때 JSON.key가 아닌 JSON[key] 형식으로 value를 불러와야 함 ({"0" : password, "1" : name, "2" : phone} 와 같은 형태로 전송하기 때문) const express = require("express"); const app = express(); const Web3 = require("web3"); const contractInfo = require("./build/contracts/user_info.json"); // HttpProvider를 통해 특정 네트워크와 연결 const we.. 2023. 5. 15. Spring Security 기본 로그인 구현 중 실수 정리 1. UserDetails를 상속받아 User를 구현할 때 Lombok으로 @Data만 적용하였더니 생성자 실행에 에러가 발생하지는 않지만 authorities에 의해서 생성자 실행이 제대로 되지 않음 => @Data가 아닌 @Getter, @Setter, @ToString 적용하고 생성자 메소드는 authorities를 제외하여 따로 입력해줘야 함 2. SecurityConfig에서 hasRole이나 hasAnyRole을 통해 접근 권한(Role)을 지정해줄 때는 ADMIN, USER와 같은 형식으로 입력하지만 DB에 저장할 때는 ROLE_ADMIN, ROLE_USER와 같이 ROLE_을 붙여서 저장해야 함 => 그렇지 않으면 authorities에 SimpleGrantedAuthority 객체를 추가.. 2023. 5. 11. 블록체인 기술사업 교육 27&28일차 express-session - 세션 관리용 미들웨어 - req.session을 통해 접근 ※ 세션ID는 req.sessionID를 통해 조회 가능 - 세션 관리 시 클라이언트에 session-cookie를 보냄 ※ 세션 설정은 라우터 호출 이전에 입력해야 적용됨 (그렇지 않으면 session = undefined) 속성 - secure = https에서만 세션을 주고받을지 설정 - secret = 암호화 키 설정 - resave = 세션을 항상 저장할지 설정 - saveUninitialized = 세션에 저장할 내역이 없어도 처음부터 세션을 생성할지 설정 - cookie = 세션 쿠키 설정 - name = 세션 쿠키명 설정 const express = require("express"); const ap.. 2023. 5. 11. Spring Security 기본 세팅 Configuration - Spring Security의 가장 기본은 Configuration 클래스(SecurityConfig) 설정 - @configuration 및 @EnableWebSecurity 적용 및 WebSecurityConfigurerAdapter를 상속 (WebSecurityConfigurerAdapter의 경우 최신 버전에서는 미지원) ※ @EnableWebSecurity = Spring Security에 대한 설정을 할 클래스라 지정하는 어노테이션 - Spring Security는 HttpSecurity를 사용하여 각종 설정 수행 ※ BCryptPasswordEncoder = Spring Security에서 제공하는 비밀번호 암호화 객체 역할 - 리소스(URL) 접근 권한 설정 -.. 2023. 5. 9. 블록체인 기술사업 교육 25&26일차 Express - Node.js의 대표적인 웹 프레임워크 - http 모듈을 이용하여 웹 서버를 구축하고 데이터를 표시하는 방식을 좀 더 추상화하여 웹 개발을 더 수월하게 할 수 있도록 다양한 API를 제공함 기본 세팅 const express = require("express"); const app = express(); // ejs나 html 같은 view 파일 경로 및 엔진 설정 시 app.set("views", __dirname + "/views"); // views 위치 설정 app.set("view engine", "ejs"); // view engine 타입 설정 app.use(express.urlencoded({ extended: false })); // post 방식 허용 // 서버 포트.. 2023. 5. 9. Thymeleaf 기본 문법 Thymeleaf - Java 템플릿 엔진 => html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리하게 해줌 - Spring Boot에서 사용하도록 권장되는 템플릿 엔진 (Spring Security 사용 시에 필수!) ※ 템플릿 엔진(Template Engine) = HTML과 데이터를 결합한 결과물(페이지)를 생성해주는 소프트웨어 라이브러리 - Spring Boot는 Thymeleaf로 사용할 html 파일의 경로 기본값이 resources/templates로 지정되어 있음 // application.property 버전 spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html // application... 2023. 5. 8. 블록체인 기술사업 교육 24일차 grid- CSS의 레이아웃 배치 기능 중 하나로 flex(단방향)와는 다르게 두 방향 레이아웃을 설정함- 컨테이너에 display: grid; 를 적용해야 사용 가능※ 길이에 대한 단위를 px이 아닌 fr도 사용 가능한데 fr은 상대적인 비율을 의미 => ex) 1fr 1fr 1fr = 1:1:1grid-template-columns - 그리드 열의 배치(가로) 설정ex) grid-template-columns: 100px 200px 300px; => 각 그리드의 열(가로) 길이를 100,200,300px로 지정grid-template-rows- 그리드 행의 배치(세로) 설정row-gap - 그리드 셀 간의 행(세로) 간격 설정column-gap- 그리드 셀 간의 열(가로) 간격 설정 grid-temp.. 2023. 5. 8. Spring Security 정의 및 동작 구조 Spring Security - 스프링 기반 애플리케이션의 보안(인증, 권한, 인가 등) 설정을 도와주는 하위 프레임워크 동작 구조 - 스프링 애플리케이션과의 의존성 분리를 위해 서블릿 필터를 기반으로 동작 - Spring Security는 서블릿 필터 중 한 개로 등록되어 보안 설정을 수행 - DelegatingFilterProxy 인터페이스에서 Spring Security 필터를 구현하며 이 필터는 여러 개의 체인으로 구성 => SecurityFileterChain - SecurityFileter = SecurityFileterChain으로 관리되는 필터체인으로 각 필터마다 보안과 관련된 고유한 기능을 담당 ex) 로그인 담당 / 세션 담당 / 로그아웃 담당 등 동작 순서 1. 사용자가 Form을 통.. 2023. 5. 4. 블록체인 기술사업 교육 23일차 flex - Flexbox라고도 부르며 CSS의 레이아웃 배치 기능 중 하나 - 컨테이너에 display: flex; 를 적용해야 사용 가능 flex-direction - 요소 배치 방향 설정 - row(→), row-reverse(←), coulmn(↓), coulmn-reverse(↑) - column, column-reverse를 적용하면 justify-content와 align-items가 반대로 적용됨 => justify-content = 수직 방향, align-items = 수평 방향 justify-content - 수평축 방향 정렬 - flex-start(기본- 좌측 정렬), flex-end(우측 정렬), center(중앙) - space-between(요소들 사이에 동일 간격), space.. 2023. 5. 4. RSA RSA - 공개키 암호 알고리즘 중 하나로 세계적인 공개키 암호 알고리즘 표준 - RSA라는 명칭은 해당 알고리즘을 발명한 3인의 이름 앞글자를 딴 것에서 유래 - 암호화 뿐만 아니라 전자서명(인증)도 가능 - 공개키(Public Key)와 개인키(Private Key)로 구성 (비대칭키) - 공개키 = 다수에게 공유, 개인키 = 개인만이 유일하게 소유 ※ 대칭키/비대칭키 = 암호화하는 키와 복호화하는 키가 같은/다른 경우 암호화 방식 - 공개키로 암호화&개인키로 복호화하는 경우(데이터 암호화)와 개인키로 암호화&공개키로 복호화하는 경우(송신 주체 인증)가 존재 ex) A => B로 데이터를 전송하려는 경우 1. A와 B가 서로의 공개키 공유 2. A가 B에게 받은 공개키(B)로 보내고자 하는 데이터를 .. 2023. 5. 3. 블록체인 기술사업 교육 22일차 (블록체인 산업 이해) NFT(Non-Fungible Token) - 대체 불가능 토큰 - 구성 = 블록 헤더(메타데이터) + 거래 데이터(송/수신자, 식별자) + 블록 해시 + 이전 블록의 해시 - 일종의 디지털 자산에 대한 등기부등본 - NFT 교환은 이미지와 같은 콘텐츠를 거래하는 것이 아닌 토큰을 거래하는 것 (토큰에 콘텐츠 데이터가 연결) 장점 및 특징 - 희소성,불변성, 투명성(기록이 위조없이 남음) - 생산의 용이성, 거래의 자유로움 단점 및 해결해야 할 문제 - 데이터 손실 우려, 환경 문제(이산화탄소), 저작권 문제(원작자가 아니어도 무제한 생성 가능) - 러그풀 사각지대(개인 특정 어려움), Smart Contract 및 거래소 취약점 (해킹 당하면 탈취당할 수 있음) - 초기 사용자의 접근성 문제(생소한 용.. 2023. 5. 3. 이전 1 ··· 5 6 7 8 9 10 11 ··· 22 다음