서론현대의 대규모 서비스와 클라우드 환경에서는 분산 시스템과 샤딩(Sharding) 기술이 필수적분산 시스템은 여러 대의 서버가 하나의 시스템처럼 협력하여 높은 확장성과 내결함성을 제공하며, 샤딩은 거대한 데이터를 여러 서버에 분산 저장하여 성능 개선과 관리 효율성을 높임분산 시스템 (Distributed Systems)정의여러 대의 노드(서버)가 네트워크를 통해 협력하여 단일 시스템처럼 동작하는 구조주요 특징확장성 (Scalability)노드 추가를 통해 성능과 용량을 확장 가능내결함성 (Fault Tolerance) 일부 노드 장애에도 전체 시스템은 정상 운영자원 공유 (Resource Sharing)분산된 자원(데이터, 컴퓨팅 파워)을 효율적으로 활용투명성 (Transparency)사용자 입장에서는..
데이터베이스의 개념정의전자적 시스템 내에서 데이터를 구조화하여 저장하고, 필요 시 효율적으로 검색 및 수정할 수 있도록 지원하는 소프트웨어 기반의 저장소구성 요소테이블(Table): 데이터를 행(Row)과 열(Column) 단위로 저장인덱스(Index): 빠른 검색을 위한 자료구조뷰(View): 특정 데이터를 가공하여 보여주는 가상 테이블프로시저(Procedure) / 함수(Function): 데이터 처리 로직을 캡슐화데이터베이스의 필요성대용량 데이터 관리조직 내 방대한 정보를 효율적으로 저장하고 처리할 수 있음데이터 무결성 및 일관성트랜잭션 관리와 제약 조건을 통해 데이터의 신뢰성을 보장보안 및 접근 제어사용자 권한 설정과 암호화를 통해 중요한 정보를 보호신속한 데이터 검색 및 수정인덱스와 최적화된 쿼..
B-tree(Balanced Tree)란?정의B-tree(균형 다진법 트리)는 대용량 데이터를 빠르게 검색, 삽입, 삭제할 수 있도록 설계된 자료구조주요 특징균형성모든 리프 노드가 동일한 깊이에 위치해 최악의 경우에도 O(log n)의 시간 복잡도를 유지다진 트리 구조한 노드가 여러 개의 자식 노드를 가질 수 있어, 한 번의 디스크 I/O로 많은 데이터를 읽어들일 수 있음키와 포인터각 내부 노드는 여러 개의 키와 자식 노드에 대한 포인터를 저장하며, 리프 노드는 실제 데이터(또는 데이터 레코드의 포인터)를 저장Fan-out한 노드에 저장할 수 있는 키의 수(또는 차수)가 높을수록 트리의 높이가 낮아지고, 결과적으로 디스크 접근 횟수가 줄어듬B+ tree란?정의B+ tree는 B-tree의 변형으로, 모든..
트랜잭션의 개요 및 필요성트랜잭션(Transaction)은 데이터베이스에서 하나의 작업 단위를 의미하며, 여러 SQL 문장이 하나의 논리적 단위로 묶여 실행이로 인해 작업이 전부 성공하거나 모두 실패(rollback)하도록 처리하여 데이터 무결성과 일관성을 유지할 수 있음필요성데이터 무결성 보장여러 작업이 모두 성공하거나 모두 실패하도록 처리하여 데이터 불일치를 방지일관성 유지 은행 계좌 이체, 주문 처리 등 여러 작업이 동시에 수행될 때 중간 상태로 인한 오류를 막음오류 복구 작업 도중 예외 발생 시 전체 트랜잭션을 롤백하여 데이터베이스를 안정적인 상태로 복원할 수 있음ACID 원칙과 트랜잭션 제어ACID 원칙Atomicity (원자성)트랜잭션 내 모든 작업은 하나의 단위로 처리되어, 일부만 실행되는 ..
SQL의 이해와 필요성SQL(Structured Query Language)은 관계형 데이터베이스와 소통하기 위한 표준 언어기본적인 데이터 조회, 입력, 수정, 삭제(CRUD) 작업뿐 아니라 JOIN, 서브쿼리, 그룹핑, 정렬 등의 기능을 통해 복잡한 데이터 처리 및 분석을 지원또한, 인덱스와 성능 최적화 기법, 고급 기능(윈도우 함수, 뷰, 저장 프로시저, 트리거 등)을 적절히 활용하면 대규모 시스템에서도 안정적이고 효율적인 데이터 관리를 할 수 있음기본 CRUD 명령어SELECT정의 - 데이터베이스 테이블에서 원하는 데이터를 조회예시 코드-- 모든 컬럼 조회SELECT * FROM Employees;-- 특정 컬럼과 조건을 통한 조회SELECT EmployeeID, FirstName, LastName..
데이터 모델링의 필요성효과적인 데이터 모델링 및 설계는 소프트웨어 개발의 성공적인 기반을 마련잘 설계된 데이터 모델은 시스템의 확장성, 유지보수성, 성능에 큰 영향을 미치며, 오류를 최소화하고 개발 및 운영 비용을 절감할 수 있게 도와줌실무 적용 사례전자상거래 시스템: 상품, 주문, 사용자 정보를 체계적으로 관리하기 위해 ERD를 기반으로 테이블 간의 관계를 명확히 설계하고 정규화를 적용하여 데이터 무결성을 보장금융 시스템: 트랜잭션 처리와 복잡한 관계를 가진 데이터를 효율적으로 처리하기 위해 정교한 데이터 모델과 스키마 설계가 요구데이터 모델링(Data Modeling)정의현실 세계의 데이터를 추상화하여 엔티티(Entity), 속성(Attribute), 관계(Relationship)로 표현하는 작업예를..
- Total
- Today
- Yesterday
- CPU 스케줄링
- k8
- 우선순위 큐
- 자료구조
- 분할 정복
- Spring Boot
- i/o모델
- MSA
- 우테코
- Java
- 그리디 알고리즘
- restful api
- B+Tree
- 탐색 알고리즘
- HTTP
- 백트래킹
- Spring
- 스프링
- 해시 테이블
- 자바
- db
- 우아한 테크코스
- devops
- CS
- 운영체제
- 프리코스
- 데이터베이스
- 동적 프로그래밍
- TRIE
- 알고리즘
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |