2-3. SQL 최적화 기본

1. 옵티마이저와 실행계획 2. 인덱스 기본 3. 조인 수행 원리 =======================================================   . Sort Merger Join – 조인 칼럼을 기준으로 데이터를 정렬하여 조인을 수행한다. – NL Join은 주로 랜덤 엑세스 방식으로 데이터를 읽는 반면 Sort Merge Join은 주로 스캔 방식으로 데이터를 읽는다. – Sort Merge Joind은 랜덤 액세스로 NL Join에서 부담이 되던 넒은 범위의 데이터를

2-1. SQL 기본

  1. 관계형 데이터베이스 2. DDL(Data Definition Language): 데이터 정의어 3. DML(Data Manipulation Language): 데이터 조작어 4. TCL 5. WHERE절 6. 함수 7. Group By, Having 절 8. Order By 절 9. JOIN ==========================================================   . 데이터 제어어(DCL: Data Control Language) – 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어   . 테이블 컬럼 정의

1-2. 데이터 모델과 성능

  1. 성능 데이터 모델링의 개요 2. 정규화와 성능 3. 반정규화와 성능 4. 대량 데이터에 따른 성능 5. 데이터베이스 구조와 성능 6. 분산 데이터베이스와 성능 =========================================================   . 성능데이터모델링 – 데이터베이스 성능 향상 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는것   . 1차 정규화의 대상 – 중복속성에 대한

1-1. 데이터 모델링의 이해

1. 데이터 모델의 이해 2. 엔터티 3. 속성 4. 관계 5. 식별자   . 발생시점에 따른 엔터티 분류 – 기본/키엔터티(Fundamental Entity, Key Entity) – 중심엔터티(Main Entity) – 행위언터티(Active Entity)   . 데이터 모델링이란 – 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 – 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정 – 데이터베이스를 구축하기 위한
Git

Git을 활용한 효과적인 버전 관리 – 프로젝트 개발 생산성 향상 방법

  Git은 소프트웨어 개발에서 버전 관리를 위해 널리 사용되는 분산 버전 관리 시스템(VCS)입니다. Linus Torvalds가 Linux 커널 개발을 위해 개발한 Git은 빠른 속도, 효율적인 브랜칭, 분산 개발 환경 지원 등의 장점으로 인해 많은 개발자들에게 사랑받고 있습니다. 이 글에서는 Git을 사용한 버전 관리의 기본 개념과 실제 활용 방법에 대해 알아보겠습니다.   Git의 기본 개념 Git은 분산
JUnit

JUnit을 사용한 단위 테스트

  단위 테스트란? 단위 테스트(Unit Testing)는 소프트웨어 개발 과정에서 개별 코드 단위(함수, 메소드, 클래스 등)가 예상대로 작동하는지 검증하는 절차를 말합니다. 단위 테스트를 통해 각 모듈의 기능을 독립적으로 검사함으로써, 프로그램 전체의 신뢰성과 안정성을 높일 수 있습니다. 또한, 리팩토링이나 유지보수 과정에서 발생할 수 있는 오류를 사전에 방지하는 데에도 큰 도움이 됩니다.   JUnit이란? JUnit은 Java 언어를 위한
회복성 패턴

회복성 패턴(서킷 브레이커, 재시도, 폴백)

  마이크로서비스 아키텍처에서는 여러 서비스가 서로 협력하여 작업을 수행하므로, 한 서비스의 장애가 전체 시스템으로 전파될 수 있는 위험이 있습니다. 회복성 패턴은 이러한 문제를 완화하고 시스템의 안정성과 가용성을 높이기 위한 방법입니다. 대표적인 회복성 패턴으로는 서킷 브레이커, 재시도, 폴백이 있습니다.   서킷 브레이커(Circuit Breaker) 서킷 브레이커는 전기 회로에서 과부하를 방지하기 위해 사용되는 개념을 차용한 것으로, 마이크로서비스 간의
분석1

분산 추적(Sleuth, Zipkin)

  분산 추적은 마이크로서비스 아키텍처에서 매우 중요한 개념입니다. 마이크로서비스 환경에서는 하나의 사용자 요청이 여러 개의 서비스를 거치며 처리되므로, 요청의 흐름을 추적하고 가시성을 확보하는 것이 어려울 수 있습니다. 분산 추적은 이러한 문제를 해결하기 위한 방법으로, 요청의 전체 경로를 추적하고 각 서비스에서 소요된 시간을 기록하여 성능 병목 지점을 식별하는 데 도움을 줍니다. Spring Cloud에서는 Spring Cloud Sleuth와
개발

API 게이트웨이(Zuul, Spring Cloud Gateway)

  API 게이트웨이는 마이크로서비스 아키텍처에서 외부의 요청을 받아들이고 라우팅하는 역할을 하는 핵심 컴포넌트입니다. API 게이트웨이는 인증 및 인가, 요청 및 응답 변환, 서비스 디스커버리 통합, 부하 분산 등의 기능을 제공하여 마이크로서비스의 복잡성을 추상화하고 외부에 간소화된 API를 제공합니다. Spring Cloud에서는 Netflix Zuul과 Spring Cloud Gateway라는 두 가지 API 게이트웨이 솔루션을 제공합니다.   Netflix Zuul Zuul은 Netflix에서
Eureka

서비스 디스커버리(Eureka)

  서비스 디스커버리는 마이크로서비스 아키텍처에서 필수적인 구성 요소 중 하나입니다. 서비스 디스커버리는 동적으로 변화하는 네트워크 환경에서 서비스의 위치를 자동으로 식별하고 클라이언트에게 제공하는 역할을 합니다. Netflix에서 개발한 Eureka는 Spring Cloud에서 널리 사용되는 서비스 디스커버리 도구입니다.   Eureka의 주요 개념 Eureka Server 서비스의 등록 정보를 관리하고 서비스 인스턴스의 상태를 추적하는 서버입니다. 등록된 서비스의 정보를 주기적으로 갱신하고, 클라이언트에게