본문 바로가기

database9

PostgreSQL이란 무엇인가 – 확장성과 안정성을 갖춘 오픈소스 RDBMS | 무료지만 강력 트랜잭션 안정성 들어가며PostgreSQL(포스트그레SQL, 줄여서 Postgres)은 오픈소스 관계형 데이터베이스 중에서도 가장 진보된 기능과 안정성을 갖춘 시스템으로 평가받습니다.MySQL과 마찬가지로 무료로 사용할 수 있지만, 더 강력한 트랜잭션 처리, 확장성, 표준 SQL 지원으로 인해 최근에는 많은 기업과 스타트업에서 선택하고 있는 대안 DB입니다.이 글에서는 PostgreSQL의 기본 개념과 철학, 주요 특징을 정리하면서 PostgreSQL 카테고리의 첫 시작을 열어보겠습니다.PostgreSQL이란?PostgreSQL은 1986년부터 캘리포니아 버클리대에서 시작된 **객체-관계형 데이터베이스 관리 시스템(ORDBMS)**입니다.SQL 표준을 기반으로 하면서도, 유연한 확장성과 사용자 정의 기능을 강점으로 갖고.. 2025. 4. 8.
Oracle Database란 무엇인가 – 기업용 데이터베이스의 대표주자 | 오라클 아키텍쳐 들어가며Oracle Database(이하 오라클 DB)는 전 세계에서 가장 널리 사용되는 상용 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다.금융, 제조, 공공기관, 통신, 유통 등 대기업과 대규모 시스템에서 주로 사용되며, 고성능, 고가용성, 뛰어난 보안성과 확장성을 강점으로 갖춘 엔터프라이즈 데이터베이스 솔루션입니다.이 글에서는 오라클 DB가 어떤 특징을 갖고 있으며, 다른 RDBMS와 어떤 차별점을 가지는지 개념적으로 살펴보면서 오라클 카테고리의 시작을 열어보겠습니다.Oracle Database란?Oracle Database는 Oracle Corporation에서 개발한 상용 RDBMS 제품군으로, SQL 표준을 바탕으로 하되 오라클 고유의 기능(PL/SQL, RAC, Flashback.. 2025. 4. 8.
MySQL이란 무엇인가 – 가장 널리 쓰이는 오픈소스 데이터베이스의 시작 들어가며MySQL은 오픈소스 관계형 데이터베이스(RDBMS) 중에서 가장 널리 사용되는 시스템 중 하나입니다.웹 애플리케이션, ERP 시스템, 빅데이터 처리 플랫폼 등 다양한 분야에서 활용되며, PHP와 함께 등장해 LAMP(Linux, Apache, MySQL, PHP)의 핵심 구성 요소로 오랫동안 사랑받아왔습니다.이 글에서는 MySQL의 기본 개념과 구조, 특징을 소개하고 앞으로 이 블로그에서 다룰 MySQL 관련 주제들을 안내하면서 카테고리의 시작을 열어보겠습니다.MySQL이란?MySQL은 Oracle이 관리하는 **오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)**입니다.SQL(Structured Query Language)을 사용하여 데이터를 저장, 조회, 수정, 삭제할 수 있으며, 테이블.. 2025. 4. 8.
📘 읽기전용 DB분산구조는 왜필요한가(Read Replication) – Primary / Replica 구조 | 읽기 부하 분산 | 실시간 복제 이슈 ✅ 왜 읽기 전용 분산 구조가 필요한가? Replica - "읽기 성능"을 위한 분산 구조서비스 트래픽이 늘어나면 DB에 큰 부하가 발생합니다. 그런데, 예시로 쇼핑몰 서비스에서 트래픽의 90% 이상은 상품 조회, 카테고리, 리뷰 보기 와 같은 SELECT 요청이고, 그 나머지가 장바구니 담기, 결제, 후기 작성 등의 INSERT / UPDATE 요청입니다. 트래픽이 증가하게 되면 한 개의 DB서버에서는  모든 SELECT가 Primary DB로 몰리게 되고, 결제, 재고 감소 등의 요청은 밀려서 지연이 되게 됩니다. 그러면 DB CPU 100%, 슬로우 쿼리 증가, 전체 서비스가 느려지고 "상품은 잘 보이는데 결제가 안 돼요" 같은 문제 발생하게 됩니다.이처럼 **SELECT 요청(읽기)**이 많을 경.. 2025. 4. 7.
🔐 트랜잭션 격리 수준과 세션 관계 – 성능과 일관성의 줄다리기 | READ COMMITTED, SERIALIZABLE | 트랜잭션과 세션/커넥션의 생명 주기 관계 ✅ 왜 트랜잭션 격리 수준이 중요한가?트랜잭션은 데이터베이스의 핵심 개념입니다. 트랜잭션의 경리수준은 **“같은 데이터를 동시에 여러 사용자가 다룰 때, 어떤 현상을 허용할 것인가?”**에 대한 설정입니다. 트랜잭션의 격리 수준(Isolation Level) 이 높을 수록 데이터 무결성은 올라가지만, 성능을 떨어집니다. 즉, 읽는 데이터의 정확도 크고, 락이 걸리는 범위 크고, 세션과 커넥션의 유지 시간이 클수록 성능이 떨어지게 됩니다.특히 실무에서는 성능과 데이터 무결성 사이의 균형을 어떻게 맞추느냐가 핵심입니다.🔍 격리 수준(Isolation Level) 한눈에 보기  격리 수준 Dirty Read잘못된 정보를 볼수있는가 Non-repeatable Read Phantom Read READ UNCO.. 2025. 4. 6.
🩺 오라클 기준 DB 세션 모니터링 방법( v$session, v$process, v$sql ) | 세션정보 확인 추적 -> 문제세션 찾는 방법 -> 자동 모니터링 알람 설정 ✅ DB세션이란DB세션은 커넥션 풀에서 개별 커넥션이 유지하는 세션정보를 담은 커넥션 그 자체입니다. 즉, 커넥션 하나 = DB 세션 하나 🎯 DB내부 사용자의 상태, 작업공간 ( 아직 커밋되지 않은 변경 내용(트랜잭션)을 잠시 보관하고 실험하는 공간)애플리케이션이 DB에 접속하면, DB는 그 사용자에게 세션(Session) 이라는 공간을 만들어 줍니다.이 세션 안에서는 다음과 같은 것들을 따로 관리해요:세션 안에서 관리되는 정보설명트랜잭션 상태BEGIN, COMMIT, ROLLBACK 여부커서 정보SELECT 결과 위치 (페이징 같은 기능에 사용)변수/임시 테이블Oracle의 GLOBAL TEMPORARY TABLE 등언두(UNDO) 영역아직 커밋되지 않은 변경 정보 저장락 정보어떤 행이 락 걸렸는.. 2025. 4. 6.