개발을 하다보면 데이터베이스 서버에서 트랜잭션이라는 개념을 쉽게 마주하게 됩니다.트랜잭션은 개발을 편하게 해주는 기능이지만, 이를 주의 없이 사용했다간 더 큰 문제를 마주하게 되기 마련이지요.오늘은 그런 불상사를 미리 예방하는 차원에서 데이터베이스의 트랜잭션에 대해 알아보는 시간을 갖겠습니다! 트랜잭션은 무엇인가요?트랜잭션은 데이터베이스에서 수행되는 작업의 논리적 단위로, 하나 이상의 데이터베이스 연산(읽기, 쓰기, 수정, 삭제 등)을 포함합니다.트랜잭션을 사용하여서 데이터베이스의 일관성을 유지하고, 동시성 제어를 통해 여러 사용자가 동시에 데이터에 접근하더라도 데이터의 무결성을 보장할 수 있습니다. 예시를 들어볼까요? 은행에서 계좌 A에서 계좌 B로 돈을 이체하는 과정에서 데이터베이스에는 다음과 같은 ..
데이터 저장소의 개념은 계속해서 발전해오고 있습니다. 특히, 빅데이터의 발전에 따라 용도와 목적에 따른 데이터 저장소의 개념이 계속해서 새롭게 생겨나고 있는데요 저같이 백엔드 공부를 하고 있는 분들은 데이터베이스의 개념에만 익숙하실텐데요... (아니면 말구) 오늘은 대표적인 데이터 플랫폼인 데이터베이스 / 데이터 웨어하우스 / 데이터레이크에 대해서 알아보도록 하겠습니다. 데이터베이스 먼저, 데이터베이스란 사용자에게 트랜잭션 데이터를 저장, 회수할 수 있도록 하는 기술입니다. 트랜잭션이란 데이터를 안전하게 처리하는 기술 입니다. 간단한 예시를 통해 트랜잭션에 대해 이해해볼까요? 먼저 고객 A가 고객 B의 계좌로 100만원을 이체하려고 합니다. 이 과정에서 데이터베이스는 아래와 같은 트랜잭션이 실행됩니다. ..
안녕하세요, 지난번 발표에 이어서 또 다시 기술 세미나를 맡아 시작하게 되었습니다. 2024.02.02 - [Language/Java ☕️] - 자바의 가비지 컬렉션 자바의 가비지 컬렉션 안녕하세요, 이번에 Kernel 360 과정에 참여하게 되면서 기술 세미나를 맡아 준비하게 되었는데요. 거의 대부분의 팀들이 Java 와 Spring Framework 환경으로 프로젝트를 진행하고 있었습니다 (역시,, 자 stonehee99.tistory.com 특별히 지난번 가비지 컬렉션 발표에 이어서 또 다른 컬렉션에 대해 발표를 해보면 어떨까? 하는 생각에 (농담입니다) 객체지향에서 크루분들이 어려워하는 개념 중 하나인 일급 컬렉션에 대해 발표를 진행하기로 하였답니다. 일급 컬렉션(first-class-collec..
기존의 최대 공약수를 구하는 방법 public int getGreatestCommonDivisor(int num1, int num2) { int little = num1 b)에 대하여, a를 b로 나눈 나머지를 r이라고 하겠습니다. a = bq + r 로 나타낼 수 있습니다. (여기서 q는 몫을 나타냅니다) a와 b의 공약수..
오늘은 비동기 프로그래밍에 관해 함께 알아보는 시간을 갖도록 하겠습니다. 비동기 프로그래밍에 대해 잘 알기 위해서는 동기와 비동기의 차이를 알아야 합니다. 이 둘의 차이는 무엇일까요? 동기 vs 비동기 동기(Synchronous) 와 비동기(Asynchronous) 는 데이터 처리와 작업 실행 방식을 나타내는 용어입니다. 동기 먼저 동기 방식은 작업들이 순차적으로 진행됩니다. 즉, 한 작업이 완료되기 전에는 다음 작업이 시작되지 않습니다. 이 방식은 작업의 순서가 중요할 때 유용한 방식입니다. 예를 들어, 어떤 데이터를 먼저 처리하고 그 결과를 이용해서 다음 작업을 수행할 경우에 적합하겠죠? 하지만 이렇게 동기적으로 작업이 처리될 경우 전체 작업의 효율성이 떨어질 수 있습니다. 하나의 작업이 지연되면 전..
지난 번 작성된 글 제어의 역전(IOC) 이란? 에서 간단히 알아본 의존성 주입(Dependency Injection)이란 무엇인지 함께 알아보는 시간을 가지도록 하겠습니다! Dependency Injection이란? 의존성 주입(Dependency Injection)은 객체 지향 프로그래밍에서 사용되는 디자인 패턴입니다. 이 패턴은 코드의 결합도를 낮추고, 유연성과 재 사용성을 높이는 것입니다. 지난 게시글에서 알아봤던 것처럼, DI 패턴을 통해 제어의 역전이 일어나고, 이를 통해 코드의 재사용성 유연성이 향상되는 것이죠. 의존성 주입에 대해 알아보기 위해 먼저 의존성이 무엇인지 살펴보겠습니다. Dependency란? 의존성은 어떤 클래스가 제대로 작동하기 위해 필요한 다른 클래스나 컴포넌트를 말합니다..