전체 글
-
🔗 MSA 환경에서의 통신 방식 비교 (HTTP API vs gRPC vs 메시지 큐)Server 2025. 4. 15. 14:46
🔗 MSA 환경에서의 통신 방식 비교 (HTTP vs gRPC vs 메시지 큐)MSA(Microservices Architecture) 환경에서는 마이크로서비스 간 통신을 위해 다양한 방법을 사용할 수 있습니다. 대표적으로 HTTP/REST, gRPC, Message Queue가 있으며, 각각의 특성과 장단점이 다릅니다.📦 1. HTTP/REST✅ 장점 범용성: 대부분의 언어나 프레임워크에서 지원 학습 곡선이 낮음: 익숙하고 문서화 용이 디버깅 쉬움: curl, Postman 등 도구 사용 가능 브라우저 접근 가능: 호출 및 테스트 용이❌ 단점 속도 느림: JSON은 텍스트 기반이라 오버헤드 큼 Payload 큼: 바이너리보다 크고 파싱 속도 느림 실시간 처리 부적합: 대기 시간 발생⚡ ..
-
[Springboot] 외부 HTTP 호출 Retry와 재처리 전략Server/Spring Boot 2025. 4. 15. 14:28
외부 API를 호출할 때는 항상 실패 가능성을 염두에 두고 안정적인 Retry 정책을 세워야 합니다. 이 글에서는 Spring Boot 환경에서 Resilience4j를 활용한 Retry와 재시도 큐(DB + 스케줄러) 전략을 함께 설명합니다.✅ 1. 어떤 요청에 Retry를 적용해야 할까? Retry 가능한 요청 GET, HEAD, OPTIONS 같은 멱등한 요청 HTTP 5xx 또는 네트워크 예외 (timeout 등) Retry 피해야 할 요청 POST, PUT, DELETE 같은 멱등하지 않은 요청 비즈니스 오류나 중복 처리 위험이 있는 경우 ✅ 2. 어떤 예외/상태코드에 Retry를 걸어야 할까? Retry 권장: Sock..
-
[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..