에스제이

반응형

★ 인기글 ★

[MYSQL] Deadlock found when trying to get lock 원인 및 해결방안

MySQL Deadlock 오류인 **"Deadlock found when trying to get lock; try restarting transaction"**는 두 개 이상의 트랜잭션이 서로 자원을 점유하고 동시에 다른 트랜잭션에서 필요한 자원을 요청할 때 발생합니다. 이런 상황에서 MySQL은 교착 상태(Deadlock)를 감지하고, 트랜잭션 중 하나를 강제로 중단하여 다른 트랜잭션이 완료될 수 있도록 합니다. 1. Deadlock 오류의 주요 원인1.1 잠금 순서 불일치 - 두 트랜잭션이 동일한 테이블에서 다른 순서로 레코드에 접근하여 교착 상태를 초래합니다 - 예: 트랜잭션 A가 Row 1 → Row 2를 잠그고, 트랜잭션 B가 Row 2 → Row 1을 잠글 때 발생. 1.2 트랜잭션이 너무..
Error & Fix
2024.12.05

[MYSQL] 접속에러 (10061/2003) 원인 및 해결방법

MySQL 오류 **"Can't connect to MySQL server on 'localhost' (10061/2003)"**는 클라이언트가 MySQL 서버와 연결을 시도했으나 실패했음을 의미합니다. 이 문제는 서버가 실행되지 않거나 네트워크 또는 설정 문제로 인해 발생합니다. 아래에서 원인과 해결 방법을 상세히 설명합니다. 1. 오류의 주요 원인1.1 MySQL 서버가 실행되지 않음 - MySQL 서버 데몬이 실행되지 않은 상태에서 클라이언트가 연결을 시도하는 경우 발생합니다. 1.2 잘못된 포트 또는 호스트 설정 - MySQL 서버가 기본 포트(3306)가 아닌 다른 포트에서 실행 중일 수 있습니다. - 클라이언트가 잘못된 IP 주소나 호스트명을 사용해 접속을 시도하는 경우에도 발생합니다. 1.3..
Error & Fix
2024.12.04

[MYSQL] InnoDB VS MyISAM 차이점 비교 총정리

MySQL의 데이터베이스 엔진 중 가장 널리 사용되는 두 가지는 InnoDB와 MyISAM입니다. 이들은 각각의 설계 철학과 기능에 따라 성능, 안정성, 기능에서 차이를 보이며, 특정 사용 사례에 따라 장단점이 있습니다. 아래에서 InnoDB와 MyISAM의 주요 차이점을 상세히 설명합니다. 1. InnoDB와 MyISAM 개요InnoDB: 트랜잭션과 데이터 무결성을 보장하며, 복잡한 쓰기 작업과 높은 동시성을 처리하기 위해 설계된 스토리지 엔진입니다. ACID 특성을 준수하며 외래 키를 지원합니다. MyISAM: 읽기 작업을 최적화한 단순한 구조의 스토리지 엔진으로, 트랜잭션을 지원하지 않고 외래 키를 제공하지 않지만, 빠른 조회와 낮은 리소스 사용량이 특징입니다. 2. InnoDB와 MyISAM 차이..
MYSQL
2024.12.03

[JAVA] 코드 소요시간 구하는 방법(시간측정)

