
AWS 에서 DynamoDB 로컬 환경을 위한 테스트 환경을 제공한다. Local 에서 DynamoDB 실행하기 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html Deploying DynamoDB locally on your computer - Amazon DynamoDB The YAML scripts require that you specify an AWS access key and an AWS secret key, but they are not required to be valid AWS keys for you to access DynamoDB local. doc..

TLS 는 SSL 과 같은 의미이여 TCP 통신에서 오고가는 데이터를 암호화하기 위한 프로토콜이다. TLS 과정 인증서 발급 TLS 인증을 하고자하는 서버가 CA (Certifiacate Authorities : 인증서 발급 기관) 로부터 인증서를 발급 받는다. Server 는 공개키/비공개키를 생성하고 인증서 신청시 공개키를 CA 에 전달 CA 는 인증서에 Server 의 공개키를 포함하여 인증서를 생성 CA 는 인증서 내용을 Hash 처리한 값을 CA 의 비밀키로 암호화하여 인증서에 포함 TLS 연결 Client 와 Server 가 HTTP Handshake 이후에 TLS 인증 절차를 거친다. Client 는 Server 에게 ssl 버전, 사용 가능한 암호화 프로토콜등을 전달한다. Server 는 ..
Naming Rules DynamoDB의 테이블, Attributes 와 다른 오브젝트들은 이름을 갖는다. 이름은 의미를 잘 전달할 수 있어야하며 간결해야한다. 예를들어, 상품, 책, 저자와 같이 이름만으로 의미를 알 수 있어야한다. 아래 설명들은 DynamoDB 의 네이밍 규칙을 설명한다: 모든 이름은 UTF-8 로 인코딩되며 대소문자를 구별한다. 테이블명과 인덱셔명은 3글자이상 255자이하여야하며 아래여야하며 아래 문자들로 구성될 수 있다 a-z A-Z 0-9 _ - . Attribute 이름은 한개 이상의 문자여야하며 64KB 이하여야한다. Attribute 이름은 가능한 짧게 관리하는것을 권장한다. Attribute 이름 또한 Read 요청에 응답값으로 함께 전달되기 때문이다. 아래 이름들은 At..
DynamoDB 를 사용하기에서는, Application 에서 몇가지 간단한 API 를 사용해야한다. 아래는 Category 로 구분된 API 의 요약들이다. Topics Control Plane Data Plane DynamoDB Streams Transactions Control Plane Control Plane 명령은 DynamoDB 테이블을 생성하고 관리한다. 또한, Control Plane 은 Index, Stream 과 같이 테이블에 의존적인 것들을 다룰 수 있게 해준다. CreateTable - 새로운 테이블을 생성한다. 필요하다면, 한개 이상의 Secondary Index 를 생성할 수 있고 DynamoDB Stream 을 활성화 할 수 있다. DescribeTable - Primay K..

DynamoDB 의 테이블(Table), 아이템(Item), 속성(Attribute)은 DynamoDB 를 다루기위한 주요 컴포넌트들이다. Attribute 들이 모여 하나의 Item 을 이루고 Item 들이 모여 하나의 Table 을 이룬다. Primary Key 를 사용하여 테이블의 아이템들을 구별하고 Secondary Index 를 사용하여 조회를 더 자유롭게 할 수 있다. DynamoDB Streams 를 활용하여 DynamoDB 의 변경 이벤트를 감지할 수 있다. Tables, Items, 그리고 Attributes 아래 설명은 DynamoDB 의 기본 컴포넌트에 대한 것이다. Tables - 다른 데이터베이스들과 비슷하게 DynamoDB 도한 데이터를 테이블에 저장한다. Table 은 데이터의..
Amazon DynamoDB 는 중단없이 확장가능한 빠르고 예측가능한 성능을 제공하는 NoSQL 데이터베이스이다. DynamoDB 는 분산 데이터베이스의 운영, 스케일링과 같은 관리 측면의 짐을 덜어줌으로서 사용자들이 설정, 복제, 소프트웨어 업그레이드, 클러스터 스케일링과 같은 작업들에 신경쓰지 않도록 서비스를 제공한다. 또한, DynamoDB 는 민감 데이터를 보호하기위한 운영 측면의 복잡한 작업인 암호화를 제공한다. DynamoDB 암호화 DynamoDB 에서는 필요한 테이블을 생성하여 어떠한 양의 데이터라도 저장할 수 있으며 어떤 수준의 트래픽이라도 검색 기능을 제공할 수 있다. 다운 타임과 성능 저하가 없는 스케일 업/다운을 통하여 테이블의 처리량을 조절할 수 있다. AWS console 을 이..

JPA 를 사용할때 N+1 로 인한 성능 저하는 경계해야할 대표적인 문제중에 하나입니다. N+1 이 발생하는 경우는 여러가지가 있지만 그 중에서 referncedColmnName 과 관련된 내용을 코드 분석과 함께 알아보고자 합니다. N+1 재현 환경 Repo : https://github.com/SonUngBea/hibernate-project/tree/N%2B1/referencedName ERD DATA Student School Code Student Entity - NOTE : @ManyToOne 으로 Join 을 걸때 school 의 PK 인 id 가 아닌 name 으로 Join 을 걸었다. @Entity public class Student implements Serializable { @Id..

Object.wait() : 현재 Object Monitor 를 획득하고 있는 Thread 의 Monitor 소유권을 해제하고 Thread 를 WAITING 상태로 만든다. wait() 메서드는 synchronzied 블록 안에서만 호출 가능하다. 중요한 것은 Lock 을 해제하고 Thread 가 WAITING 상태가 된다는 것! Object.notify() : 해당 Object Montior 의 WAITING 상태인 Thread 들 중 하나를 깨운다. 깨어난 Thread 는 Lock 을 얻기 위한 경쟁 상태인 BLOCKED 상태가 된다. Object.notifyAll() : 해당 Object Monitor 의 WAITING 상태인 Thread 들 전부를 깨운다. notify() 와 마찬가지로 깨어난 ..

JPA 를 사용하여 Repository Bean 을 생성할때 class 가 아닌 interface 로 선언하여 사용하게 된다. 어떻게 interface 만으로 객체가 생성되어 빈으로 등록되는지, 함수의 구현 없이 이름을 정의하는 것 만으로 쿼리가 만들어져서 동작하는지 궁금하여 조사를 시작하게 되었다. 아래 테스트 코드에 사용된 라이브러리 버전은 아래와 같다. implementation group: 'org.springframework', name: 'spring-context', version: '5.3.19' //AOP implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.9.1' //JPA implementation gro..
- Total
- Today
- Yesterday
- spring cloud gateway
- ConcurrentHashMap
- AbstractMethodError
- msyql-connector-java
- referencedColumnName
- GlobalFilter
- getBoolean
- circurit breaker
- router
- MariaDB
- Lazy
- notifyAll()
- reactor
- mariadb-connector-j
- wait()
- N+1
- custom config data convertion
- mariada-connector
- RouteDefinition
- HashMap
- reative
- Seperate Chaining
- Flux
- ResultSet
- aurora
- RoutePredication
- DyanomoDB
- rate limit
- dynamodb
- notify()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |