에스제이

반응형

★ 인기글 ★

[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

★ 인기글 ★

[크롬/Chrome] 확장프로그램 없이 전체화면 캡쳐하는 방법

안녕하세요, 오늘은 크롬 확장 프로그램 없이 웹 페이지를 캡쳐하는 방법에 대해서 알아보도록 하겠습니다. 우선 인터넷에서 화면을 캡쳐하려면 흔히 많이들 알고 계시는 printScreen 단축키를 이용하여 캡처하죠, 1. 웹 페이지 화면 캡쳐하는 방법 Window : 윈도우키 + Shift + S Mac : Command + Shift + 3 2. 스크롤이 필요한 전체 페이지를 캡쳐하는 방법 스크롤이 필요한 웹 페이지 전체를 캡쳐하고 싶을 땐 어떻게 해야 할까요?? 방법은 간단합니다. 우선 크롬으로 캡쳐하고픈 페이지를 엽니다. 크롬으로 캡쳐하고 싶은 페이지를 연다. 캡쳐할 페이지에서 F12 키를 누른 후 개발자 도구를 연다. Ctrl + Shift + P 단축키를 누른 후 검색창에 capture를 입력 Ca..
인터넷 꿀팁
2022.05.05

[thymeleaf] if else 조건문 사용방법

안녕하세요, thymeleaf if else 사용방법에 대해서 알아보겠습니다. Thymeleaf if-else 사용방법 thymeleaf에서 if문은 태그 안에 [th:if]를 사용하여 처리합니다. 여자 남자 if-else문의 경우는 [th:if]와 [th:unless]를 사용합니다. 사용 예제는 다음과 같습니다. 사용 사용안함 또한, th:block 블록을 사용하여 div 영역 자체에 조건을 줄 수 있습니다. 사용 예제는 다음과 같습니다. 가능 합니다. 불가능 합니다. [thymeleaf] 타임리프 날짜 date format 변환 안녕하세요, 타임리프 날짜 포맷을 변환하는 방법에 대해서 알아보도록 하겠습니다. 개발하는 프로젝트나 구조에 따라서 날짜를 데이터베이스에 저장하는 방법이 각각 다를 것입니다. ..
Thymeleaf
2022.01.01

[JavaScript] window.open 새창으로 열기 사용법

안녕하세요, 오늘은 Javascript로 웹브라우저에서 새창으로 여는 방법에 대해서 알아보도록 하겠습니다. 웹페이지를 개발하다 보면 새 페이지로 팝업을 띄어야 하는 경우가 있습니다. 이때 사용하는 함수가 window 객체의 open()이라는 함수인데요, window.open 함수를 통해 새창으로 여는 방법에 대해서 알아봅시다. 1. window.open 문법 window.open(url, name, option); window.open('팝업주소', '팝업창이름', '팝업창옵션'); 2. window.open [ url ] 새로운 창에 보여질 주소로써 url 설정을 안 하면 (about:blank)가 뜹니다. 3. window.open [ name ] 새로운 창의 속성 또는 창의 위치 및 이름을 지정합니..
Jquery | Javascript
2022.05.03
반응형