일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rds
- CodeCommit
- goorm x kakao
- data
- Spring Boot
- CICD
- Redis
- codebuild
- orm
- 스터디
- mapping
- 개발자
- serverless
- spring
- DynamoDB
- s3
- jpa
- codedeploy
- 자격증
- Docker
- 티스토리챌린지
- nosql
- 오블완
- aws
- goorm
- sqs
- bootcamp
- backenddeveloper
- MSA
- QueryDSL
- Today
- Total
목록전체 글 (60)
gony-dev 님의 블로그
Proxy프록시(Proxy)는 '대리'라는 의미로 인터넷 관점에서는 내부 네트워크에서 인터넷 접속을 할 때, 빠른 액세스나 안전한 통신 등을 확보하기 위한 중계서버를 일컫는다. 클라이언트와 웹 서버의 중간에 위치하고 있기에, 이 통신을 받아주는 것을 '프록시 서버'라고 부른다.그렇다면 JPA 관점에서의 프록시란 뭘까? "em.find()"와 "em.getReference()", EntityManager에 대한 두 가지 메서드가 여기 있다. 이 둘은 조회라는 관점에서는 비슷하지만 조회를 하는 방식이 다르다."em.find()"는 데이터베이스를 통해서 실제 엔티티 객체를 조회한다."em.getReference()"는 데이터베이스 조회를 미루는 프록시 엔티티 객체를 조회한다.em.getReference()해당..

1. 상속관계 매핑객체는 상속관계가 존재하지만, 관계형 DB에는 상속 관계가 없다.그나마 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사한데,이 "상속 관계"라는 것은 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것을 말한다.슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법?객체는 상속을 지원하기에 모델링과 구현이 똑같지만, DB는 상속을 지원하지 않기에 논리 모델을 물리 모델로 구현하는 방법이 필요하다.이에 대해 DB의 슈퍼타입 서브타입 논리 모델을 물리 모델로 구현하는 방법은 3가지가 존재한다. 이를 알아보자.주요 어노테이션@Inheritance(strategy=InheritanceType.XXX)JOINED: 조인 전략SINGLE: 단일 테이블 전략TABLE_..

DynamoDB - Optimistic Locking낙관적 잠금 기능은 조건부 쓰기를 수행한다.이는 업데이트나 삭제 전에 항목이 변경되지 않게 하는 것이다.각 항목들은 버전 번호로써 역할을 수행하는 속성을 갖게 된다. DynamoDB Accelerator(DAX)DAX는 DynamoDB에서 완전 관리형, 고가용성, 무결절성 인 메모리 캐시이다.캐시된 읽기와 쿼리에 마이크로초의 지연이 발생한다.이는 어플리케이션 로직에 어떤 변경을 요청하지 않고 존재하는 DynamoDB API에 호환된다.우리는 DAX를 통해 "Hot Key" 문제를 해결할 수 있다.Hot Key | 특정 키나 항목을 너무 많이 읽으면 RCU에 스로틀이 생기는 문제TTL은 캐시에서 기본 5분이다.클러스터에는 최대 10개의 노드를 가질 수 있..

DynamoDB란?1. NoSQL databasesNot Only SQL 또는 Non SQL 데이터베이스를 의미한다.수평성 확장성을 가지며 MongoDB나 DynamoDB를 포함한다.조인 쿼리를 지원하지 않으며 필요한 모든 데이터는 한 줄로 표시되어야 한다.수평 확장성을 가지기에 더 많은 인스턴스를 추가해서 스케일링할 수 있다.DynamoDB완전 관리되고 고가용성의 NoSQL 데이터베이스이며, RDS와는 다르다.대규모 워크로드로 확장되고 완벽히 분산된다.초당 수백만 개의 요청과 수조 개의 행, 수백 테라바이의 스토리지로 확장할 수 있다.검색 시 지연 시간이 낮고 IAM과 통합되어 있다.1. BasicDynamoDB는 테이블들로 이루어져 있으며, 각각의 테이블은 기본 키를 갖는다.각 테이블은 행을 무한대로..

Lambda Layers람다 레이어는 두 가지 특징을 가질 수 있다. 1. Custom Runtimes원하는 언어로 커스터마이징하여 런타임을 설정할 수 있다.2. Externalize Dependencies to re-use them라이브러리를 재사용하기 위해 종속성을 외부화할 수 있다.람다 레이어를 통해 함수를 훨씬 빠르게 배포할 수 있고 종속성이 있을 때마다 매번 다시 패키징할 필요가 없다.또한 계층이 외부화되어 있으므로 다른 함수나 어플리케이션에서 다른 함수를 만들어 동일한 계층을 참조할 수 있다. 주의! 람다 계층의 데이터는 수정할 수 없다.Lambda File Systems Mounting람다 함수는 VPC 내에서 작동할 경우, EFS 파일 시스템에 액세스할 수 있다.그러기 위해서는 초기화하는..

