2024/03 7

동시성 문제에 대한 N개의 해결방법

시작하며 인프런의 모든강의가 30% 할인 하길래 동시성관련 강의를 구매 후 공부한 내용을 기록하였다. [강의] 동시성 문제란? 동시성 문제란 여러 쓰레드들이 공유 자원에 대한 경쟁을 벌여 의도하지 않은 결과를 말한다. 강의는 상품의 재고에대한 동시성문제를 다루는 내용이다. 재고 감소로직의 순서로는 1) 재고 감소 로직은 해당 ID값을 통해 엔티티를 조회 @Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); stock.decrease(quantity); stockRepository.saveAndFlush(stock); } 2) 요청 재고가 기존 재..

Backend/Spring 2024.03.24

커버링 인덱스 적용

시작하며 MMS 발송 모듈에서 히스토리 테이블의 Select 시 성능 저하로 커버링 인덱스를 적용하였다. 현재 상황 테이블은 4개의 컬럼으로 구성되어있고, 4개의 컬럼이 복합 PK로 구성 및 파티션이 적용 되어 있다. 발송 배치시 Select 쿼리 성능 저하로 TPS가 맞춰지지 않았다. 원인 복합 PK를 사용시 단점으로 Where 조건절이 복합키 컬럼이 모두 만족 되지 않는다면 인덱스가 적용이 되지않는다. 현재의 Where 조건절에는 하나의 컬럼만이 사용되었다. History 테이블로서 데이터가 지속적재 되기때문에 시간 경과에 따른 누적 성능 저하가 발생한다. 해결방안 Where 조건절에 해당하는 컬럼을 추가 적용하여, 인덱스가 적용되도록 추가하여, 기존 성능 2초에서 0.01초로 감소시켰다. 링크 : ..

Backend/DB 2024.03.21

AWS 기초개념

AWS 기초개념 리전 전세계의 지리적으로 분리된 물리적 위치 단위 1개 리전은 최소 2개이상의 가용영역을 보유 리전 선택시 고려사항 지연시간 법률 및 규제 준수 서비스 가용성 비용 가용영역(Availability Zones) 1개 AZ는 완전히 격리된 1개 이상의 데이터 센터(DC) 모음으로 구성된다. 각 AZ는 지진 등 자연재해를 고려하여 물리적으로 떨어진 위치에 존재 POP(Point of Presence Location) 최종 사용자에게 빠른 컨텐츠 배포를 위한 캐시 서비스 컨텐츠를 제공시 지연시간 감소를 위한 글로번 CDN인 AWS CloudFront 서비스를 호스팅 엣지 로케이션 : AWS CDN서비스 CloudFront를 위한 캐시 서버들의 모음 리전 엣지 캐시 : 엣지 로케이션에 컨텐츠가 ..

Cloud/AWS 2024.03.12

클라우드 서비스 모델 개념정리

SasS(software as a Service) - 구글의 Gmail,MS Office 365,더존 ERP등과 같이 응용 프로그램(Application)을 인터넷 및 웹 브라우저를 통해 제공하는 서비스 PasS(Platform as a Service) - 운영체제 및 미들웨어, SW 개발 혹은 데이터 분석을 위한 도구 등 웹 기반 서비스, 애플리케이션 혹은 SW 등의 개발을 위한 표준 플랫폼 환경을 제공하는 서비스 - AWS Elastic Beanstalk 등 IaaS(Infrastructure as a Service) - 물리적 서버(CPU, Memory 등), 네트워크, 스토리지 등을 가상화하여 다수의 고객을 대상으로 유연하게 제공하는 인프라 서비스 - AWS EC2 등

Cloud/AWS 2024.03.07

도커 아키텍처

도커의 특징 애플리케이션을 신속하게 구축, 테스트, 배포 할 수 있는 오픈소스 플랫폼 컨테이너 기반의 오픈소스 가상화 도구 도커의 장점 운영의 표준화 - 작은 컨테이너 기반의 애플리케이션 사용 - 손쉽게 배포 수정 및 롤백 가능 CI/CD 제공 - 지속적인 통합과 개발 제공 - 환경표준화 및 버전 간 충돌 제거 마이크로서비스(MSA) - 표준화된 코드 배포 활용으로 분산 애플리케이션 구축 가능 도커 아키텍처 이해 도커 아키텍처의 개념 도커 엔진

Cloud/Docker 2024.03.06

가상화의 개념

가상화란? 물리적인 자원들을 통합하고 논리적으로 재구성하여 자원을 효율적으로 사용하는 기술 가상화 기술의 등장 배경 자원의 효율적인 운영 On Demand 기능 개발 효율성 대두 보안성 향상 - 분리와 격리를 통한 안전하 접근 제공 대상에 다른 가상화 분류 서버 가상화(EC2) - 1대의 물리적인 서버를 분할하여 여러대의 논리적인 가상 서버로 구성 스토리지 가상화(S3, EBS) - 다수의 물리적인 저장소를 하나 이상의 볼륨이나 드라이브로 나누는 기술 네트워크 가상화(VPC) - 한정된 물리적인 네트워크 자원을 여러 가상적인 독립적인 네트워크 환경으로 구축 데스크탑 가상화(Dass) - 다른 컴퓨터에서 실행되는 화면을 원격의 데스크탑에서 볼 수 있는 기술 하이퍼바이저에 따른 분류 위치와 역할 - TYPE..

Cloud/Docker 2024.03.06