싱글톤 패턴이란?
·
Backend & Data/Java
싱글톤 패턴이란?싱글톤 패턴은 특정 클래스의 인스턴스가 하나만 생성되도록 보장하고, 어디서든 해당 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다.예를 들어 애플리케이션 설정, 캐시, 로깅 객체처럼 여러 곳에서 하나의 객체를 공유해야 하는 경우 싱글톤 패턴을 사용할 수 있다.싱글톤 패턴 구현 방법싱글톤 패턴을 구현하기 위해서는 일반적으로 다음 조건이 필요하다.외부에서 객체를 생성하지 못하도록 생성자를 private으로 선언한다.클래스 내부에서 자신의 인스턴스를 저장한다.인스턴스에 접근할 수 있는 static 메서드를 제공한다.public class Singleton { private static Singleton instance; private Singleton() { } publ..
User-Agent란?
·
Frontend/JavaScript
User-Agent란?User-Agent는 클라이언트가 HTTP 요청을 보낼 때 자신의 브라우저, 운영체제 등의 정보를 서버에 전달하는 HTTP 요청 header 이다.브라우저가 서버에 요청을 보낸다면 다음과 같은 정보를 보내게된다.User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 Chrome/140.0.0.0 Safari/537.36서버는 이 값을 통해 사용자가 어떤 브라우저와 운영체제를 사용 중인지 대략적으로 파악할 수 있다.User-Agent를 사용하는 이유과거에는 브라우저마다 지원하는 기능이나 동작 방식의 차이가 컸기 때문에, User-Agent를 확인해 브라우저별로 다른 코드를 실행할 수 있었다.if (navigato..
Kafka, 언제 그리고 왜 써야 할까?
·
Infra
Kafka란?Kafka는 서비스에서 발생한 이벤트를 전달하고 저장하는 분산 이벤트 스트리밍 플랫폼입니다. 주문, 결제처럼 서비스에서 발생한 일을 Kafka에 기록해두면, 필요한 다른 서비스가 이를 읽어 각자 처리할 수 있습니다.kafka의 개념 자체는 DB에 로그 테이블을 만들고 각 서비스가 폴링하는 방식으로도 흉내 낼 수 있습니다. 다만 이 경우 Consumer가 늘어날수록 테이블에 폴링 쿼리가 늘어나 DB에 부하가 쌓이고, Partition 같은 병렬 처리 구조나 보관 기간 삭제 정책도 직접 구현해야 합니다. Kafka는 이런 것들을 시스템 레벨에서 이미 구현해놓은 "이벤트 로그 전용 인프라"에 가깝습니다. 그래서 Consumer가 1~2개 정도인 소규모 시스템은 DB Outbox 테이블로도 충분하고..
헬스체크란?
·
Infra
헬스체크란?헬스체크란 서버나 애플리케이션이 정상적으로 동작하고 있는지 확인하는 기능이다.프로세스가 살아있는지만 확인할 수도 있고, DB, Redis 같은 외부 의존성과 정상적으로 연결되어 있는지까지 확인할 수 있다.헬스체크를 하는 이유헬스체크는 장애를 감지하고 정상적인 대상에게만 트래픽을 전달하기 위해 사용한다.환경에 따라 목적이 조금씩 다르지만 다음과 같다.Load Balancer: 장애 서버를 트래픽 대상에서 제외Docker: 컨테이너의 healthy, unhealthy 상태 판단Kubernetes: 컨테이너 재시작 여부와 트래픽 수신 가능 여부 판단Monitoring System: 장애 감지 및 알림즉, 헬스체크를 통해 사용자의 요청을 계속 장애서버로 가는것을 방지할 수 있다.헬스체크를 어떻게 구현..
오라클 클라우드 Always Free 정책 변경 - ARM 인스턴스 4 OCPU/24GB → 2 OCPU/12GB로 축소하기
·
Infra
Oracle Cloud의 ARM 인스턴스를 활용하고 있다. 그런데 최근 Oracle Cloud의 Always Free 정책에 변경 사항이 생겼다는 알림을 받았다.핵심은 기존 ARM(A1.Flex) 인스턴스의 Always Free 한도가 4 OCPU / 24GB → 2 OCPU / 12GB로 줄어들었다.이 한도를 초과해서 계속 사용하면 표준 요금이 부과되거나, 사용이 강제로 중지될 수 있다고 한다. 그래서 기존에 4 OCPU / 24GB로 운영하던 인스턴스를 새로운 한도에 맞춰 줄이는 작업을 진행했다. 이 글에서는 변경 사항과 대응 방법을 정리한다.1. 무엇이 바뀌었나오라클 공식 문서(Always Free Resources) 기준으로 정리하면 다음과 같다.OCI Ampere A1 Compute (ARM) ..
오라클 클라우드 VPN 서버 구축 (WireGuard VPN)
·
Infra
개요오라클 클라우드 프리티어 싱가포르 인스턴스에 WireGuard 기반 VPN 서버를 구축하는 과정이다. wg-easy라는 Docker 이미지를 사용해 웹 UI로 간편하게 관리할 수 있도록 구성한다.환경Oracle Cloud Infrastructure (OCI) Free Tier리전: ap-singapore-1 (싱가포르)OS: Ubuntu (ARM Ampere A1)Docker 29.4.3Docker Compose 5.1.31. Docker 설치# 패키지 업데이트sudo apt update && sudo apt upgrade -y시스템 패키지 목록을 최신화하고 업그레이드한다.# Docker 공식 설치 스크립트 실행curl -fsSL https://get.docker.com | shDocker 공식 스크..