Java에서 코드의 실행 시간을 측정하는 방법은 여러 가지가 있으며, 상황에 따라 적합한 방법을 선택할 수 있습니다. 아래는 다양한 케이스에 따른 실행 시간 측정 방법을 소개합니다. 1. System.nanoTime() 이용System.nanoTime()은 현재 JVM의 고해상도 시간(나노초 단위)을 제공합니다. 이는 코드의 정확한 실행 시간을 측정할 때 많이 사용됩니다.public class ExecutionTimeExample { public static void main(String[] args) { long startTime = System.nanoTime(); // 실행할 코드 for (int i = 0; i  장점: 고해상도 시간 측정.단점: JVM ..
Java
2024.12.02

[MYSQL] 5.7과 8.0 차이점 및 업그레이드 시 고려사항 총정리

MySQL은 5.7에서 8.0으로 넘어오면서 성능, 기능, 보안, 안정성 등 다양한 측면에서 큰 변화가 있었습니다. 아래에서 두 버전을 비교하고 주요 차이점을 설명합니다. 1. 퍼포먼스 향상MySQL 8.0은 내부 아키텍처 최적화 및 새로운 기능 추가를 통해 성능이 크게 향상되었습니다.기능MySQL 5.7MySQL 8.0쿼리 성능기본적인 성능 최적화 제공JSON, 윈도우 함수, CTE 등 고급 쿼리 성능 개선병렬 쿼리 처리제한적 병렬 처리 지원병렬 처리 최적화로 대규모 데이터 성능 개선데이터 디렉션기본 수준의 데이터 압축 지원데이터 압축 및 처리 속도 향상 2. JSON 지원MySQL 8.0에서는 JSON 관련 기능이 더 강화되었습니다.기능MySQL 5.7MySQL 8.0JSON 데이터 타입지원 (초기 ..
MYSQL
2024.12.01

[thymeleaf] 타임리프 반복문 처리 (th:each) (foreach)

웹 개발에서 데이터를 반복적으로 출력해야 할 때 자주 사용되는 Thymeleaf의 th:each와 JSP의 forEach는 비슷한 기능을 수행하지만, 각각 고유한 특징과 장단점을 가지고 있습니다. 본 글에서는 두 문법의 차이점을 자세히 비교하고, 블로그 작성에 필요한 정보를 제공하여 독자들이 Thymeleaf와 JSP를 더욱 효과적으로 활용할 수 있도록 돕겠습니다. 1. 기본 문법 - th:each는 HTML 태그에 속성으로 추가됩니다. - 반복 대상은 Java 컬렉션(List, Set, Map 등) 또는 배열이어야 합니다.  2. 변수 스코프 - th:each에서 선언된 변수는 해당 반복 내에서만 사용 가능합니다. - 선언된 변수는 새로운 스코프를 형성하며, 반복 밖의 변수와 이름이 동일해도 겹치..
Thymeleaf
2024.11.30

[JAVA] 자바 람다식(Lambda) 사용법 파해치기

람다식(Lambda Expression)은 Java 8부터 도입된 함수형 프로그래밍 기능으로, 코드의 간결성과 가독성을 높이기 위한 문법입니다. 람다식은 익명 함수를 생성하는 방식으로, 기존 익명 클래스를 대체하거나 간단한 기능을 효율적으로 구현하는 데 사용됩니다 1. 람다식의 기본 구조람다식은 매개변수, 화살표(->), 그리고 실행될 코드 블록으로 구성됩니다.(parameters) -> { expression or block of code }(int x, int y) -> x + y // 두 숫자의 합을 반환() -> System.out.println("Hello, Lambda!") // 인자가 없는 경우(String s) -> s.toUpperCase() // 문자열을 대문자로 변환 2. 람다식..
카테고리 없음
2024.11.30

[JAVA] List, ArrayList, LinkedList 차이점 분석

LIST는 Java의 Collection Framework에 포함된 인터페이스로, 순서가 있는 데이터 집합을 다루는 데 사용됩니다. List는 중복 요소를 허용하며, 요소가 추가된 순서를 유지합니다. 이는 ArrayList, LinkedList, Vector 등의 구체적 구현 클래스에 의해 실질적으로 동작합니다. 1. List의 주요 특징순서 보장: 요소들이 추가된 순서대로 유지됩니다.중복 허용: 동일한 요소를 여러 번 추가할 수 있습니다.인덱스를 통한 접근: 배열처럼 0 기반 인덱스를 사용하여 요소에 접근 가능합니다.유연한 크기: 배열과 달리 크기가 동적으로 조정됩니다. 2. List 인터페이스의 주요 메서드메서드설명예제 코드add(E element)리스트의 끝에 요소를 추가.list.add("Java..
Java
2024.11.29

★ 인기글 ★

[MYSQL] Deadlock found when trying to get lock 원인 및 해결방안

MySQL Deadlock 오류인 **"Deadlock found when trying to get lock; try restarting transaction"**는 두 개 이상의 트랜잭션이 서로 자원을 점유하고 동시에 다른 트랜잭션에서 필요한 자원을 요청할 때 발생합니다. 이런 상황에서 MySQL은 교착 상태(Deadlock)를 감지하고, 트랜잭션 중 하나를 강제로 중단하여 다른 트랜잭션이 완료될 수 있도록 합니다. 1. Deadlock 오류의 주요 원인1.1 잠금 순서 불일치 - 두 트랜잭션이 동일한 테이블에서 다른 순서로 레코드에 접근하여 교착 상태를 초래합니다 - 예: 트랜잭션 A가 Row 1 → Row 2를 잠그고, 트랜잭션 B가 Row 2 → Row 1을 잠글 때 발생. 1.2 트랜잭션이 너무..
Error & Fix
2024.12.05

[MYSQL] 접속에러 (10061/2003) 원인 및 해결방법

MySQL 오류 **"Can't connect to MySQL server on 'localhost' (10061/2003)"**는 클라이언트가 MySQL 서버와 연결을 시도했으나 실패했음을 의미합니다. 이 문제는 서버가 실행되지 않거나 네트워크 또는 설정 문제로 인해 발생합니다. 아래에서 원인과 해결 방법을 상세히 설명합니다. 1. 오류의 주요 원인1.1 MySQL 서버가 실행되지 않음 - MySQL 서버 데몬이 실행되지 않은 상태에서 클라이언트가 연결을 시도하는 경우 발생합니다. 1.2 잘못된 포트 또는 호스트 설정 - MySQL 서버가 기본 포트(3306)가 아닌 다른 포트에서 실행 중일 수 있습니다. - 클라이언트가 잘못된 IP 주소나 호스트명을 사용해 접속을 시도하는 경우에도 발생합니다. 1.3..
Error & Fix
2024.12.04

[MYSQL] InnoDB VS MyISAM 차이점 비교 총정리

MySQL의 데이터베이스 엔진 중 가장 널리 사용되는 두 가지는 InnoDB와 MyISAM입니다. 이들은 각각의 설계 철학과 기능에 따라 성능, 안정성, 기능에서 차이를 보이며, 특정 사용 사례에 따라 장단점이 있습니다. 아래에서 InnoDB와 MyISAM의 주요 차이점을 상세히 설명합니다. 1. InnoDB와 MyISAM 개요InnoDB: 트랜잭션과 데이터 무결성을 보장하며, 복잡한 쓰기 작업과 높은 동시성을 처리하기 위해 설계된 스토리지 엔진입니다. ACID 특성을 준수하며 외래 키를 지원합니다. MyISAM: 읽기 작업을 최적화한 단순한 구조의 스토리지 엔진으로, 트랜잭션을 지원하지 않고 외래 키를 제공하지 않지만, 빠른 조회와 낮은 리소스 사용량이 특징입니다. 2. InnoDB와 MyISAM 차이..
MYSQL
2024.12.03
반응형