전체 글
-
Slowly Changing Dimension (SCD) 이해하기카테고리 없음 2025. 9. 2. 18:58
데이터 웨어하우징과 ETL 파이프라인을 다루다 보면, 시간에 따라 변하는 데이터를 어떻게 관리해야 할지 고민하게 됩니다. 특히 고객, 상품, 조직 같은 마스터 데이터는 시간이 지남에 따라 속성이 바뀌는 경우가 많습니다. 이때 Slowly Changing Dimension (SCD, 점진적 변화 차원) 개념을 적용할 수 있습니다.SCD란 무엇인가?SCD는 데이터 웨어하우스에서 차원 테이블의 속성이 시간이 지남에 따라 어떻게 변하는지를 관리하는 방법론입니다. 예를 들어 고객의 주소, 직원의 소속 부서, 상품의 카테고리 등이 변경될 수 있습니다.변경된 데이터를 어떻게 기록할지에 따라 SCD Type이 구분됩니다.SCD 유형1. SCD Type 1 (덮어쓰기)변경된 값을 기존 데이터에 그대로 덮어씁니다.과거 이..
-
Spring Boot 프로젝트의 패키지 구조 전략: Layer-First vs Domain-FirstJava 2025. 6. 25. 10:53
Package 구조 전략Spring Boot 프로젝트를 시작할 때 가장 고민되는 부분 중 하나가 바로 패키지 구조입니다. 처음에는 단순한 계층형 구조로 시작했다가, 프로젝트가 커지면서 유지보수가 어려워지는 경험을 한 번쯤은 해보셨을 것 같습니다.오늘은 다양한 패키지 구조 전략과 각각의 특징을 알아보겠습니다.Package by Layer전통적인 계층형 구조로, Spring MVC의 기본적인 구조를 따릅니다.src/main/java/com/example/├── controller/ ├── service/ ├── repository/ └── model/ 장점단점구조가 단순하고 직관적기능 수정시 여러 패키지 변경 필요계층별 역할이 명확도메인 경계가 불명확진입 장벽이 낮음순환..
-
쿠버네티스 클러스터와 컴포넌트Kubernetes - 기초 2022. 8. 24. 08:24
Kubernetes를 사용하려면 제일 먼저 클러스터를 구성해야합니다. Kubernetes Docs에서는 "클러스터는 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커 머신의 집합. 모든 클러스터는 한 개의 워커 노드를 가진다."로 설명하고 있습니다. Kubernetes Cluster 구조 위의 그림과 같이 Kubernetes cluster는 하드웨어 수준에서 많은 노드로 구성됩니다. Master node(Control Plane)과 Worker node로 나뉘고, 다양한 component를 통해 동작합니다. Master node(Control plane)와 Worker node Master node와 Woker node의 역할과 각 component에 대해 간단하게 알아보자 (cloud contro..
-
OCI와 CRIKubernetes - 기초 2022. 8. 23. 01:14
Kubernetes(이하, k8s)를 스터디 시작에 앞서 제일 먼저 도커를 배우게 된다. 먼저 가상화 환경을 이해해야 컨테이너를 관리 및 실행하는 docker와 k8s container runtime을 이해 할 수 있기 때문이라고 생각한다. 그럼, container를 실행하는 것은 docker 뿐이고 k8s는 docker를 관리하는 것일까?? 아니다. Don't panic: Kubernetes and Docker k8s v1.20 이후 Container runtime에서 docker 사용이 중단 된다. 괜찮을까? 아래에서 다룰 OCI와 CRI에 의해서 괜찮다. 도커가 생성하는 이미지는 실제로는 도커에만 특정된 이미지가 아니라 OCI 이미지이다. k8s는 OCI 호환 이미지를 어떤 도구를 사용해 빌드했던 ..
-
로컬 kubernetes 환경 구성 + Cheatsheet 적용 (with. minikube, kubectl)Kubernetes - 기초 2022. 8. 22. 18:11
Minikube 미니큐브란? Kubernetes를 쉽게 배우고 개발할 수 있도록 하는 데 중점을 둔 로컬 Kubernetes입니다. 해당 포스트는 MacOS 환경에서 Minikube driver로 Docker를 선택하여 설치 및 실행합니다 Minikube 설치 brew install minikube Minikube 실행 minikube start --driver=docker [Tip 1] brew를 통한 설치 후 실패 하면 which minikube 이 전 minikube 링크를 제거하고 새로 설치된 바이너리를 링크해야 할 수 있습니다. brew unlink minikube brew link minikube [Tip 2] minikube 1.25.2 version에서 minikube service가 동작..
-
JVM은 몇 개의 Thread를 생성할수 있을까?Java 2022. 8. 22. 16:13
문득 JVM은 몇 개의 thread를 생성할수 있을까? 라는 생각이 들어 정리합니다. 일단, 정답은 "몇 개를 생성하는지 정확히 알수 없다" 입니다. 해당 포스트에는 JVM이 생성할수 있는 최대 Threads 영향을 미치는 Factor를 정리합니다. Stack Memory Thread 구성 중 가장 중요한 요소 중 하나는 Stack 입니다. Thread가 생성되면 동시에 Thread Stack도 생성되고 Frame에 저장합니다. (Stack size를 지정하지 않으면 JVM이 Default size로 stack을 생성합니다.) 생성하는 최대 스택 크기와 Thread 수는 사용 가능한 시스템 메모리와 직접적인 관계가 있습니다. 따라서, 메모리 용량을 늘리면 시스템에서 생성할수 있는 Thread 수도 늘어납..