Enum을 사용할 필드에 아래와 같은 내용 추가 @Enumerated(EnumType.STRING) private State state; // State.CREATED 가 저장될 예정입니다. EnumType.STRING 은 이 내용을, value 가 아닌, name을 데이터 타입으로 사용하겠다는 의미이다. 데이터 베이스에는 아래와 같이 저장이 된다. 불러올 때도 마찬가지로 "CREATED" 라는 String 데이터가 저장된다. 아래와 같이 ORDINAL 타입은 사용하지 않는 것을 추천한다. @Enumerated(EnumType.ORDINAL) 자바의 경우 enum 타입 내부의 필드 순서에 따라서 숫자값을 가지게 되는데 이는 순서가 바뀔 경우 숫자값에 해당하는 value 가 달라질 수 있기 때문에 이는 시..
JWT 와 Session 세션은 서버 측에서 인증을 마친 사용자 정보를 가지고 있는 것 JWT 는 인증을 마치고 권한에 대한 정보를 클라이언트 측에서 암호화된 텍스트 형태로 가지고 있는 것 왜 JWT 인가? 헤더와 페이로드를 가지고 서명 필드를 생성하기 때문에 데이터 변조 후 재전송을 막을 수 있음 세션 기반 시스템은 분산 / 클러스터형 애플리케이션 사용하기 어려운 반면, 클라이언트 측에서 인가에 필요한 정보를 가지고 있기 때문에 확장성이 용이 JWT 란? Json Web Token (RFC 7519)의 약자로서, 2010 년 12월 28일 처음 게시되었음 JWT의 이점은 다음과 같다. 메타 데이터를 포함할 수 있음 OAuth 2와 호환 됨 만료를 제어할 수 있음 json 형식으로 데이터가 전송 됨 JW..
Homebrew 설치하기 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Homebrew 는 Mac 용 os 관리자 인데 m1 맥의 경우 관리자가 기본 설치되어 있지 않기 때문에 설치가 진행되지 않습니다. Rosetta 를 사용해서 터미널 열기 Finder > 터미널 정보 가져오기 > Rosetta를 사용하여 열기 활성화 Homebrew 설치하기 brew help 설치 후 위 명령어를 입력했을 때 메세지가 보이면 성공 git 설치 brew install git git 설치 확인 git --version
mac 에 RabbitMQ Server 를 설치하려다가.. M1 칩셋에 문제가 있는건지 메모리 참조 문제가 발생 알아보니 Mac 과 호환 안되는 문제가 있는 것 같다. Rosetta3.10 on macOS segmentation fault 11 따라서 윈도우 컴퓨터로 설치를 진행합니다... ㅋㅋㅋ ErLang 설치 RabbitMQ 는 ErLang 을 필요로 한다. Erlang Programming Language Index - Erlang/OTP The official home of the Erlang Programming Language www.erlang.org RabbitMQ 설치하기 Downloading and Installing RabbitMQ Downloading and Installing R..
출처 https://hyperconnect.github.io/2019/11/15/redis-distributed-lock-1.html 레디스와 분산 락(1/2) - 레디스를 활용한 분산 락과 안전하고 빠른 락의 구현 레디스를 활용한 분산 락에 대해 알아봅니다. 그리고 성능을 높이고 일관성을 보장하는 방법에 대해 알아봅니다. hyperconnect.github.io 출처 참고 부탁드립니다. 락이란? Database 에서 사용하는 개념으로 트랜잭션 처리의 순차성을 보장하기 위한 방법 중 하나이다. 트랜잭션이란 DB의 나누어지지 않는 최소한의 처리 단위이다. 이런 DB의 특징을 Atomic (원자적)하다고 부르는데 쉽게 말해서 한 번에 하나의 행동이 되는 것을 보장한다는 의미이다. 락을 획득한다는 것은 자원을..
Redis 란? Redis 는 NoSQL 의 한 종류이다. REmote DIctionary Server 를 의미 NoSQL 이란? NoSQL은 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. NoSQL 데이터베이스는 단순 검색 및 추가 작업을 위한 매무 최적화된 키 값 저장 공간으로 레이턴시와 스루풋과 관련하여 상당한 성능 이익을 내는 것이 목적이다. 출처 : https://ko.wikipedia.org/wiki/NoSQL 기존 관계형 데이터베이스와는 조금 다는 목적성을 가진 데이터베이스 입니다. 데이터베이스 분선처리, 빠른 쓰기, 데이터의 안정성등 빠른 퍼포먼스를 내기 위해 사용되는 것입니다. NoSQL 의 종류 K..
급하게 읽고 빠르게 작성한 것이라 단어 선택에 약간은 부적절한 부분이 있을 수 있으니, 이점 참고해주시면 감사하겠습니다. 추후 다듬어 갈 예정 입니다. 이 책은 "두뇌 사용법"이란 단어를 제목으로 가지고 있지만, 사실 사례를 예로 들고, 두뇌가 왜 그렇게 동작했는지 서술하는 방식을 담백한 시선으로 알려주는 내용이 주를 이룬다. 두뇌는 어떤식으로 동작하는가에 대한 이해를 깊은 수준의 이론과 흥미로운 사례를 통해서(특히 공감이 될만한 상황들) 평범한 독자들도 이해 가능한 수준에서 이야기를 서술하고 있다. 이 책은 지난 연구에 대한 바탕을 근거로, 두가지 진리를 제시한다. 사용하지 않으면 소멸한다. 함께 발화한 뉴런들은 함께 연관을 맺는다. 위 진리를 종합하자면 다음과 같다. "뉴런은 사용하지 않으면 소멸하지..
참고 https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098 [AWS] 가장쉽게 VPC 개념잡기 가장쉽게 VPC 알아보기 medium.com VPC 에 대해서 알기전에 VPN(Virtual Private Network) 에 대해 알아본다. VPN을 번역하면 "가상사설망" 이라고 부름. "가상"이라는 말에서 알 수 있든 실제 사설망이 아니라 가상의 사설망이다. 예를 들어서 위 그림과 같이 회사의 네트워크가 구성되어 있고 보안상의 이유로 사무실 A(공간 A)와 사무실 B(공간 B)의 인원이 다른 네트워크망을 사용하고 있다고 가정해보자. ..
트랜잭션은 ACID를 보장해야 한다. ACID 란? Atomicity : 원자성 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것 처럼 모두 성공하든가 모두 실패해야 한다. Consistency : 일관성 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 DB 에서 정해놓은 무결성 제약 조건을 항상 만족해야 한다. 또는 타입을 만족해야한다. (숫자컬럼에 문자열 값이 저장되어서는 안된다.) Isolation : 격리성 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈와 연관이 깊고, 우리는 격리 수준을 선택할 수 있다. Durability : 지속성 트랜잭션을..
원래 계속 윈도우 환경에서 개발을 했었다. 그런데 회사에서 맥을 사용하고 있어서 기존에 윈도우에서 사용하던 유용한 단축키들을 사용하지 못하게 되었는데, 이 때 문에 업무를 하면서 답답함을 느꼈고, 시간을 내어 단축키를 공부해야겠다고 마음 먹었다. 여기 나오는 단축키는 커스텀 된 단축키도 있다. mac 터미널 명령어 cp from 을 into 에 복사 mv from 을 into 로 이동 rm target 을 삭제 rm -r target 폴더를 통째로 삭제 mkdir name 폴더 생성 rmdir name 폴더 삭제 mac 단축키 control + ← : 이전 윈도우로 control + → : 다음 윈도우로 intellij 단축키 모음 네비게이션 단축키 command + B : 선언부로 이동 option +..