개발

    [BlockChain] EIP 55란?

    EIP55란 이더리움 지갑주소의 일부를 대문자화하여 구버전과 호환되는 이더리움 주소 체크섬을 제공한다. 일반 이더리움 주소 0x001d3f1ef827552ae1114027bd3ecf1f086ba0f9 EIP-55 적용한 주소 0x001d3F1ef827552Ae1114027BD3ECF1f086bA0F9 일반 이더리움 주소와 비교해보면 대소문자 차이만 있는것으로 확인할 수 있다. EIP 적용 방법 일반 이더리움 주소에서 0x를 제외한 값을 keccak256 함수로 해시값을 얻는다. 만약 해시값이 16진수로 8보다 크다면 그 자리를 대문자로 바꿔준다. Addr : 001d3f1ef827552ae1114027bd3ecf1f086ba0f9 Hash : 23a69c1653e4ebbb619b0b2cb8a9bad498..

    [Spring Boot] Spring-REST-Docs로 자동으로 API 문서화

    Spring REST Docs 모든 코드는 Github에 있습니다. REST Docs란? 이름 그대로 REST 문서이다. REST API를 문서화하여 input, output, 파라미터 세부정보 등을 팀원과 공유할 수 있다. REST Docs는 테스트 코드를 통과하여야 문서로 작성되기 때문에 검증된 문서를 작성할 수 있다. REST Docs를 선택한 이유? Spring에서 문서화를 할때 Swagger와 Rest Docs를 많이 사용한다. 개인적으로 Swagger UI가 더 보기 좋다. 그리고 Swagger는 curl을 통해 API를 바로 테스트 해볼 수 있지만 REST Docs는 단순히 문서만 제공한다. 여기까지 보고 나는 Swagger로 해야겠다는 생각을 하고 어떻게 코드를 작성하나 찾아봤다. 근데 S..

    [정리] 타입에 대한 생각

    타입 추론이란 명시적인 타입 표기가 없을때 타입을 자동으로 결정하고 코드를 해석하는 것이다. 대표적으로 자바스크립트가 있다. 타입을 자동으로 결정하기 때문에 타입에 대하여 많이 신경쓰지 않아도 코드를 작성할 수 있다. 처음 프로그래밍을 입문하기에는 타입이 없는것이 굉장히 편하다. 나 또한 자바스크립트로 개발을 처음 시작하였고 타입을 신경 안쓰는 것이 매우 좋았다. let a = "111"; console.log(typeof a); // string a = a * 1; console.log(typeof a); // number console.log(a); // 111 string으로 만들었던 변수 a를 1을 곱해서 number로 바꾸어 활용하기도 했다. 이때까진 타입을 쓰는 언어를 한번도 다루지 않았기 때..

    [Database] MYSQL - VARCHAR vs TEXT

    게시글 작성시 DB저장시 내용부분의 타입은 뭘로 쓸지 VARCHAR로 하면 길이는 얼마나 줘야할지 고민했다. 이참에 VARCHAR와 TEXT의 차이를 알아보고 앞으로 어떤 타입을 적용시키는게 좋을까를 정리하려고 한다. 모든 테이블은 InnoDB를 기반으로 한다. 1. VARCHAR varchar은 variable character 즉 가변적인 캐릭터이다. char 타입과 비교해보면 char 타입은 고정 크기이고 varchar은 가변 크기인 것이다. varchar를 설정할때 항상 괄호 안에 있는 숫자가 글자 수인지 바이트 수 인지 헷갈렸다. -> 글자 수라고 한다. 즉 varchar(255) 라고 설정하면 255자 이하의 문자열을 사용할 수 있다. varchar은 최대 65535개의 문자열을 저장할 수 있..

    [React] Redux vs Recoil

    모든 코드는 Github에 저장되어 있습니다. 나는 리액트로 개발을 할때 redux밖에 사용하지 않았었다. Redux는 검증되어있는 느낌이었고 커뮤니티 풀도 Redux가 우세했기 때문에 처음에 Redux를 공부하여 Redux만 사용했다. 최근 React-query를 사용하여 서버데이터와 클라이언트 내부데이터의 상태관리를 나누는 방법으로 개발을 하고 있다. 그래서 내부 상태저장을 할때 상대적으로 코드가 적은 recoil에 관심을 가지게 되었고 redux와 recoil의 차이점을 알아보려고 한다. 1. Redux 기존 양방향 데이터 흐름 Meta(전 Facebook)는 상태관리 문제를 해결하기 위해 Flux 패턴을 만들어 양방향 데이터 흐름에서 벗어나 단방향으로만 데이터를 변경할 수 있도록 만들었다. Red..

    [Devops] spring boot 블루/그린 무중단 배포 (gitlab ci, docker, nginx)

    spring boot로 무중단 배포를 이용하려고 한다. spring boot도 code deploy, elastic beanstalk 등등 무중단 배포 방법은 많다. 그중에서도 블루/그린 방법으로 docker를 이용하고 nginx도 공부할겸 nginx로 배포하려고 한다. 먼저 배포 과정은 아래와 같다. (1) gitlab에 push (2) 8080에 실행되고 있는 spring boot 멈춘 후 업데이트 (3) 8080 업데이트 후 실행 (4) 8081 멈춘후 업데이트 이러한 배포 방식을 블루/그린 이라고 하며 블루 컨테이너를 주로 보여주고 업데이트시에만 그린 컨테이너를 이용하는 방법이다. 그렇게 하여 기존 제공되는 서비스는 멈추지 않고 변경사항을 적용할 수 있다. 나는 업데이트 적용 후 green을 멈추..