데이터와 정보 데이터 데이터는 현실 세계에서 사건이나 사물의 특징을 관할하거나 측정하여 기술하는 가공되지 않은 사실이나 값을 의미한다. 정보 정보란 의미있고 쓸모 있는 내용으로 가공하여 체계적으로 조직한 데이터를 의미한다. 데이터베이스 데이터 베이스란 어떤 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고 동시에 접근하여 사용할 수 있도록 ...
아키텍처 시스템을 만들기 위한 물리 레벨의 조합이란 의미로 사용되며 구체적으로는 어떤 기능을 가진 서버를 준비하고 어떠한 저장소나 네트워크 기기와 조합해서 시스템 전체를 만드는 즉 하드웨어와 미들웨어의 구성을 가리킨다. 그리고 이 구성을 시스템이 완수해야 할 목적과 비교하면서 결정해 가는 것을 아키텍처 설계라고 한다. DB의 아키텍처 - 역사와 개요 S...
앞에서 설명한 Web 3계층에서 모든 문제가 해결되면 좋겠지만, Stand-alone에 문제 중 가용성이 낮고 확장성이 부족한 문제는 해결하지 못했다.고품질(소수전략) - 시스템을 구성하는 각 컴포넌트의 신뢰성을 높여 장애 발생률을 낮게 억제해서 가용성을 높인다.저품질
원자성(atomicity)은 하나의 트랜잭션이 더 이상 작게 쪼갤 수 없는 최소한의 업무 단위이다. 트랜잭션이 데이터베이스에 모두 반영되던지, 아니면 전혀 반영되지 않아야 하며 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장하는 것으로 즉, All or Nothi
정규화 DB설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 하며 정규화된 결과를 정규형이라고 한다. 정규화의 장점 DB변경시 이상현상을 제거할 수 있다. 정규화된 DB 구조에서 새로운 데이터 형의 추가로 인한 확장 시, 그 구조에 대한 변경을 최소
어느 특정 테이블에 조건을 걸어 데이터를 조회하는 경우 모든 로우에 조건을 대입하는 full scan(=table scan)방식으로 찾아야 하고, 이러한 경우에 시간복잡도는 O(N)이다.하미만 그 조건 컬럼에 인덱스가 걸려있고, 그 인덱스가 B-tree 기반의 인덱스라
한 트랜잭션의 변경된 내용을 COMMIT이나 ROLLBACK과 상관 없이 다른 트랜잭션에서 읽을 수 있는 격리수준교착 상태에 빠질 위험이 적어 성능이 빠르고 우수하다.데이터 정합성에 대한 문제가 발생한다.COMMIT이 완료된 데이터만 조회 가능한 격리수준다른 트랜잭션에
먼저 레디스를 알아보자면 레디스는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다.데이터를 저장하고 관리하는 데이터베이스가 존재하는데 인메모리 데이
이번에는 데이터베이스의 파티셔닝과 샤딩에 대해서 학습한 내용을 정리해보겠습니다. 파티셔닝과 샤딩에 대해서 '그냥 테이블을 나누는거 아니야?' 정도로만 알고있었지만 이번 기회에 자세하게 학습해보았습니다.앞서 말했듯이 파티셔닝과 샤딩을 단순명료하게만 설명하면 테이블을 나누
최근에 프로젝트를 진행하면서 동시성 문제를 발견했었고 이를 해결하기 위해 JPA의 낙관적 락을 적용한 경험이 있습니다. 이번 시간에는 JPA에서 제공하는 낙관적 락과 비관적 락에 대해서 자세히 학습해보았습니다.데이터베이스를 활용하여 데이터를 관리할 때 다양한 상황에서
이번 글에서는 최근에 개발하고 있는 기능에서 경험한 쿼리최적화를 정리해보겠습니다. 해당 기능은 최근 한달 게시글 중 좋아요 수가 높은 순으로 상위 100개의 게시글을 가져오는 기능입니다. 기존 구현 방식은 서브쿼리를 활용한 방식이었습니다.각 테이블의 컬럼 및 인덱스는