본문 바로가기

Computer64

Database ACID 데이터베이스에서 ACID는 트랜잭션(데이터베이스에서의 작업 단위)이 안전하게 수행되는 것을 보장하기 위한 네 가지 기본적인 속성을 의미합니다. ACID는 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(지속성)의 약자입니다. 각각의 속성을 쉽게 이해할 수 있도록 예를 들어 설명하겠습니다. Atomicity (원자성) 원자성은 트랜잭션이 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 함을 의미합니다. 즉, 트랜잭션의 모든 작업이 성공적으로 완료되거나, 하나라도 실패하면 전체 트랜잭션이 취소되어야 합니다. 예시: 은행 계좌 이체를 생각해보세요. A 계좌에서 B 계좌로 돈을 이체할 때, 이 과정은 두 단계로 이루어집니다. (1) A 계좌에서 돈.. 2024. 2. 22.
쉽게 풀어쓴 튜링 기계와 튜링 불완전성 안녕하세요! 오늘은 컴퓨터 과학의 깊은 물에서 튀어나온, 들으면 귀에 익숙하지만 정확히 무엇인지 설명하기 어려운 개념인 '튜링 기계'와 '튜링 불완전성'에 대해 쉽고 재미있게 풀어보려고 합니다. 튜링 기계란 무엇일까요? '튜링 기계'는 1930년대에 영국의 수학자 앨런 튜링이 제안한 이론적인 계산 모델입니다. 컴퓨터가 발명되기 전, 사람들은 "이론적으로 컴퓨터가 할 수 있는 모든 계산"이 무엇인지 궁금해했습니다. 튜링 기계는 바로 이 질문에 답하기 위해 고안된 개념이죠. 간단히 말해, 튜링 기계는 무한히 긴 테이프, 테이프 위를 움직일 수 있는 헤드, 그리고 이 헤드가 수행할 수 있는 일련의 규칙(프로그램)으로 구성되어 있습니다. 테이프는 칸으로 나누어져 있고, 각 칸에는 기호(예: 0 또는 1)가 적혀.. 2024. 2. 22.
graceful shutdown spring: task: execution: pool: core-size: 150 max-size: 1000 queue-capacity: 1500 keep-alive: 60s shutdown: await-termination: true await-termination-period: 60s spring 을 이용한 service 운영시 graceful shutdown 이 제대로 동작하지 않는다면, 위의 옵션이 빠져있는지 확인해보자. ( pool 옵션 제외 ) 2023. 12. 28.
Vite ? Vite를 사용해야 하는 이유 {#why-vite} 이런 문제점이 있었어요 {#the-problems} 브라우저에서 ESM(ES Modules)을 지원하기 전까지, JavaScript 모듈화를 네이티브 레벨에서 진행할 수 없었습니다. 그래서 소스 모듈을 브라우저에서 실행할 수 있는 파일로 크롤링, 처리 및 연결하는 "번들링(Bundling)"이라는 해결 방법을 사용해야 했습니다. Webpack, Rollup 그리고 Parcel과 같은 도구는 이런 번들링 작업을 진행해줌으로써 프런트엔드 개발자의 생산성을 크게 향상시켰습니다. 하지만 애플리케이션이 점점 더 발전함에 따라 처리해야 하는 JavaScript 모듈의 개수도 극적으로 증가하고 있습니다. 심지어 수천 개의 모듈이 존재하는 것도 대규모 프로젝트에서는 .. 2023. 12. 27.
반응형