분류 전체보기 (66) 썸네일형 리스트형 그놈의 REST 한 API HTTP API HTTP API는 서로 정해둔 스펙으로 데이터를 주고받으며 통신하는것을 의미한다. 가장 중요한 특징으로 기능에대해 GET, POST, PUT, DELETE 등 메소드를 통해 여러 행동을 정의하게된다. 회원에 대한 API 를 예로 보면 http://server.com/users 위와 같은 API 스팩이 있을때 GET http://server.com/users //전체 유저 조회 GET http://server.com/users/k4keye //특정 유저 조회 POST http://server.com/users {id="k4keye"&pwd="pwd"} //특정 유저 생성 PUT http://server.com/users/k4keye {id="k4keye"&pwd="new pwd"} //특정.. HashMap 내용물 이해하기 Map Map이라고 하는 것은 Key 와 Value를 연결하는 자료구조로 특징적인 부분은 Key와 Value 중 하나만 존재하지 않고 Key는 중복되지 않지만 Value는 중복될 수 있다는 특징이 있다. Java에서 Map은 인터페이스이며 내부적으로 구현이 되어있는 것은 아니다. 구현체로 가장 보편적인 것은 HashMap이다. public interface Map { int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); ... } HashMap public static void main(String[] args){ HashMap map = new.. @RequestBody 동작 이해하기 API 의 Body 를 통해 JSON 데이터를 받기위해 @RequestBody 를 사용하여 받는다. 이는 JSON,XML 과 같은 HTTP 데이터 형식을 JSON 으로 변환한다. 스프링 내부에서 HttpMessageConverter을 통해 알맞는 오브젝트로 변환된다. 일단 간단한 API를 작성해서 확인해보자 @PostMapping("/request-body") public String requestBodyTest(@RequestBody RequestBodyTestDto requestBodyTestDto){ return requestBodyTestDto.getParamString(); } public class RequestBodyTestDto{ private String name; private int .. 그놈의 ECIES TL;DR 엘리스는 자신의 개인키와 밥의 공개키로 대칭키를 만든다. 대칭키로 암호문을 생성하고 암호문의 무결성을 검사할수있는 값을 만들어 암호문과 함께 보낸다. 밥은 자신의 공개키와 엘리스의 개인키로 대칭키를 만든다. 암호문의 무결성을 검사한다. 대칭키로 엘리스의 암호문을 해독한다. Elliptic Curve Integrated Encryption Scheme ECIES 는 Hybrid Encryption Scheme 중에 하나로 Elliptic Curve 즉 타원곡선을 사용하는 암호를 의미하며 Encryption Scheme는 데이터를 암호화하여 전송하기위한 모든 과정을 나타내는 의미를 가진다. 즉 ECIES는 타원곡선을 활용하여 임의의 대칭키를 생성하고 상대의 공개키로 암호화해 전송후 이를 복호화해 .. Hilt 사용 개요 기존의 DI를 구성하기위해 구글에서 제공한 Degger2를 사용하여 의존성 주입을 하였지만 높은 학습비용 및 많은 보일러플레이트 코드를 생성한다는 단점때문에 조금더 편한 DI 프레임워크가 나오게된다 이게 Hilt이다. Hilt는 Dagger를 쉽게 사용할수있도록 도와주는 도구이다. 💡Dagger 은 칼 종류이고 Hilt는 칼집 으로 네이밍 하였다. 프로젝트 세팅 의존성 추가 프로젝트 레벨 buildscript { repositories { } ext{ hiltVersion = '2.38.1' } dependencies { classpath "com.google.dagger:hilt-android-gradle-plugin:${hiltVersion}" } } 앱 레벨 plugins { id 'kotli.. RVA to RAW 쉽게 계산하기 파일에서는 Offset로 위치를 표현하고 메모리에서는 address(VA) 로 위치를 표현하는데 위의사진에서는 파일과 메모리에서의 위치가 차이가난다. 그래서 메모리에서의 값을 확인한후 그위치를 수정하고자할때는 그위치의 Offset값을 구하여만 한다. RAW = RVA - VirtualAddress(VA) + PointerToRawData RAW은 파일에서의 주소 이다. RVA 는 메모리에서의 주소이다 VirtualAddress(VA) 은 메모리에서의 섹션시작위치이다. PointerToRawData 은 파일에서의 섹션 시작위치이다 위에서 RVA는 VA - ImageBase 로 구할수있는데 여기서 ImageBase 는 위에 사진에서의 메모리 시작 address를 보면 0부터 시작안하고 010000000 로시.. 블록체인 확장성에 대한 문제 와 Rollup The Blockchain Trilemma 이 개념은 블록체인의 3가지 요소인 확장성, 보안성, 탈중앙성 을 모두 최대로 만족하기 어렵다. 따라서 3가지 요소중 하나를 포기하여 나머지 요소를 얻어야 한다. 시간이 지날수록 블록체인 네트워크 활동에 엄청난 수요가 생겼고 이로인해 가스 요금으로 인한 비용이 많이 발생한다.(확장성 문제) 또한 확장성에 대한 여러 문제중 가장 거론되는 문제는 거래 처리속도에 대한 문제이다. 이더리움 기준 평균 15개 정도의 거래를 처리할수있으며 비자 같은경우는 45000건의 처리가 가능한것에 비해 굉장히 부족한 처리 속도를 가지고있다. 지금의 블록체인의 디자인은 네트워크 전체 속도가 개별 노드의 처리속도 보다 높아질수없으며 개별 노드가 한번에 더 많은 일을 처리하여 속도를 올릴.. ECC 와 PBC 가 뭘까 ECC는 1980년대 소개된 이후 20년 가까이 안정성 검토와 합의를 통해 표준으로 채택되었다. ECC의 가장 중요한 장점은 더 작은 수 체계로 높은 안전성과 효율성을 보인다는것 예로 256bits ECC 개인키는 4096 bits RSA 개인키 보다 공개키에서 개인키를 유추하기 어렵다. 또한 숫자가 작은 만큼 서명,암호화 등 기본연산이 RSA 보다 빠르다. 이 글에서는 ECC사전 지식 - ECC암호 - PBC - BLS 순으로 진행된다. 어렵지 않다. 해 볼만 하다. 포기하지 않겠다 라는 마인드 컨트롤을 해야한다. (김현남 씨) Group 덧셈에 대해 다음과 같은 조건을 만족해야한다. Closure (닫힌 성질)→ 1+3 =4 에서 1,3,4이 같은 군에있어야한다. → 덧셈을한 결과가 군에 속해야한다 .. 이전 1 2 3 4 5 6 7 8 9 다음 목록 더보기