AI 시대의 생존 공식 - 언러닝, 리러닝, 뉴러닝
요즘 개발을 하다 보면 예전과는 확실히 다른 감각을 느끼게 된다. 예전에는 '얼마나 많이 알고 있느냐?'가 중요했다면, 지금은 '얼마나 빠르게 바뀌는 것을 따라가느냐?'가 더 중요해진 느낌이다. 특
요즘 개발을 하다 보면 예전과는 확실히 다른 감각을 느끼게 된다. 예전에는 '얼마나 많이 알고 있느냐?'가 중요했다면, 지금은 '얼마나 빠르게 바뀌는 것을 따라가느냐?'가 더 중요해진 느낌이다. 특
로컬에서는 잘 동작하던 코드가 서버에서는 동작하지 않거나, 같은 프로젝트인데도 개발자마다 실행 환경이 달라 문제가 발생하는 경우가 있다. 이러한 문제를 해결하기 위해 등장한 것이 바로 Docker이
ORM을 사용하다 보면 N+1 문제라는 말을 자주 듣게 된다. 특히 TypeORM, JPA, Sequelize, Prisma 같은 ORM을 사용해서 연관 관계 데이터를 조회할 때 자주 발생하는 성능
데이터베이스를 사용하다 보면 데이터가 적을 때는 별문제 없이 동작하던 쿼리가, 데이터가 많아지는 순간 갑자기 느려지는 상황을 자주 마주하게 된다. 예를 들어 회원 테이블에 데이터가 100개 있을 때
트랜잭션 격리 수준을 공부하다 보면 한 가지 의문이 생긴다.
앞선 글에서는 하나의 데이터베이스 내부에서 동시성을 제어하는 방법으로 낙관적 락과 비관적 락을 살펴보았다. 하지만 실제 서비스는 대부분 여러 서버로 구성된 분산 환경에서 동작한다. 이 경우 단순히
데이터베이스를 다루다 보면 동시에 여러 요청이 하나의 데이터를 수정하려는 상황을 자주 마주하게 된다. 이러한 상황에서 데이터의 정합성을 유지하기 위해 사용하는 개념이 바로 락(Lock) 이다. 락은
데이터베이스를 다루다 보면 한 번쯤 이런 상황을 마주하게 된다.