서버리스란서버가 없는 상태가 아니라서버를 관리할 필요가 없는 상태를 의미한다.AWS Lambda람다를 설명하기에 앞서 EC2를 설명하자면 클라우드의 가상 서버라서 프로비저닝을 해야한다.또한 메모리와 CPU 크기가 제한되며 계속 실행해주어야 하는 특징이 있다.ASG로 스케일링이 가능하지만 이는 자동으로 추가해주고 삭제해야하는 것을 의미한다.하지만 람다는 가상의 함수로 관리할 서버 없이, 코드를 프로비저닝하고 함수를 실행한다.시간제한이 있어서 실행 시간이 짧지만 최대 15분이라 큰 단점은 아니다.on-demand로 실행되어 호출하지 않으면 실행되지 않아 비용도 호출 횟수에 따라 청구된다.스케일링 또한 자동화 되어 있다는 장점이 있다. Lambda의 장점Easy Pricing람다가 수신하는 요청의 숫자에 따라..

AWS X-Ray시험에 반드시 나오니 주의!발단운영 환경에서 디버깅할 때를 종종 마주한다.정석 방법은 로컬에서 테스트하고, 곳곳에 로그 구문을 추가하고, 운영 환경에 재배포하고 로그를 보며 잘못된 방법을 파악하는 방법이다.이러한 방법은 상당히 성가시기 때문에 AWS X-Ray를 사용한다. AWS X-Ray Visual analysis of our applicationsX-Ray는 어플리케이션에 대한 시각적 분석을 제공한다.이번 강의에서 어플리케이션에 요청을 수행하는 클라이언트 입장에서 요청이 얼마나 실패하고 성공하는지 확인할 것이다.아래 그림에서 볼 수 있듯이 EC2 인스턴스와 소통할 때 일어나는 일을 시각적으로 파악할 수 있다. X-Ray Advantages성능 트러블슈팅이 가능하고 병목 현상을 식별할..

AWS Monitoring모니터링이 중요한 이유?우리는 지금까지 AWS에 대해 배워오면서 어플리케이션을 배포하는 방법을 알아왔다.그것도 안전하고, 자동적이고, 인프라 시설을 사용하면서 말이다.하지만 우리의 어플리케이션이 배포가 되어도, 사용자들은 이 어플리케이션의 구축 방법에는 별로 관심이 없다.오로지 그들은 작동 여부만 따진다.그래서 어플리케이션의 지연이나 정지가 발생이 일어나기 전에 문제를 해결할 수 있도록 트러블 슈팅을 수행하는 것이 바람직하다.Monitoring in AWSAWS CloudWatch를 통해 모니터링을 수행할 수 있다:Metrics: 지표를 수집한다.Logs: 로그를 수집하고 로그 파일을 분석한다.Events: 특정 이벤트가 발생했을 때 알림을 보낸다.Alarms: 지표 이벤트 및 ..

KinesisKinesis는 스트리밍되는 데이터를 실기간으로 수집, 처리 및 분석하도록 도와준다.어플리케이션 로그, 지표, 웹사이트 클릭스트림, IoT 원격 데이터 등 실시간 데이터 어느 것이든 될 수 있다.그 중 Kinesis Data Streams는 데이터 스트림을 입력, 처리 및 저장할 수 있고,Kinesis Data Firehose는 내부나 외부의 데이터 스토어로 데이터를 로드한다.Kinesis Data Analytics는 SQL이나 Apache Flink를 통해 데이터 스트림을 분석한다.Kinesis Data StreamsKinesis Data Streams는 1개 이상의 샤드로 이루어져 있으며, 이 샤드는 사전에 프로비저닝되어 있어야 한다.모든 샤드에 걸쳐 데이터는 분산되고, 샤드가 수집 및 ..

여러 개의 어플리케이션을 배포하려고 할 때, 어플리케이션들은 서로 소통을 해야할 필요가 있다.여기 두 가지의 어플리케이션 의사소통 패턴이 있다.1. Synchronous communications- 어플리케이션이 또 다른 어플리케이션과 직접 연결된다.- 예시로 구매 서비스와 배송 서비스의 직접적인 연결이 있다.2. Asynchronous / Event based- 미들웨어가 어플리케이션을 연결한다. 직접적으로 연결되어 있지 않다는 의미이다.- 위와 같은 예시로 구매 서비스가 'queue'라는 대기열에 메시지를 전달한다. 그러면 배송 서비스는 대기열에게 구매 내역을 물어보고 메시지를 받아 행동을 취한다.Amazon SQSSQS의 핵심은 대기열이다.SQS 대기열에는 메시지를 포함하며, 메시지를 담기 위해서는..