전체 글(106)
-
ID 생성 전략 - UUID, GUID, ULID, TSID, NANOID, KSUID, Snowflack...
개요분산 환경 및 고가용성 경험을 목표로 하는 마이크로서비스 프로젝트에 있어 ID 생성 전략은 무엇보다 중요함을 알고 있다. 키 값이 중복되거나 성능 이슈로 인한 장애 포인트가 늘어나기에 더더욱 그렇다.실제 업무에서는 UUID를 생성해 짧은 길이로 만들어 생성했지만 대량 트래픽 환경에서는 중복으로 인한 발송이 실패하고 장애로 이어졌다.또한, 기존 레거시 시스템에는 발송 일련 번호를 시간 기반에 sequence기반으로 생성했는데, 분산 환경에서는 장애 확률이 더더욱 올라갈 수 밖에 없다. 특시 시퀀스 기반은 발송 엔진이 두 대 이상에서 중복이 발생할 수 밖에 없다.UUID는 문자열 길이가 너무 길어 가독성이 떨어지고 DB에 저장하는데 있어 저장공간에 효율적이지 않아 지양하게 됨으로써 각 버전의 특징들과 U..
2025.11.12 -
[UMS MSA 구축 프로젝트]. Sprint1 회고록
1. 스프린트 개요스프린트 명Sprint1. 개발 환경 구축기간2025. 10. 01 ~ 2025. 10. 31참여인원1명내용팀 협업 기만 마련 및 개발 환경을 구축해 첫 개발 스프린트 준비 2. 프로젝트 진행 과정 1. 협업 방식 확립 ① Notion 템플릿 재정비 기존 Notion 템플릿은 한 페이지에 메뉴를 구성해서 관리하고 있었는데, 가시적이지 않고 복잡하며 필요한 페이지가 늘어갈 때 마다 분류 및 사용자 UI가 복잡해짐을 느꼈다.또한 문서도 중구난방 흩어져 관리되고 작업 관리를 어떻게 해야할 지 감이오지 않아 대시보드를 별도로 사용하지 않고 메뉴 구성을 별도 페이지로 만들어 사이드 메뉴 바에 노출되도록 하였다.메뉴를 크게 미팅 / 커뮤니티 / 스프린트 보드 / 워크스페이스로 분류하고 회의록과..
2025.11.03 -
[AWS] AWS Prviate 서브넷 망 생성기 - Bastion Host Server 구축
Bastion Host Server란?Bastion Host Server는 Public Subnet에 위치해 외부 인터넷 망과 내부 Private Subnet 간의 안전한 접속 통로 역할을 하는 보안 게이트웨이 서버이다.일반적으로 내부망(Prviate Subnet)에 있는 서버들은 보안을 위해 외부 인터넷에서 직접 접근할 수 없도록 설정되어있는데 Bastion Host Server를 통해 Private Subnet 내부 서버로 접근할 수 있다. Bastion Host Server 구축 개요Bastion Host Server를 구축하기 위해서는 기본적인 네트워크 개념과 AWS VPC 구조에 대한 이해가 필요한데, VPC를 Public Subnet과 Private Subnet으로 구성하고 Public Sub..
2025.11.01 -
[AWS] AWS Prviate 서브넷 망 생성기 - 개요
개요CI/CD 파이프라인을 위한 Jenkins구축을 위해 aws ec2 생성을 하고 도커 컨테이너로 (config서버와 유레카를 각각 분리하기 위해) 설치했는데, 해당 서브넷을 public망으로 구축하고 보안그룹도 누구든지 접근 가능하도록 설정했다.이는 보안상 매우 취약하며, 외부에서 작업 시 더욱 탈취 위험이 크기에 내부망에 재구축하였다.문제는 서브망 접근인데, 인프라 접근에 관한 요구사항을 아래와 같이 정리하였다.API gateway를 제외한 모든 애플리케이션은 내부망에 구축한다.Private 망은 팀원들만 접속가능하지만, 네트워크에 구애받지 않는다.내부 서비스들은 Private 서브넷 망에서만 통신한다.내부망의 Jenkins는 Github와 연결될 때만 외부 통신한다.aws 클라우드의 최소 비용으로..
2025.10.13 -
02. 카프카 빠르게 시작해보기
카프카 브로커 설치를 위한 AWS EC2 인스턴스 생성하기1. AMI 선택하기인스턴스를 생성하면 AMI를 선택할 수 있는 화면이 나오는데, AMI란 서버에 필요한 운영체제와 여러 소프트웨어가 조합된 템플릿으로, 그 중 프리티어로 사용 가능한 Amazon Linux 2023 Kernel-6.1을 선택하였다. 2. 인스턴스 유형 선택하기인스턴스 유형이란 EC2 인스턴스 서버의 CPU, 메모리, 네트워크 성능과 같은 서버 스펙을 말하며, 주키퍼와 브로커는 JVM위에서 돌아가기에 힙 메모리를 지정해야한다.두 프로세스에 각각 400MB의 힙 메모리를 설정하려고 하고, 이를 위해서는 1G 이상의 램이 필요하다. 따라서, 1GB메모리를 가진 t3.micro로 선택해주었다. 3. 키페어 선택하기키페어는 인스턴스에 접..
2025.07.17 -
[Part1. 전략적 설계] 04_바운디드 컨텍스트 연동
개요바운디드 컨텍스트 패턴은 일관성 유지 뿐 아니라 모델링도 가능해야 한다, 모델은 목정, 경계를 구분하지 않고는 구축 불가하다.하나의 바운디드 컨텍스트 내 언어는 특정 문제를 해결하는 비즈니스 도메인을 모델링하고, 다른 비즈니스 컨텍스트가 동일한 엔티티를 대표할 수 있지만 이는 다른 문제를 해결하는 비즈니스 도메인을 모델링 한다.서로 독립적으로 발전되고 구현될 수 있지만 그 자체로 독립적이지는 않지만 상호작용은 해야한다.컨트랙트 (Contract)결국에는 바운디드 컨텍스트 사이에는 항상 접점이 있는데 이를 '컨트랙트 (Contract)'라고 한다.이에 대한 필요성은 바운디드 컨텍스트 모델과 언어 차이에서 비롯되는데 각 컨트랙트는 하나 이상의 당사자에 영향을 끼쳐 서로 조율해서 컨트랙트를 정의해야 한다...
2025.07.15