분류 전체보기
-
[Mysql] 인덱스 생성 시 고려 사항 (테이블, 쿼리 예제)DB/Mysql 2025. 4. 15. 13:55
📌 MySQL 인덱스 생성 시 어떤 키로 만들어야 할까?아래와 같은 room_message 테이블과 쿼리가 있다고 가정해보겠습니다.CREATE TABLE room_message ( id BIGINT AUTO_INCREMENT PRIMARY KEY, create_date TIMESTAMP(6) NULL, update_date TIMESTAMP(6) NULL, delete_date TIMESTAMP(6) NULL, delete_flag BIT DEFAULT b'0' NULL, send_id BIGINT NULL, ..
-
외래키(FK) 의 제약조건에 대해 알아보자!DB/Mysql 2025. 4. 15. 11:23
🔍 외래 키 제약조건 예시 모음 (ON DELETE / ON UPDATE)아래는 다양한 FOREIGN KEY 제약 조건 조합과 그 작동 방식을 예시로 정리한 것입니다.✅ 예시 1: ON DELETE RESTRICT / ON UPDATE RESTRICT (기본값)FOREIGN KEY (dept_id) REFERENCES department(dept_id)ON DELETE RESTRICTON UPDATE RESTRICT 자식이 참조 중인 부모 row는 삭제/수정 불가 부서가 존재할 때는 해당 부서 직원 삭제 불가✅ 예시 2: ON DELETE CASCADE / ON UPDATE CASCADEFOREIGN KEY (dept_id) REFERENCES department(dept_id)ON DELETE C..
-
[Mysql] Transaction Row Lock 전파되는 경우?DB/Mysql 2025. 4. 15. 11:18
🔐 MySQL 트랜잭션과 외래키(FK) - Row Lock 전파되는 경우?MySQL에서 트랜잭션 중 Row Lock이 걸릴 때, 외래키로 연결된 다른 테이블에도 락이 전파될까?결론부터 말하면, 명시적으로 접근하지 않으면 자동으로 락이 전파되지 않는다.📌 기본 개념MySQL(InnoDB)은 행 단위 잠금(Row-level Locking)을 사용외래키(Foreign Key)로 연결되어 있어도, 관련 테이블의 row에 자동으로 락은 걸리지 않음CREATE TABLE parent ( id INT PRIMARY KEY);CREATE TABLE child ( id INT PRIMARY KEY, parent_id INT, FOREIGN KEY (parent_id) REFERENCES parent(id));..
-
HTTP란 무엇인가?Web 2025. 4. 15. 00:21
HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 전송하기 위한 규약(프로토콜)입니다. 간단히 말해서, 웹 브라우저와 웹 서버 간에 데이터를 주고받을 때 사용하는 규칙이라고 할 수 있습니다. HTTP는 클라이언트와 서버 간에 요청(request)과 응답(response)을 주고받는 방식으로 작동합니다. 예를 들어, 사용자가 웹사이트의 주소를 입력하면, 브라우저는 HTTP 요청을 서버로 보내고, 서버는 해당 요청에 대한 응답을 HTTP를 통해 반환합니다.1. HTTP의 기본 동작 원리 요청(Request): 클라이언트(웹 브라우저 등)는 웹 서버에 HTTP 요청을 보냅니다. 이 요청은 특정 URL(Uniform Resource Locator)에 대한 데이터를 요구하는 것입..
-
💡 인터넷이란? – 백엔드 개발자가 꼭 알아야 할 핵심 개념 정리Web 2025. 4. 15. 00:14
백엔드 개발을 공부하다 보면 "인터넷", "웹", "서버" 같은 용어를 수도 없이 접하게 됩니다.하지만 막상 "인터넷이 뭐야?"라고 물어보면 명확하게 설명하기 어려운 경우가 많습니다.이 글에서는 백엔드 개발에 꼭 필요한 수준에서, 인터넷이 어떤 구조로 동작하는지, 그리고 실제 웹 요청이 어떻게 처리되는지를 정리해보겠습니다.🌐 인터넷이란?인터넷은 전 세계의 컴퓨터와 네트워크가 서로 연결된 거대한 네트워크입니다.즉, 각기 다른 위치에 있는 컴퓨터들이 서로 데이터를 주고받을 수 있도록 만든 시스템이죠.📌 백엔드 개발자 입장에서 중요한 포인트는:- 내가 만든 서버도 이 인터넷이라는 공간 안에 있고,- 사용자의 브라우저도 인터넷을 통해 서버에 요청을 보내며,- 서버는 응답을 되돌려주는 구조라는 점입니다.⚙️ ..
-
Springboot Timezone(타임존) 에 대해 알아보자!Server/Spring Boot 2025. 4. 15. 00:01
시간은 모든 시스템에서 매우 중요한 요소입니다. 특히 서버와 클라이언트가 서로 다른 시간대를 사용할 경우, 정확한 시간 처리를 위해 타임존 개념과 변환 방법을 제대로 이해하는 것이 중요합니다. 이번 글에서는 KST(한국 표준시)와 UTC(세계 표준시)의 개념 비교부터 Spring Boot에서의 변환 예제까지 전부 정리해보겠습니다.🕒 KST vs UTC 구분 설명 UTC (Coordinated Universal Time) 전 세계 표준 시간. 한국 시간(KST)은 UTC보다 9시간 빠름 KST (Korea Standard Time) 한국 표준 시간 (UTC +09:00) 📌 예시:- UTC 기준: 2025-04-14 06:00:00- KST 기준: 2..
-
ContentType 을 알아보자! (multipart/form-data, application/json)Web 2025. 4. 14. 16:40
📦 multipart/form-data vs application/json 비교 항목 multipart/form-data application/json 주 용도 파일 업로드 (이미지, 문서 등)와 일반 폼 데이터 전송 JSON 형식의 구조화된 데이터 전송 데이터 포맷 각 필드가 boundary로 구분되어 전송됨 전체 요청 본문이 JSON 문자열로 구성됨 파일 전송 가능 여부 ✅ 가능 ❌ 불가능 사용되는 HTTP 메서드 POST POST, PUT, PATCH 서버 파싱 방법 ..
-
🔐 MySQL Lock 이해하기 – 데이터 일관성과 성능 관리를 위한 필수 개념DB/Mysql 2025. 4. 10. 16:32
MySQL과 같은 데이터베이스에서는 Lock(락)이 중요한 역할을 합니다. 락은 동시에 여러 사용자가 데이터를 읽거나 수정할 때 발생할 수 있는 충돌을 방지하며, 데이터 무결성과 일관성을 보장합니다. 이번 글에서는 MySQL의 Lock 개념을 쉽게 풀어 설명하고, 주요 락 종류와 실무에서 고려해야 할 점들을 알아보겠습니다.1. Lock이란 무엇인가?Lock은 데이터베이스에서 동시성 제어를 위해 사용되는 메커니즘입니다. 여러 사용자가 동일한 데이터에 동시에 접근할 때 발생할 수 있는 데이터 충돌이나 일관성 문제를 방지하기 위해 사용합니다. 쉽게 말해, 락은 “누가 언제 데이터를 읽거나 수정할 수 있는가”를 결정하는 규칙입니다.2. 왜 락이 필요한가? 데이터 무결성 보장: 여러 사용자가 동시에 데이터를 수..