분류 전체보기
-
레디스(Redis)를 이용해서 락(lock)을 거는 이유?Server 2025. 5. 9. 16:42
많은 트래픽 환경에서 Redis를 이용한 중복 처리 방지 방법대규모 트래픽 환경에서 하나의 요청이 중복 실행되는 것을 방지하기 위해 분산 락(distributed lock)을 사용하는 것이 일반적입니다. 그 중 Redis를 활용한 락 처리 방식이 많이 사용됩니다.🔒 왜 Redis를 사용하는가? 빠른 속도: Redis는 인메모리 기반으로 작동하기 때문에 락 처리가 매우 빠릅니다. 분산 시스템에서의 활용성: 여러 서버에서 동시에 Redis에 접근하여 락을 확인할 수 있습니다. SETNX 명령어: Redis의 SETNX (SET if Not eXists)는 락을 구현하는 데 유용한 명령어입니다. TTL 설정 가능: 락에 만료 시간을 설정하여 데드락(deadlock)을 방지할 수 있습니다.✅ Redis..
-
MQTT 프로토콜 알아보자! (Http, gRPC 비교)Web 2025. 5. 2. 16:22
MQTT란 무엇인가? MQTT(Message Queuing Telemetry Transport)는 경량 메시지 전송 프로토콜로, 저전력 장치와 제한된 네트워크 환경을 고려해 설계되었습니다. 주로 사물인터넷(IoT) 기기 간 통신에 많이 사용되며, 발행(Publish)과 구독(Subscribe) 방식의 구조를 가집니다.MQTT의 특징 TCP/IP 기반 통신 브로커(Broker)를 통한 Pub/Sub 구조 낮은 대역폭, 저전력 환경에 최적화 QoS(Quality of Service)를 통한 신뢰성 제어Request/Response vs Publish/Subscribe 통신 방식의 차이 프로토콜을 이해하려면 먼저 각각의 통신 방식 차이를 아는 것이 중요합니다. MQTT는 Pub/Sub 방식, HT..
-
[AWS] 프로비저닝(Provisioning)이란?AWS 2025. 5. 2. 09:21
프로비저닝(Provisioning)이란? 프로비저닝은 IT 환경에서 필요한 자원(서버, 네트워크, 스토리지, 애플리케이션 등)을 사전에 준비하고 설정하는 과정을 말합니다. 쉽게 말해, "서비스를 원활하게 제공하기 위해 필요한 인프라를 구성하고 세팅하는 작업"이라 볼 수 있습니다. 예를 들어, 웹 서비스를 운영하려면 서버를 만들고, OS를 설치하고, 네트워크를 구성하며, 필요한 소프트웨어를 설치하는 등의 단계가 필요합니다. 이 일련의 과정을 자동화하거나 미리 준비하는 것이 바로 프로비저닝입니다.AWS에서 제공하는 프로비저닝 서비스AWS(Amazon Web Services)는 다양한 방식으로 프로비저닝을 지원합니다. 대표적인 예시는 다음과 같습니다: AWS CloudFormation: 인프라를 코드..
-
Spring Boot에서 많이 사용되는 View 엔진 추천 및 장단점Server/Spring Boot 2025. 4. 29. 23:21
Spring Boot를 사용할 때 프론트엔드를 구성하기 위해 View 엔진을 선택하는 경우가 많습니다. 이 글에서는 대표적인 View 엔진 4가지를 소개하고, 각각의 장단점을 정리해보겠습니다.1. Thymeleaf 설명: Spring 공식에서 권장하는 템플릿 엔진으로 HTML 친화적입니다. 장점: HTML 파일을 그대로 열어도 구조 확인이 쉬움 Spring과의 통합이 매우 뛰어남 (예: Spring EL 지원) 조건문, 반복문 등 표현식이 직관적 단점: 복잡한 로직을 처리하기엔 다소 제약이 있음 렌더링 속도가 JSP보다 느릴 수 있음 2. JSP (JavaServer Pages) 설명: 전통적인 Java 기반 웹 애플리..
-
SSR vs CSR 구분 및 개발 방법을 알아보자!Web 2025. 4. 29. 14:17
✅ SSR (Server Side Rendering) vs CSR (Client Side Rendering)📌 SSR (서버사이드 렌더링) 개념: 서버에서 HTML을 완성해서 클라이언트에 전달 예시: Next.js, JSP, Thymeleaf 특징: 초기 로딩 속도 빠름, SEO 유리, 서버 부담 높음✔️ 개발 방법 (React - Next.js)// pages/index.tsxexport async function getServerSideProps() { const res = await fetch('https://api.example.com/data'); const data = await res.json(); return { props: { data } };}export default fu..
-
자주 사용되는 디자인 패턴에 대해 알아보자 (springboot)Server/Spring Boot 2025. 4. 28. 17:44
Spring Boot 개발에서 꼭 알아야 할 디자인 패턴1. 싱글턴 패턴 (Singleton Pattern)싱글턴 패턴은 객체를 하나만 생성하여 모든 클라이언트가 동일한 인스턴스를 공유하도록 하는 패턴입니다. Spring에서는 주로 @Service, @Component, @Repository 등의 어노테이션을 사용하여 빈을 생성할 때 싱글턴을 기본으로 사용합니다.import org.springframework.stereotype.Service;@Servicepublic class SingletonService { private static SingletonService instance; private SingletonService() {} public static SingletonServ..
-
JVM과 Node.js 런타임 환경 비교Server 2025. 4. 28. 14:43
1. JVM이란?JVM(Java Virtual Machine)은 Java 프로그램을 실행시키는 가상 머신입니다.운영체제 위에서 동작하며, Java 바이트코드를 기계어로 변환해 실행하는 역할을 합니다.JVM은 강력한 멀티스레드 환경을 지원하며, 동시에 여러 작업을 병렬 처리하는 데 강점을 가집니다.2. Node.js란?Node.js는 V8 JavaScript 엔진 위에서 동작하는 런타임입니다.싱글 스레드를 기반으로 하지만, 비동기 I/O와 이벤트 루프(Event Loop)를 이용하여 높은 동시성을 지원합니다.특히 네트워크 서버 개발에 최적화되어 가볍고 빠른 처리 속도를 자랑합니다.3. JVM과 Node.js 기본 비교항목JVMNode.js런타임 언어Java, Kotlin 등JavaScript스레드 모델멀티..
-
[SKT 해킹 사고] BPFDoor 에 대해 알아보자IT/issue 2025. 4. 28. 10:42
BPFDoor란 무엇인가? BPFDoor는 최근 SK텔레콤 해킹 사고에서 언급된 리눅스 기반의 고급 백도어 악성코드입니다. 이 악성코드는 일반적인 취약점(CVE) 자체가 아니라, 리눅스의 네트워크 기능인 BPF(Berkeley Packet Filter)를 악용해 만들어졌습니다. BPFDoor는 2021년 PWC 위협 보고서를 통해 처음 공개됐으며, 주로 중국 해커 그룹(예: Red Menshen)이 중동과 아시아를 대상으로 한 사이버 공격에 수년간 사용해온 것으로 알려져 있습니다.주요 특징 무포트(Portless) 백도어 BPFDoor는 감염된 서버에서 별도의 포트를 열지 않고도 공격자의 명령을 수신할 수 있습니다. 이는 서버가 평소와 다르게 열린 포트가 없어 탐지하기 어렵다는 의미입니다..