전체 글

이 글은 'Fundamentals of Database Engineering'에 관한 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/database-engines-crash-course파티셔닝파티셔닝이란?- 파티셔닝: 거대 테이블을 여러 개의 테이블로 분할하고, WHERE 절에 따라 어떤 테이블 또는 파티션에 접근할지 결정하는 기술- 실제 데이터가 담기는 테이블을 TEMP_100K, TEMP_200K, TEMP_300K... 이런 식으로 나누고, TEMP(master table) 테이블은 실제 데이터는 갖고 있지 않음.- ex) TEMP로 id = 210,001에 대한 조회 쿼리가 오면 DB는 TEMP_200K에서 찾아서 주는 방식 사용법- 아..
이 글은 'Fundamentals of Database Engineering'에 관한 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/database-engines-crash-course B-TreeB-Tree 필요성- Full Table Scans: large tables를 읽는 것은 느림... 모든 page를 읽으면 많은 디스크 IO 발생B-Tree란- 빠른 탐색을 위해 만들어진 균형잡힌 데이터 구조로 검색 공간을 최소화하는게 목표 - B-tree는 노드로 구성되어 있음, m이라는 차수를 가짐... 차수는 기본적으로 각 노드가 가질 수 있는 자식 노드의 수에 해당됨,- m degree 트리의 노드는 m-1 elements를 가짐... 각 el..
이 글은 'Fundamentals of Database Engineering'에 관한 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/database-engines-crash-course 인덱싱 시작하기- explain analyze로 실행계획(쿼리계획)을 분석할 수 있음explain analyze select * from temp;Index only scan : Heap에서 fetch할 필요 없어 제일 빠르고 좋은 경우Parallel seq scan : 전체를 다 훑어야해서 최악의 경우. - create index로 인덱스 생성 가능create index temp_t on temp(t); - where 문으로 특정하였을 때 효과있지만, LIKE..
이 글은 'Fundamentals of Database Engineering'에 관한 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/database-engines-crash-course 테이블과 인덱스가 저장되는 방식논리적 테이블 -> 열과 행(혹은 document)으로 이뤄져 있음 Row_ID- 특정 행 ID를 고유하게 식별(Postgres에서는 tuple ID)- MySQL에서는 기본 키가 사실상 가짜(sudo) 행 ID가 됨, 다른 DB에서는 별개의 새로운 행 ID가 열에 생성됨 Page- 행은 논리적 페이지에 저장됨, 기술적으로 한 페이지에 많은 행이 들어갈 수 있음- 페이지는 고정된 크기(MySQL는 16kb)의 메모리 위치로, 디스크..
이 글은 'Fundamentals of Database Engineering'에 관한 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/database-engines-crash-course 트랜잭션트랜잭션이란? : 하나의 작업 단위로 취급되는 한 개 이상의 쿼리 모음트랜잭션 수명 : BEGIN -> COMMIT -> ROLLBACK(when crash)트랜잭션의 본질: 데이터를 변경하고 수정하는데 사용, 읽기 전용일 수도 있음읽기 트랜잭션: 무언가가 동시 트랜잭션 때문에 바뀌어도 신경쓸 필요 없음 트랜잭션은 항상 BEGIN 해야하고, 그렇지 않을시 DB에서 암묵적으로 BEGIN을 실행함... 항상 트랜잭션 안에 있음 원자성(Atomicity)원자성..
애플리케이션을 개발하면서 발생한 Lambda 비용 최적화 문제와 해결 과정을 정리해보았습니다.  1. 문제의 발생서비스 개발도중 AWS Lambda와 API Gateway를 이용해 REST API를 배포할 일이 있었습니다.Python 3.10 환경에서 동작하며, 웹사이트의 url을 입력으로 받으면 크롤링으로 단어를 추출하고, 토큰화 등 전처리 과정을 거쳐서 응답하는 프로그램이다.로컬환경에서 테스트 했을 때는 실행에 3초 정도가 소요되어, UX에 크게 문제를 주지 않을 것이라 생각했습니다. 그런데... production 환경에서 실행 시간이 10~20초 정도 걸리고, 심지어 특정 URL에 대해서는 Timeout이 나는 문제가 발생했습니다. Timeout이 발생했다는 것은 Lambda의 기본 제한 시간인 ..
그동안 프로젝트를 배포할 때 Github Action을 이용해서, Build, Test 후 배포를 해왔는데, Jenkins를 써서 CI/CD 파이프라인을 구성해 보면서 공부한 내용을 정리하고자 합니다. 프로젝트는 NestJS 기본 템플릿을 사용하고, 빌드를 성공하고 테스트를 통과하면 AWS CodeDeploy를 이용해서 EC2에 배포하는 파이프라인을 만들고, 나아가 단일 EC2가 아닌 target group 내에 여러 EC2에 동시에 배포되도록 구성해보려 합니다. 환경로컬 환경OS : Win10Docker Desktop : 4.30.0Nest : 10.3.2Node : 20.11.0Jenkins : 2.479.1 AWS EC2 환경OS : Amazon Linux 2023 AMINode : 22.11.0 ..
· IT/자격증
AWS SAA(AWS Certified Solutions Architect – Associate)에 합격했습니다. 단순히 자격증을 따야겠다는 목적보다는, AWS에 대해서 더 공부하고, 실제로 최적화해서 사용해보고 싶었던 목적이 컸습니다. 또한, 'AWS에서 EC2, RDS, SQS... 서비스 써봤어'라고 열거하는 것보다, '나 AWS 이만큼 이해하고 쓸 수 있어'를 보다 객관적으로 증명할 수 있겠다는 생각으로 본 자격증을 준비했습니다.    공부방법1. 유데미 '그' 강의 아마 여러 블로그 찾아보셨다면, 모두가 추천하는 강의인 듯합니다.'【한글자막】 AWS Certified Solutions Architect Associate 시험합격!'이라는 제목으로 세일할 때 사면, 17,000원에 살 수 있습니다..
이 글은 24년 하반기 AWS Certified Solutions Architect - Associate(이하 AWS SAA-C03) 자격증 취득을 위해서 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다.https://www.udemy.com/course/best-aws-certified-solutions-architect-associate CloudFormation- 대규모 인프라 배포 및 관리- 리소스에 대해 인프라의 윤곽을 구분짓는 선언적 방법- 정한 순서대로 인프라를 자동으로 구성- 다른 환경, 지역, 계정에서 아키텍처를 반복해야할 때 사용 가능 장점- 모든 인프라가 코드로 관리(IaC)  - 수동으로 인프라를 생성할 필요 없음  - 컨트롤하기 매우 좋음.. 코드 리뷰를 통한 검토... 리..
이 글은 24년 하반기 AWS Certified Solutions Architect - Associate(이하 AWS SAA-C03) 자격증 취득을 위해서 아래 유데미 강의를 보고, 공부한 내용을 정리하였습니다. https://www.udemy.com/course/best-aws-certified-solutions-architect-associate AWS Disaster Recovery- 재해: 회사의 사업 지속이나 재정에 부정적 영향을 미치는 이벤트 재해 복구 유형- 온프레미스 간 : 전통적인 DR로 매우 비쌈 - 온프레미스(기본) -> 클라우드 : 하이브리드 복구 - 모두 클라우드 : 리전 간 복구 수행 RPO, RTORPO(복구 시점 목표, Recovery Point Objective) - 얼마나..
파이랜스
PyPyStory