분류 전체보기 58

Lock 총 정리2 - 낙관적 락, 비관적 락, 데드락, 분산락

저번 글에서는 기본적인 락 개념 & DB 내부 락 구조 에 대해서 알아보았는데요  이번에는 실질적으로 사용되는 락들인 낙관적 락, 비관적 락, 분산락, 데드락 에 대해서 알아보도록 하겠습니다 ! 1-1. 낙관적 락낙관적 락은 이름에서 알 수 있듯이 충돌이 발생하지 않는다고 낙관적으로 가정하는 락 방식 입니다.DB 가 제공하는 락 기능이 아니라, 애플리케이션 레벨에서 버전 관리 기능을 통해 충돌을 감지하고 처리합니다트랜잭션을 커밋하는 시점에 충돌 여부를 확인하므로, 최종 업데이트 과정에서만 락을 점유하게 됩니다이를 통해 락 점유 시간을 최소화하고, 동시성을 높일 수 있습니다설명을 통해서는 바로 이해가 어렵기 때문에 실제 예시를 들어보도록 하겠습니다  선착순으로 티켓을 예매하려는 상황에서 두 사람 (A, ..

Lock 총 정리1 - 기본적인 락 개념 & DB 내부 락 구조

1. Lock 이란 ? Lock 이란 무엇일까요 ? Lock 은 영어로 "잠그다, 잠가 두다" 라는 뜻을 가지고 있습니다. 🔐 이를 DB 에 적용해보면Lock 은 트랜잭션이 완벽하게 끝날 때까지 다른 요청이 해당 데이터에 접근하지 못하도록 막는 기능입니다.이를 통해 트랜잭션 처리의 순차성을 보장하고, 데이터의 일관성을 유지할 수 있습니다.또한, Lock 은 DB 가 처리하는 가장 작은 단위입니다. 2-1. Lock 의 종류 Lock 은 적용 요소와 적용되는 상황에 따라서 여러가지로 분류 할 수 있습니다. 적용 요소에 다른 분류 : Lock 이 어떤 방식으로 데이터를 잠그는지에 따라 다음과 같이 나뉩니다Shared Lock (S Lock, 공유 락) - 여러 트랜잭션이 동시에 읽을 수 있지만, 쓰기는 불..

[백준] 1699번 제곱수의 합

https://www.acmicpc.net/problem/1699📌 문제📌 입력첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000) 📌 출력주어진 자연수를 제곱수의 합으로 나타낼 때에 그 제곱수 항의 최소 개수를 출력한다. 📌 풀이 방식 해결 방법은 찾는데 생각보다 오래 걸린 문제입니다 🥹 (1) 제곱수들의 배열을 만들기 (2) 각 숫자 n 에 대해 가장 적은 제곱수의 합으로 표현하는 최소 개수를 구한다 * 현재 숫자 n 보다 적은 제곱수 중에서 dp[n-제곱수] + 1 이 가장 적은 경우로 업데이트(3) N 의 최소 제곱수 개수를 출력 📌 코드N = int(input())dp = [0 for _ in range(N + 1)]squares = []for n in range(1, N..

[백준] 31964번 반품 회수 (Python)

https://www.acmicpc.net/problem/1213📌 문제 📌 입력  📌 출력첫 번째 줄에 트럭이 모든 물건을 회수하고 다시 택배 회사로 돌아오기 위해 필요한 시간의 최솟값을 출력한다. 📌 풀이 방식 해당 문제에서 가장 중요한 키포인트는 트럭은 반드시 가장 먼 집에서부터 왕복으로 이동해야 한다는 것입니다 !!!!가장 먼 집이 예제와 같이 10 위치에 위치해있다면 트럭은 적어도 20 시간은 걸리게 됩니다 그렇기 때문에 1. 가장 거리가 먼 집을 기준으로 출발 2. 거리를 누적해서 더해준다. (이전 집 위치 - 이동한 집 위치) 3. 이동한 집에서 시간이 더 오래 걸린다면 해당 시간으로 업데이트4. 마지막 출발 지점으로 돌아옴의 프로세스로 구현했습니다📌 코드N = int(input()..

[백준] 1920번 수 찾기 (Python)

https://www.acmicpc.net/problem/1920📌 문제N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 📌 입력첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.  📌 출력M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.  📌 풀이 방식 이 문제의 가장 키 포인트는 정수의 범위가 큰..

헷갈리는 자바 변수 정리 - 클래스 변수 , 인스턴스 변수 , 지역 변수

0. 서론자바에서는 변수가 저장되는 위치와 생명 주기에 따라서 크게 클래스 변수인스턴스 변수 지역 변수 로 나뉩니다각각의 변수는 서로 다른 메모리 영역에 저장되며, 메모리 영역에 따라 변수의 생존 주기와 접근 방식이 달라지게 되는데요오늘은 헷갈리는 변수의 개념을 잡아보도록 하겠습니다1. 클래스 변수static 키워드를 사용해서 선언됩니다프로그램이 시작될 때 생성되고, 프로그램이 종료될 때까지 유지됩니다모든 객체 (인스턴스) 에서 공유됩니다메서드 영역에 저장됩니다 예시를 통해서 더욱 자세히 알아보도록 하겠습니다class Example { static int count = 0; // 클래스 변수 (정적 변수) public Example() { count++; // 객체가 생성될 때마다..

☕️ 자바 2025.02.05

새로워진 코드트리 한달간 사용 후기

이 포스팅은 코드트리 x 글또 블로그 챌린지 2기를 통해 코드트리 체험권을 받아 작성한 후기입니다 0. 서론개발자라면 피할 수 없는 것이 바로 코딩 테스트입니다 !하지만 코딩 테스트를 어떻게 준비해야 할지, 어떤 내용을 공부해야 할지 고민이 많을 수 밖에 없는데요혼자 공부하다 보면 내 실력이 어느 정도인지, 어떤 부분을 더 보완해야 하는지 모를 때도 많았습니다 🤯그래서 오늘은 코딩 테스트 학습 플랫폼, 코드트리(CodeTree) 를 직접 사용해보고 솔직한 사용 후기를 남겨보려고 합니다.  1. 코드 트리 설명https://www.codetree.ai/trail-info Code Tree | Learning to Code with ConfidenceA super-comprehensive, meticulo..

✒️ 글또 10기 2025.02.02

인덱스의 종류에 대해서 알아보자 !

0. 서론인덱스의 개념에 대해서 궁금하신 분은 이전글 (DB 인덱스 개념 정리: 저장 구조, 생성 과정, 동작 원리) 를 참고해주세요 ! (1) 인덱스란 ? (개념, 구조, 남발하면 안되는 이유)0. 배경DB를 다룰 때 인덱스의 중요성을 모르는 사람은 거의 없을 텐데요.이상적으로는 테이블 설계 초기 단계에서 인덱스를 설정하는 것이 가장 좋지만,실무에서는 코드를 배포한 후에야 "디비soyeon-devlog.tistory.com 인덱스를 분류할 때, 크게구조 기반 인덱스저장 방식 기반 인덱스로 나누어지는데요 각각의 분류에 속해있는 인덱스들에 대해서 지금부터 알아보도록 하겠습니다 ✌️1. 구조 기반 인덱스구조 기반 인덱스에는 정말 다양한 종류의 인덱스가 속해있는데요!이번 포스팅에서는 대표적인 몇 개의 인덱스를..

[책 리뷰] 개발자를 위한 커리어 관리 핸드북

한빛미디어의 후원으로 책을 받아 작성합니다. 0. 책 설명IT 업계에 종사하는 사람이라면 커리어 관리에 대한 고민이 항상 많을 것입니다.- 년차별로 커리어를 어떻게 관리해야 할까?- 상사나 동료와의 인간관계는 어떻게 만들어야 할까?- 업무 관리는 어떻게 해야 효율적일까?이 외에도 정말 다양한 궁금증을 가지고 있습니다. 저의 경우, 개발자로 일하면서 특히 년차별 커리어 관리에 대해서 가장 고민이 많았습니다.하지만 주변에 물어볼 사람도 없었고, 간혹 조언을 구한다고 해도 제 상황과 맞지 않아 답답함을 느끼곤 했는데요.이런 고민을 가진 분들에게 추천하고 싶은 책이 있습니다 ! 바로, 마이클 롭의 "개발자를 위한 커리어 관리 핸드북" 입니다. 부제로는 실리콘밸리 개발자의 소프트 스킬 노하우 인데요. 처음에는 "..

✒️ 글또 10기 2025.01.04

DB 인덱스 개념 정리: 저장 구조, 생성 과정, 동작 원리

0. 배경DB를 다룰 때 인덱스의 중요성을 모르는 사람은 거의 없을 텐데요.이상적으로는 테이블 설계 초기 단계에서 인덱스를 설정하는 것이 가장 좋습니다.하지만, 현실에서는 코드가 배포된 후에야"DB 부하가 너무 커졌네 ? ""조회 속도가 왜 이렇게 느리지"와 같은 문제가 발생한 후 뒤늦게 인덱스를 추가하는 경우가 많았습니다😅  특히, 인덱스를 추가해야 하는 이유와 내부 동작 원리를 정확히 이해하지 못하면성능 개선은 커녕 오히려 속도가 더 느려지는 경우도 발생합니다.  인덱스는 데이터베이스 성능을 좌우하는 핵심 요소입니다.하지만, 잘못 사용하면 오히려 성능을 악화시키는 양날의 검이 될 수도 있습니다. 오늘은 인덱스가 무엇인지, 어떻게 동작하는지에 대해서 알아보도록 하겠습니다 !1. 인덱스(INDEX) 란..