Posts by Category

Database

트랜잭션의 동시성을 높이면 발생할 수 있는 문제와 이를 감지하는 방법

데이터베이스 시스템에서 여러 트랜잭션을 순서대로 처리하는 것은 바람직하지 않습니다. 단위 시간당 처리량이 낮을 뿐만 아니라 각 요청에 대한 응답 시간이 길어질 수도 있기 때문입니다. 따라서 데이터베이스 시스템은 여러 트랜잭션을 동시에 처리하는데요. 이때 발생할 수 있는 문제점에 대...

트랜잭션을 이해하기 위해 필요한 개념들

앞으로 여러 글을 통해 트랜잭션에 대해 정리하고자합니다. 본격적으로 알아보기 전에 트랜잭션이 무엇인지, 트랜잭션은 어떤 상태를 갖는지에 대해 알아봅시다.

이 세상 모든 Join 알고리즘에 대하여(다는 아님)

관계형 데이터베이스에서 제공하는 연산 중 가장 유용한 것은 조인(join) 연산이라고 해도 과언이 아닌데요. 아이러니하게도 조인은 시간이 매우 오래 걸리는 연산 중 하나입니다. 이번 글에서는 조인 연산의 알고리즘을 알아보며 어떤 식으로 연산 시간을 개선하는지 알아보도록 하겠습니다.

맨 위로 이동 ↑

Spring

@ExceptionHandler에서 의도치 않은 예외를 잡는다면?

Spring Web MVC 사용 중 예외가 발생했을 때 의도치 않은 정보가 클라이언트에게 제공될 수 있습니다. 이를 방지하기 위해서 예상 가능한 예외들은 미리 핸들링 하거나 @RestControllerAdvice로 핸들링하는데요. @RestControllerAdvice 로 지정한 ...

맨 위로 이동 ↑

Reflection

샘 알트먼의 기준으로 나를 돌아보자

유튜브에서 세계적인 기업의 CEO 인터뷰 영상을 자주 보는 편인데요. 이번에 OpenAI의 CEO인 샘 알트먼의 인터뷰를 보고 인상 깊었던 점과 느낀 점을 정리해보겠습니다.

2023년 하반기를 돌아보며

2023년은 나에게 새로운 시작을 알리는 한 해였다. 상상하지 못했던 것들을 경험하고 새로운 사람들을 만났다. 2024년을 잘 보내기 위해 2023년 하반기를 포함하여 2023년 전체를 솔직한 감정으로 돌아보려고 한다.

맨 위로 이동 ↑

Operating system

동시성과 병렬성은 어떻게 다를까?

얼마전 코루틴에 공부하다 동시성 프로그래밍에 대한 이야기가 나왔습니다. 운영체제를 공부할 때 동시성과 병렬성을 열심히 비교했던 것이 엊그제 같은데 기억이 희미해진 것 같아 이번 기회에 정리한 것을 기록하려고 합니다.

프로세스에 대한 기초 지식

프로세스에 대해 공부하다보면 항상 헷갈리는 것들이 있습니다. 또, 자주 등장하는 용어들도 있죠. 이번 글에서 한 번 다뤄보겠습니다.

맨 위로 이동 ↑

Java

클래스 로더와 Initializer block

이번 글에서는 Java에서 클래스 정보를 불러오는 방법을 알아보고 Initailizer block 문법도 알아보도록 하겠습니다.

맨 위로 이동 ↑

Kotlin

맨 위로 이동 ↑

Design pattern

맨 위로 이동 ↑

JPA

맨 위로 이동 ↑

System design

인스타그램에서 ID를 만드는 방법을 직접 구현해보자

인스타그램은 서비스 시작 1년만에 1400만 명의 이용자를 모았습니다. 놀라운 점은 단 3명의 엔지니어가 이를 운영했다는 것인데요. 이번 글에서는 인스타그램에서 사용한 ID 생성 전략에 대해 알아보고 JPA를 이용하여 실제로 구현해보겠습니다.

맨 위로 이동 ↑

Automation

Git hook을 이용한 Spotless 적용

팀 프로젝트를 시작할 때마다 마주하는 문제들은 항상 있지만 그 중에서 매번 나타나고 가장 신경 쓰이는 것은 코드 형식을 통일하는 방법이라고 생각합니다. 어떻게 하면 언제 어디서나 통일된 형식을 유지하고 환경 설정을 빠르게 할 수 있을까요? 이번 글에서 알아봅시다.

맨 위로 이동 ↑

Test

인수 테스트에서 body는 어떻게 작성해야할까?

열심히 작성한 인수 테스트가 사실 무의미한 테스트라면 어떨까요? 문제가 발생했을 때 테스트에서 감지할 수 있도록 유의미한 인수 테스트를 작성하는 방법에 대해 알아봅시다.

맨 위로 이동 ↑

Network

맨 위로 이동 ↑