개요 이 포스팅은 DDD 시리즈의 세 번째 글입니다. 도메인 스토리텔링(DST)이란?과 도메인 주도 설계(DDD)란?을 먼저 읽는 것을 권장합니다. 이전 포스팅에서 도메인 주도 설계(DDD)의 핵심 개념과 전략적/전술적 설계를 다룸 DDD의 바운디드 컨텍스트는 마이크로서비스 아키텍처의 경계 설정 시 참고할 수 있는 논리적 단위 ...
[컴퓨터과학 개론] 4강 - 자료 구조
💡해당 게시글은 방송통신대학교 이관용, 정광식 교수님의 '컴퓨터과학 개론' 강의를 개인 공부 목적으로 메모하였습니다. 학습 개요 컴퓨터 프로그래밍을 시작하면서 가장 기본이 되는 내용인 자료 구조를 살펴봄 비선형 자료 구조인 트리와 그래프에 대해 알아보고, 그래프와 트리의 순회 방법과 표현 방법에 대해서 학습함 트리는 계층 구조...
데이터베이스 파티셔닝
개요 대용량 테이블을 더 작고 관리 가능한 단위로 분할하는 기법으로 쿼리 성능 향상과 데이터 관리 효율성을 제공함 중요 이 글은 단일 DB 인스턴스 내에서의 논리적 분할(파티셔닝)을 다루며 서버를 물리적으로 나누는 샤딩(Sharding)과는 구별됨 파티셔닝 하나의 DB 서버 내...
데이터베이스 스캔 방식
개요 데이터베이스에서 쿼리를 실행할 때 데이터를 읽는 다양한 방식을 이해하는 것이 성능 최적화에 중요함 쿼리 옵티마이저가 쿼리 조건과 인덱스 상태를 분석하여 최적의 스캔 방식을 선택함 참고 이 포스팅의 용어는 엔터프라이즈 DB(Oracle)에서 주로 사용되는 표준 용어를 기준으로 설명하지만 개념은 대부분의 RDBMS에...
데이터베이스 인덱스
개요 데이터베이스 인덱스는 테이블의 데이터 검색 속도를 향상시키기 위한 자료 구조임 책의 색인과 유사하게 특정 데이터를 빠르게 찾을 수 있도록 정렬된 구조를 제공함 인덱스는 읽기 성능을 향상시키지만 쓰기 성능에는 오버헤드를 발생시킴 인덱스의 기본 원리 인덱스가 필요한 이유 테이블 전체 스캔은 데이터가 많아질수록 비효율적임 ...
도메인 스토리텔링(DST)이란?
개요 이 포스팅은 DDD 시리즈의 첫 번째 글입니다. 도메인 스토리텔링(DST)이란? → 도메인 주도 설계(DDD)란? → DDD와 마이크로서비스 아키텍처 순서로 읽는 것을 권장합니다. 최근 팀이 더 나은 설계를 위해 도메인 주도 설계(DDD) 도입을 결정하고 R&D를 진행함 DDD 이론을 학습하면서 유비쿼터스 언어, 바운디...
데이터베이스 정규화
개요 데이터베이스 정규화는 데이터 중복을 최소화하고 무결성을 보장하기 위해 테이블을 체계적으로 구조화하는 과정임 정규화를 통해 데이터 이상 현상을 방지하고 데이터 일관성을 유지함 데이터 이상 현상 삽입 이상(Insertion Anomaly) 불필요한 데이터를 함께 삽입해야 하는 경우 ex) ...
데이터베이스 동시성 제어
개요 여러 트랜잭션이 동시에 데이터에 접근할 때 충돌을 방지하고 일관성을 보장하는 기법임 락 기반 동시성 제어 비관적 락(Pessimistic Locking) 충돌이 발생할 것으로 가정하고 데이터를 미리 잠금 트랜잭션이 데이터를 읽거나 수정하기 전에 락을 획득하여 다른 트랜잭션의 접근을 차단함 특징 데이터...
데이터베이스 트랜잭션과 ACID 속성
개요 트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위로 실행되는 일련의 연산들임 원자성을 보장하여 전체가 성공하거나 전체가 실패함 여러 사용자가 동시에 데이터에 접근할 때 데이터 일관성을 보장하는 핵심 메커니즘임 트랜잭션의 생명 주기 트랜잭션은 시작부터 종료까지 여러 상태를 거침 아래 다이어그램은 논리적인 트랜잭션 상태...
Cursor에서 MCP로 Jira/Confluence 연동하기
개요 Cursor IDE에서 MCP(Model Context Protocol) 서버를 통해 Jira와 Confluence를 직접 연동하는 방법을 소개함 Docker 기반 MCP 서버를 활용해 AI 어시스턴트가 Atlassian 도구에 접근할 수 있도록 설정함 프로젝트별 설정과 전역 설정 두 가지 방법을 모두 다룸 이 연동을 통해 Cu...