NoSQL이란?
·
👶🏻 CS/Database
NoSQL이란?NoSQL은 Not Only SQL의 약자로 단순히 기존 관계형 DBMS가 갖고 있는 특성뿐만 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미한다. 관계형 데이터베이스가 테이블 간의 관계를 기반으로 데이터를 저장하는 방식과 달리, NoSQL은 빠르게 바뀌는 대량의 비정형 데이터를 처리하는 데 적합한 구조를 제공한다. 과거에는 회원 정보나 매출 기록처럼 일정한 형식과 구조를 가진 정형 데이터만 처리했기 때문에, RDBMS로 데이터를 쉽게 관리할 수 있었다. 그러나 문서, 이미지, 동영상 파일, SNS 데이터 등 고정된 형식이 없는 비정형 데이터가 많아지면서, 더 유연한 스키마를 제공하는 NoSQL이 필요하게 되었다.  NoSQL의 특징1. 비정형 데이터 저장NoSQL은 구조화되지 않은..
교착상태와 해결법
·
👶🏻 CS/Operating System
운영체제에서 발생할 수 있는 중요한 문제인 교착상태에 대해 알아보자! 교착상태란?교착상태란 두 개 이상의 프로세스가 서로의 자원을 기다리며 무한정 멈춰있는 상태를 말한다.예를 들어, 자동차 교차로에서 네 대의 자동차가 각각 서로의 길을 막으며 무한히 기다리는 상황을 상상해 보자.각 자동차는 다른 자동차가 지나가야만 자신이 움직일 수 있으므로, 모두가 멈춰 있게 되는 현상이 교착상태이다.  교착상태 발생의 필요충분조건교착상태는 다음의 네 가지 조건이 적용되었기 때문에 발생한 것이다.하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 1. 상호 배제(Mutual Exclusion)자원은 한 번에 한 프로세스만 사용할 수 있기 때문이다.ex) 한 칸에 한 명만 들어갈 수 있는 화장실은 상호배제를 잘 지킨 것..
[Java] 멘토링 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
Problem 💻현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니다.멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다.선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다.만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면, A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다.M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. Solution 💡1. 4중 for문 사용import java.util.Scanner;public class Main { public static void mai..
캐시
·
👶🏻 CS/Operating System
캐시란?캐시(Cache)는 우리가 자주 접하는 데이터를 더 빠르게 가져오기 위해 미리 준비해 놓는 비서 같은 존재이다.예를 들어, 당신이 서재에서 책을 읽고 있는데, 같은 책을 몇 번씩 꺼내보고 싶어 한다고 하자.책을 서재 구석에서 매번 꺼내오는 것은 시간이 오래 걸리겠지만, 자주 보는 책을 책상 위에 준비해둔다면 훨씬 빨리 볼 수 있을 것이다. 이 책상 위의 책이 바로 캐시다. 운영체제도 비슷한 고민을 한다. CPU는 매우 빠르게 작동하는 반면, 메인 메모리나 디스크에서 데이터를 가져오는 데는 시간이 걸린다.그래서 운영체제는 자주 쓰이는 데이터를 캐시에 저장해 두어, 필요할 때 신속하게 사용할 수 있도록 한다.이로 인해 시스템 성능이 비약적으로 향상된다. 정리하자면, 캐시란 자주 사용하는 데이터나 값을..
트랜잭션 - ACID 원칙, Problem 3가지
·
👶🏻 CS/Database
트랜잭션(Transaction)이란트랜잭션은 데이터베이스에서 하나의 작업 단위를 의미한다. 예제은행에서의 계좌이체를 생각해 보자. 만약 한 계좌에서 다른 계좌로 1,000원을 이체하는 작업은 다음과 같은 단계로 나눌 수 있다.A 계좌에서 1,000원을 출금한다.B 계좌에 1,000원을 입금한다.계좌이체라는 행위를 출금, 입금이라는 두 작업으로 이루어진다.이 두 작업은 반드시 함께 수행되어 둘 다 성공하거나 둘 다 실패해야 한다. 만약 A 계좌에서 돈이 빠져나갔는데 B 계좌에 입금되지 않는다면, 데이터가 불일치하게 되어 문제가 발생할 것이다.이 과정을 동시에 묶는 방법이 바로 트랜잭션이다. 트랜잭션의 주요 특성 (ACID)트랜잭션은 데이터의 무결성을 보장하기 위해 ACID 특성을 만족해야 한다.ACID는..
Concurrent(동시성) vs Parallel(병렬성)
·
👶🏻 CS/Operating System
CPU와 코어CPU는 컴퓨터의 중심에서 명령어를 메모리에서 가져와 해석하고 실행하는 반도체 유닛이다.하나의 CPU는 여러 개의 코어를 가질 수 있으며, 이러한 코어들은 CPU가 동시에 여러 작업을 효율적으로 수행할 수 있도록 해준다. 컴퓨터 사양을 보면 "4코어 8스레드"라는 표현을 자주 볼 수 있다.4코어란 CPU에 물리적 코어가 4개 있다는 의미다. 각 코어는 독립적으로 작업을 수행할 수 있는 단위다.8스레드란 논리적 코어가 8개라는 의미다. 이는 하이퍼스레딩(Hyper-Threading) 기술 덕분에 하나의 물리적 코어가 동시에 2개의 스레드를 실행할 수 있다는 뜻이다.  하이퍼스레딩 (Hyper-Threading)하이퍼스레딩은 인텔(Intel)에서 개발한 기술로, 물리적 코어 하나가 두 개의 스레..