컴퓨터 실행 내부 요소를 살펴볼 때 가장 먼저 접하게 되고 중요한 개념이 프로세스와 스레드이다. 오늘은 이 프로세스와 스레드 개념에 대해 알아보고, 어떻게 작동하는지, 나아가 멀티프로세스와 멀티스레드의 차이점에 대해서도 알아보자. 프로세스와 스레드의 개념 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 다시 말해서 프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다. 실제로는 이 스레드 단위로 스케줄링을 한다. 프로세스의 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드를)가지..
정규화란 데이터베이스 설계에서 테이블 간에 중복된 데이터를 허용하지 않고 무결성을 유지하기 위한 과정이다. 이는 데이터를 효과적으로 저장하고 검색하기 위해 테이블을 구조화하는 프로세스를 의미한다. 정규화는 관계형 데이터베이스에서 사용되며, 데이터의 중복을 최소화하고 각 테이블이 특정 종류의 종속성을 만족하는 데 목적을 둔다. 목적 최종 목적은 이상 현상 발생 가능성을 줄이는 것이다. 중복 최소화 데이터의 중복을 최소화하여 저장 공간을 절약하고 데이터 일관성을 유지한다. 데이터가 중복될 경우 수정이 필요할 때 여러 테이블에서 수정해야 하므로 문제가 될 수 있다. 데이터 일관성 유지 각 테이블이 특정 종류의 종속성을 갖도록 한다. 데이터의 논리적 일관성을 확보하고 변경 시 발생할 수 있는 이상 현상을 방지한..
트랜잭션이란 트랜잭션이란, 데이터베이스의 상태를 변환시키는 논리적 기능을 수행하기 위한 가장 최소한의 작업 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연상들을 의미한다. 즉, 쉽게 말하면 더이상 분할이 불가능한 업무처리의 단위이다. 하나의 작업을 위해 더이상 분할될 수 없는 명령들의 모음이자 한꺼번에 수행되어야 할 일련의 연산모음을 의미한다. 예를 들어, 은행 시스템에서 고객 A와 고객 B 간의 자금 이체를 수행하는 상황이다. A계좌에서의 출금과 B계좌로의 입금이 모두 성공적으로 이루어져야 이체 트랜잭션이 성공적으로 완료된다 → 원자성 이체 전에 각 계좌의 총 잔액이 일치하고, 이체 후에도 동일한 조건이 유지되어야 한다. → 일관성 다른 고객이 동시에 계좌를 조작하더라도, 각 트랜잭션은 서로에게 영향..
API란 API는 Application Programming Interface의 줄임말로, 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 인터페이스이다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있는데, 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다. API 문서에는 개발자가 요청과 응답을 구성하는 방법에 대한 정보가 들어있다. API 아키텍처는 일반적으로 클라이언트와 서버 측면에서 설명된다. 요청을 보내는 애플리케이션을 클라이언트라고 하고 응답을 보내는 애플리케이션을 서버라고 한다. API 유형 API는 크게 두 가지 유형으로 나뉜다. Web API: HTTP 프로토콜을 통해 웹 서비스 간에 통신하기 위한 API이다...
더보기 데이터 엔지니어로써 OLAP와 OLTP의 차이를 이해하고 이를 실무에서 효과적으로 활용할 수 있는 능력은 굉장히 중요하다고 생각한다. 따라서 글로 정리하며 OLAP와 OLTP의 차이를 깊이있게 파악하고 실제 업무에 적용하면 효율적인 데이터 관리 및 분석을 할 수 있을 거 같다. 데이터 처리 방식 기업은 데이터를 효과적으로 의사 결정에 활용하기 위해 여러 노력을 한다. 이를 위해 많은 조직이 OLTP(Online Transaction Processing)와 OLAP(Online Analytical Processing)라는 두 가지 중요한 데이터 처리 방식을 적절히 도입한다. 이번 글에서는 OLTP와 OLAP의 공통점을 살펴보고 각각의 특징과 차이점에 대해 알아보자. 공통점 먼저, 공통점부터 살펴보면..