[바미] 데이터 베이스 서버 성능 튜닝
·
MySQL(DB)
서버 성능 튜닝 데이터베이스 서버 성능 튜닝은 성능 이슈를 해결하기 위해 수행되는 과정을 말하는데 아래와 같은 과정으로 진행하고 있습니다. 성능 모니터링: 서버의 리소스 사용량과 성능 지표를 수집하여 이를 통해 성능 이슈를 파악합니다. 성능 분석: 수집된 데이터를 분석하여 성능 이슈가 발생하는 원인을 파악합니다. 성능 최적화: 성능 이슈의 원인을 파악한 후 성능 최적화를 위한 적절한 조치를 취합니다. 이를 위해 데이터베이스 설정 및 쿼리 최적화, 인덱스 생성 및 관리, 캐시 전략 등을 적용합니다. 캐시 최적화: 데이터베이스 서버에서 사용되는 캐시 정책을 최적화하여 쿼리 성능을 개선할 수 있습니다. 쿼리 최적화: 쿼리문을 최적화하여 성능을 개선할 수 있습니다. 하드웨어 업그레이드: 하드웨어 사양을 업그레이..
[바미] 데이터 베이스 트랜잭션 관리
·
MySQL(DB)
데이터 베이스 트랜잭션 관리란, 데이터베이스에서 수행하는 여러 개의 작업들을 하나의 논리적 단위로 묶어서 처리하는 것을 말합니다. 트랜잭션은 ACID(Atomicity, Consistency, Isolation, Durability)라는 4가지 속성을 가지고 있습니다. 원자성(Atomicity): 트랜잭션은 원자적으로 수행되어야 하며, 트랜잭션 안의 모든 작업들이 한꺼번에 성공하거나, 실패해야 합니다. 일관성(Consistency): 트랜잭션이 수행되면서 데이터베이스의 정합성을 유지해야 합니다. 격리성(Isolation): 트랜잭션끼리는 각자 독립적으로 수행되어야 합니다. 내구성(Durability): 트랜잭션이 성공적으로 완료되더라도 (시스템 실패가 일어나더라도) 그 결과가 데이터베이스에 계속 유지되어..
[바미] 데이터베이스 로드 밸런싱
·
MySQL(DB)
데이터베이스 로드 밸런싱 은데이터베이스 서버들 사이에서 요청 트래픽을 균등하게 분산시켜 성능을 향상시키는 기법입니다. 이를 통해 하나의 서버가 과도한 부하를 받는 것을 방지하고, 서비스 이용자들에게 빠른 응답을 제공할 수 있습니다. 데이터베이스 로드 밸런싱은 주로 두 가지 방식으로 이루어집니다. 하나는 DNS 로드 밸런싱(Domain Name System Load Balancing)이며, 다른 하나는 데이터베이스 로드 밸런서(Database Load Balancer)를 사용하는 것입니다. DNS 로드 밸런싱 데이터베이스 서버들의 IP 주소를 가지고 있는 DNS 서버를 통해 요청 트래픽을 분산하는 방식입니다. 장 단점 이 방식은 구성이 간단하지만, 서버의 상태를 고려하지 않아 서버 추가 및 제거를 할 때마..
[바미] 윈도우 10이 너무 일찍 종료되네요.
·
IT 관련 정보
1월 31일까지만 판매한다고 입장을 내놓았어요. 윈도우 11은 아직까진 불편하던데 너무 빨리 닫는거 아닌가 싶네요.
[바미] React, Go(Gin) axios 통신 예제 코드.
·
프로그래밍(Web)/Javascript(TS,Node)
React import axios from "axios"; const api = axios.create({ baseURL: "http://localhost:3000", // headers: { "Content-Type": "application/json" }, withCredentials: true, }); export const getData = async () => { await api .get("data") .then((response) => { if (response.ok) { return response.json(); } console.log(response.data); }) .catch((error) => { console.log(error); }); }; function App() { con..
[바미] 데이터 베이스 분산 방법
·
MySQL(DB)
데이터 베이스 분산 데이터베이스 분산은 데이터베이스를 여러 개의 노드로 분산하여 관리하는 기술입니다. 이를 통해 데이터베이스의 성능과 확장성, 가용성을 향상시킬 수 있습니다. 주로 논리적 분산과 물리적 분산 두 가지 방식으로 이루어집니다. 데이터 베이스 분산은 단일 서버에서 데이터 베이스를 관리하는 것보다 요청 처리량을 향상시킬 수 있지만 관리 및 유지보수 비용이 더 높아지는 단점이 있습니다. 그래서 적절한 용도에 따라 데이터베이스 분산을 사용하면 요청 처리량을 향상시키며, 시스템의 가용성을 높일 수 있지만, 관리 및 유지보수 비용이 더 높아지므로 신중하게 검토해야 합니다. 논리적 분산과 물리적 분산은 데이터베이스를 관리하는 방식에서 차이가 있는데 이 둘에 대해 살펴 보겠습니다. 논리적 분산 논리적 분산..
[바미] 데이터 베이스 스케일링
·
MySQL(DB)
데이터베이스 스케일링은 데이터베이스 용량을 증가하거나 그로 인한 성능 향상을 위한 기법입니다. 데이터베이스 스케일링은 일반적으로 수직 스케일링 (Vertical Scaling), 수평 스케일링 (Horizontal Scaling) 2가지 방법으로 이루어집니다 데이터베이스를 스케일링 할 때 적절한 전략을 선택하는 것이 중요한데 기존 시스템에서 사용하던 인프라와 새로운 인프라 간에 호환성을 고려해야 하며, 이를 위해 적절한 데이터베이스 클러스터링 기법을 선택해야 합니다. 이들은 데이터베이스 일관성, 확장성, 가용성을 유지하면서 성능을 향상시키는 데 사용될 수 있습니다. 수직 스케일링 (Vertical Scaling) 데이터베이스 서버의 하드웨어 자원을 확대하는 방법. 이를 통해 더 많은 요청을 처리할 수 있..
[바미] 데이터 베이스 캐싱 전략
·
MySQL(DB)
데이터베이스 캐싱 전략 요청을 빠르게 처리하기 위해 일부 데이터를 캐싱하여 재사용 할 수 있는 방법을 의미합니다. Cache hit 찾으려는 데이터가 캐쉬에 저장되어 있어 데이터베이스를 거치지 하고 캐쉬에서 바로 데이터를 가져오는 형태. Cache hit이 많이 발생할수록 데이터 베이스에 대한 부담이 줄어든다. Cache-Asdie 일반 적인 형태의 캐쉬로 어플리케이션이 캐쉬업데이트 업데이트 담당. 캐쉬에 먼저 쿼리문을 보내고 캐쉬에 데이터가 없을시 데이터베이스에서 데이터를 가져온후 캐쉬에 데이터를 업데이트 한다 장점: 1. 데이터베이스 데이터 모델과 캐쉬의 데이터 모델이 다르게 저장 가능 2. 캐쉬 서버가 다운되도 데이터베이스에서 데이터를 가져올수있다. 3. Lazy Loading 단점: 1. 데이터와..
[바미] CI/CD 그리고 젠킨스
·
프로그래밍(Basic)
CI/CD? CI : Continuous Integration CD : Continuous Delivery / Continuous Deployment CI/CD는 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법을 의미합니다. 이러한 것을 하기 위한 툴로 젠킨스(Jenkins)라는 것을 사용합니다. 젠킨스? 쉽게 설명하면 빌드를 자동화 해주는 툴입니다. 따라서 빌드를 자동화 시키기 위해 사용합니다. 빌드(Build)란? 빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드(Build)라고 합니다. 서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(Deploy)라고 합니다. 예를 들어 SpringBoot 어플리케이션을 쿠버네티스에 배포하는 경우 먼저 Maven이나 Gra..
Bami
기록하며 성장하기