전체 글

백엔드 개발자 토발자입니다.
개발 중 PessimisticLockException 이라는 에러를 만났다. 사실..아직 이 에러를 해결하려면 코드는 둘째치고 로직 자체를 다 다시 살펴보고 다시 짜야할 것 같아 아직..에러를 해결하지는 못했다..^^... 일단 아래는 내가 마주한 PessimisticLockException 에러다. 이 문제는..일단 차분히 해결해보도록 하고. 문득 PessimisticLockException 에러를 보면서 갑자기 '데드락(DeadLock)과는 다른 문제지?' 라는 생각이 떠올랐고 이 참에 정리해보고자 한다. 결론부터 말하자면, org.hibernate.PessimisticLockException와 데드락(Deadlock)은 다른 문제다. PessimisticLockException Pessimistic..
· Java
특정 구간의 코드 실행 시간을 알고 싶은 경우가 있다. 대부분 개발 중 어느 부분이 느린지 알아내야하는.. 경우다. 이 때 사용할 수 있는 Java 함수 하나 알아보자. Java에서 특정 구간의 코드 실행 시간이 얼마나 소요되는지 알고 싶을 때는 System.currentTimeMillis() 함수를 사용하면 된다. 이 함수는 현재 시간을 받아오는 System 함수로, 실행 시간을 측정하고 싶은 코드의 시작 구간과 종료 구간에 각각 해당 함수를 사용해 시간을 받아오고, 두 시간 사이의 차이를 계산하면 된다. 함수명에서 알 수 있듯이 ms 단위의 시간 차를 결과값으로 얻을 수 있다. 만약 값을 초(s) 단위로 변환하고 싶다면 System.currentTimeMillis()/1000 을 사용하면 되고, 초(..
알고리즘에 대해 정리하기에 앞서 Big-O 표기법에 대해 먼저 정리해보고자 한다. Big-O 표기법이란? 알고리즘에서 사용되는 Big-O 표기법은 알고리즘의 성능을 분석하고 비교하기 위해 사용되는 표기법으로 알고리즘의 시간 복잡도(실행 시간) 또는 공간 복잡도를 나타내는데 사용된다. Big-O 표기법은 주어진 입력 크기에 대한 알고리즘의 실행 시간 또는 공간 요구 사항을 표현한다. Big-O는 "O"라는 기호와 함께 표기되며, O 다음에는 함수가 나온다. 이 함수는 주어진 입력 크기에 대한 알고리즘의 실행 시간 또는 공간 복잡도를 나타낸다. Big-O 표기법에서는 주로 최악의 경우 시간 복잡도를 나타낸다. 즉, 입력 크기에 따라 알고리즘의 실행 시간이 어떻게 증가하는지, 그 중 '아무리 많이 걸려도 최대..
자료구조 중 해시 테이블(Hash Table)에 대해 알아보자. 해시 테이블(Hash Table)이란? 해시 테이블(Hash Table)은 효율적인 검색과 삽입 연산을 위해 설계된 자료구조다. 이는 키-값 쌍의 데이터를 저장하는데 사용되며, 각 키는 해시 함수를 통해 고유한 인덱스로 변환되어 배열 내에 저장된다. 기본 개념에 대해 살펴보면 다음과 같다. 해시 함수 : 해시 함수는 키를 해시 값으로 변환하는 함수다. 이 해시 값은 고유한 인덱스로 사용된다. 해시 충돌 : 서로 다른 키가 같은 해시 값을 가질 경우 해시 충돌이 발생한다. 이는 해시 함수가 충돌을 완전히 피하는 것이 불가능하기 때문에 주의해야 한다. 해시 테이블 : 해시 테이블은 배열로 구성되어 있으며, 각 배열 요소는 버킷 또는 슬롯이라고 ..
자료구조 중 트리(Tree)에 대해 정리해보자. 트리(Tree)란? 트리(Tree)는 계층적인 구조를 나타내는 비선형 자료구조로 그래프(Graph)의 특수한 형태이다. 트리는 노드(Node)와 간선(Edge)으로 이루어져 있다. 간단히 말해 트리는 하나의 루트 노드를 가지고 있으며, 각 노드는 0개 이상의 자식 노드를 가질 수 있다. 이러한 구조로 인해 데이터를 계층적으로 표현할 수 있다. 트리의 주요 개념과 용어는 다음과 같다. 노드(Node) : 트리의 기본 단위로 데이터를 저장하는 요소다. 각 노드는 부모 노드와 하위 노드(자식 노드)를 가질 수 있다. 루트(Root) : 트리의 맨 위에 있는 노드로 다른 모든 노드는 루트를 향해 이어진 경로를 가지고 있다. 트리는 하나의 루트 노드만을 가진다. 부..
토발자_Hflug
내가 개발자라니