전체 글
-
NoSQL, Redis카테고리 없음 2025. 4. 10. 10:59
5주차 Database Study MongoDBNoSQL 데이터베이스 MongoDB의 특징스키마 리스 : 비정형 데이터를 저장샤딩 : 데이터를 여러 서버에 나누어 저장하는 수평 확장 방식, 쿼리(조회)시 통합된 결과를 제공비정형 데이터란 사전 정의된 규칙이 없는 데이터 MongoDB가 데이터를 저장하는 형식BJSON(Binary JSON) 형태로 데이터를 저장 BJSON과 JSON의 차이JSON은 텍스트 형태로 저장되는 반면, BJSON은 이진형식으로 이루어져있다이진형식으로 저장되어있어 BJSON은 MongoDB와 같은 툴을 이용해 읽어야함텍스트 형식으로 저장되는 JSON과 달리 BJSON은 공간 및 처리속도가 빠르다 MongoDB 구조Document : 데이터를 저장하는 최소 단위 = RowColle..
-
Scailability, Operations카테고리 없음 2025. 4. 2. 23:51
4주차 Database Study 데이터베이스 확장(Database Scaling) 데이터베이스의 성능을 향상시키는 방법, Scale-Up과 Scale-Out이 있음 데이터베이스에서의 Scale-Up / Scale-OutScale-Up : 데이터베이스의 기존 서버의 성능을 향상 ex) CPU, Memory, Disk 등장점 : 데이터베이스 하나로 처리하면되므로 유지보수 용이단점 : 비용이 올라갈수록 성능향상을 보장하지 않음 -> Scale Up을 통해 확장하는 방식은 한계가 존재 Scale Out : 데이터베이스의 개수를 늘리는 방법장점 : 확장성, 고가용성단점 : 유지보수가 힘듬, 여러 데이터베이스 간의 데이터일관성을 맞추기 위해서 노력 샤딩(Sharding)데이터를 나누어 여러 서버에 분산..
-
Recovery, Internal, Performance카테고리 없음 2025. 3. 27. 23:20
3주차 Database Study 데이터베이스 회복(Recovery)데이터베이스에 장애가 발생했을 때 데이터베이스를 원복하는 것데이터베이스에 장애가 발생하면 그 사이에 작업된 데이터들에 모순이 생기거나 혹은 기존 데이터가 소실될 수 있음 = 데이터베이스의 일관성이 깨지게됨 Write-Ahead Logging(WAL)데이터베이스에 연산을 수행할 때 변경 내용을 로깅하는 방식데이터베이스에 장애가 발생하게 되면 로그를 참조하여 데이터베이스를 복구 트랜잭션 로그Redo 로그: 장애발생시, 변경사항을 재실행하기 위한 로그 = 어떻게 복원할까?Undo 로그: 롤백이나 장애발생시, 이전 상태로 되돌리기 위한 로그 = 어떻게 롤백할까? 이런 데이터가 있다고 가정하면USERS(ID=1, NAME=’Bye’)//사용..
-
인덱스카테고리 없음 2025. 3. 20. 01:29
2주차 Database Study 인덱스테이블 내에서 검색속도를 향상시키는 자료구조특정 컬럼에 대한 검색, 정렬 속도를 빠르게 수행특정 값이나 범위 검색시 유용 WHERE, BETWEEN, ORDER BY, JOIN할때도 유용 B-Tree 인덱스, Hash 인덱스B-Tree를 통해 데이터를 정렬하여 저장 → 정렬과 범위 검색에 유용 : O(logN)데이터를 해시값으로 저장 → 정확히 일치하는 값을 찾는데 최적 : O(1) 인덱스를 사용할 때 장/단점검색속도 향상앞서 말한대로 특정 값이나 범위 검색시 유용하다는 장점 저장공간 필요INT 4byte, VARCHAR는 데이터의 크기만큼 차지한다고함 인덱스 갱신쓰기 작업(INSERT/UPDATE/DELETE) 수행시, 인덱스를 재구성하는 인덱스 갱신이 일어남..
-
트랜잭션카테고리 없음 2025. 3. 20. 00:48
2주차 Database Study 데이터 정합성 : 데이터가 서로 모순이 없이 일관되게 일치해야함 ex) A가 변경되면 B도 똑같이 변경되어야함데이터 무결성 : 데이터의 값이 정확해야함 ex) 제약조건을 위반한 값이 있으면 안된다 트랜잭션데이터베이스에서 일련의 작업을 하나로 묶어서 처리하는 것 트랜잭션은 일련의 작업에 대한 데이터 정합성을 보장해준다. 작업 수행 도중 실패하게되면 모든 데이터가 이전 상태로 돌아간다 → 데이터 정합성 보장 = 데이터에 모순이 없음 트랜잭션의 특성 : ACIDAtomicity (원자성)트랜잭션 내 모든 작업이 하나로 처리되어야함ALL 성공 or ALL 실패 Consistency (일관성)트랜잭션 시작/종료의 데이터베이스 상태는 일관되어야함데이터의 규칙이나 제약조건을 위반..
-
데이터베이스 개요카테고리 없음 2025. 3. 13. 12:28
1주차 Database Study 데이터베이스데이터를 체계적으로 저장하고 관리하는 시스템 데이터베이스의 특징중복 최소화 : 데이터의 중복을 최소화하여 저장데이터 일관성 : 불일치성을 방지데이터 보안 : 접근 제어, 인증, 암호화 등의 방법을 이용하여 보안을 유지데이터 독립성 : 데이터의 표현 방법이나 저장 위치가 변하더라도 응용 프로그램에 영향 X 파일시스템과 데이터베이스중복된 내용이 있을 수 있음파일시스템은 데이터 처리 및 검색이 어려움파일의 관계를 지정할 수 없음 DBMS데이터베이스를 운영하고 관리하는 소프트웨어를 의미ex) MySQL, Oracle, SQL Server DBMS의 특징데이터 조작 : 데이터를 조회하고 수정/삭제 가능동시성 제어 : 여러 사용자가 동시에 데이터베이스에 접근 가능보안 :..
-
백준 1931번 회의실 배정 JAVA카테고리 없음 2025. 3. 3. 17:42
https://www.acmicpc.net/problem/1931 요구사항 정의N 회의가 겹치지 않게 회의의 최대 개수회의 시작시간 = 종료 시간인 경우 존재 풀이방법처음에 풀고 아이디어가 떠오르지 않아 풀이를 본 문제이다. 그리디 방식으로 문제를 풀려고 하면 다음과 같이 풀것같다. 1. "시작 시간"이 작은 순으로 먼저 세기 : 조건에 맞지않다. 0-12와 같이 끝 시간이 매우 긴 회의가 먼저 나올 수 있다. 2. "종료 시간"이 가장 작은 순으로 먼저 세기 : 가능성 존재3. "시작-종료 시간의 차이"가 가장 작은 순으로 먼저 세기 : 가능성 존재, 하지만 구현 난이도가 높을 것으로 예상. 2번 방법으로 구현한다고 할 때 생각해야하는 엣지 케이스는 회의 시간시작 = 종료 시간인 경우이다. 단순히 종료..
-
백준 1283번 단축키 지정 JAVA카테고리 없음 2025. 2. 26. 12:00
https://www.acmicpc.net/problem/1283 요구사항 정의N개의 옵션, 하나의 옵션에는 여러 개의 단어 존재지정된 단축키를 제외하고 하나씩 단축키 지정단축키 지정하는 법단어의 첫번째단어 중 지정되지 않은 아무거나풀이checkFirst() : 단어 중 첫번째 체크checkAll() : 단어 중 지정되지 않은 아무거나 체크 사실 요구사항에 하라는대로만 하면 풀리는데케이스 하나를 체크하지 못해서 실수했다. checkAll() 함수에서는단어 중 아무거나 체크하는데, 이 과정에서 " "(white space)를 빼고 체크해야하는데 조건을 빠트린것. 구현 문제에서는 이런 실수를 조심해야할 것같다. 코드