[CDC 프로젝트] Oracle DB to MySQL(1)
·
Daily
이전 포스팅에서 다뤘던 CDC에 있어 규모를 조금 줄여 직접 CDC를 진행해보려고 합니다. CDC 기본적인 개념에 대해서 궁금하신 분들은 아래 포스팅을 참고하시기 바랍니다.https://hyunily.tistory.com/41 CDC(Change Data Capture)란?CDC란?CDC(Change Data Capture)란 데이터베이스에 발생하는 변경사항(INSERT, UPDATE, DELETE 등) 실시간/준실시간으로 데이터를 추적하고 캡처하는 기술을 말합니다. CDC는 보통 기존 source 데이터베이스에서hyunily.tistory.com요구사항이번 프로젝트에서 요구사항은 다음과 같습니다.1. Oracle DB로부터 변경된 데이터를 읽는다.2. 읽어온 데이터에서 적절한 정보만 가공한다.2. 가공..
Scanner vs BufferedReader
·
Daily
코딩테스트를 준비하시는 분들이라면 Scanner와 BufferedReader의 차이점에 대해서 궁금해하시는 분들이 계실 거라고 생각합니다. 오늘은 이 둘의 차이점과 속도차이가 왜 생겨나는지에 대해서 알아보겠습니다.본론부터 말하자면 속도측면에서 더 우세한건 BufferedReader입니다.  입력 데이터가 그렇게 크지 않으면 그림과 같은 차이점을 보이겠지만, 입력 데이터가 커지면 커질수록 그 차이는 더 심해지게 됩니다. 더 자세하게 두 방식의 동작 원리를 통해 좀 더 살펴보겠습니다.Scannerpublic class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int nu..
Window11 Oracle Database 설치
·
Database
반디집 다운로드https://kr.bandisoft.com/bandizip/ 반디집 공식 홈페이지 · ALZ, EGG, 7Z, RAR 지원 무료 압축 프로그램지원 포맷 7Z, ACE, AES, ALZ, ARJ, BH, BIN, BR, BZ, BZ2, CAB, Compound(MSI), DAA(1.0), DEB, EGG, GZ, IMG, ISO, ISZ, LHA, LZ, LZH, LZMA, PMA, RAR, RAR5, SFX(EXE), TAR, TBZ/TBZ2, TGZ, TLZ, TXZ, UDF, WIM, XPI, XZ, Z, ZIP, ZIPX, ZPAQ, PEA, UU, UUE, XXE, ASAkr.bandisoft.com Oracle Database 21c Express Edition 다운로드https..
CDC(Change Data Capture)란?
·
Daily
CDC란?CDC(Change Data Capture)란 데이터베이스에 발생하는 변경사항(INSERT, UPDATE, DELETE 등) 실시간/준실시간으로 데이터를 추적하고 캡처하는 기술을 말합니다. CDC는 보통 기존 source 데이터베이스에서 target 데이터베이스로 데이터를 동기화할 때 주로 사용되는데요. 전체 데이터가 아닌, 변경된 데이터만 처리하여 네트워크와 데이터베이스 성능을 최적화 시킵니다.그리고 데이터 복제 및 업데이트 작업을 자동화하여 데이터 관리 비용과 시간을 절감시키기도 하여, 데이터 동기화 하는 목적에 주로 사용되는 기술입니다. CDC의 장점CDC를 사용했을 때와, 사용하지 않았을 때의 차이점은 다음과 같습니다. 사용 전사용 후데이터 일관성유지유지데이터 스캔풀 데이터 스캔변경 데이..
Error Code: 2013. Lost connection to MySQL server during query
·
Database
여러 프로젝트 혹은 성능 테스트를 해보기 위해 dummy data를 넣는 과정에서 다음과 같은 에러를 마주하곤 할것입니다.Error Code: 2013. Lost connection to MySQL server during query 이 에러는 왜 생기는지, 그리고 어떻게 해결하는지 알려드리겠습니다.에러 발생 이유보통 해당 에러가 발생하는 이유는 클라이언트와 서버 간 연결이 작업 도중 끊어졌음을 의미합니다.대규모 데이터 삽입 작업과 같은 상황에서 발생할 수 있습니다. 1. 쿼리 실행 시간이 너무 길어서 서버 연결 시간 초과- MySQL 서버 설정에서 쿼리가 실행될 수 있는 최대 시간이 제한되어 있습니다.- 많은 데이터를 삽입할 때, 작업 시간이 길어져 클라이언트가 서버와의 연결을 유지하지 못하고 종료될 ..
혼쭐 나기 전, 맛 좀 보자 - Feature Flag
·
Spring
오늘은 동적으로 기능을 활성화하는 방법 중 하나인 Feature Flag에 대해서 다뤄보려고 합니다."딥하게 들어가기 전, 개념부터 잡아보자!" 방식으로, 개념을 잡고 가는 포스팅이 되겠습니다..!!Feature Flag란?Feature Flag는 애플리케이션 내에서 특정 기능의 활성화 여부를 동적으로 제어할 수 있는 기술입니다.코드를 배포한 후에도 이를 활용해서 특정 기능을 켜거나 끌 수 있습니다.그로 인해 새로운 기능을 단계적으로 배포하거나 특정 상황에서 기능을 비활성화하는 데 유용하게 사용되곤 합니다. 주요 활용 사례 예시1. 점진적 릴리스 : 새로운 기능을 단계적으로 배포해 안정성을 검증-> 새로운 UI/UX 디자인 적용-> 모바일 앱에서의 새로운 기능 활성화 2. A/B 테스트 : 사용자 그룹에..
Index란?
·
Database
데이터베이스에서 방대한 양의 데이터 가운데 원하는 데이터를 더 빠르게 찾을 수 있는 방법 중 하나는 Index입니다. 오늘은 Index에 대해서 다뤄보려고 합니다.Index란?Index는 데이터베이스에서 특정 데이터를 더 빠르게 찾을 수 있도록 도와주는 아이입니다.가령, 색인을 예로 들 수 있는데요. 책에서 특정 주제를 찾을 때, 색인을 사용하면 해당 주제를 더 빨리 찾을 수 있듯이, Index를 사용하면 데이터베이스 내의 원하는 데이터를 더 빠르게 찾을 수 있습니다. Index 기본 구조Index 기본 구조에는 B-Tree와 Hash Index가 있습니다.1. B-Tree- 가장 일반적으로 사용되는 구조입니다. 검색, 삽입, 삭제 시 성능이 균형적으로 유지되도록 설계된 트리 구조입니다. 2. Hash ..
모놀리식 프로젝트 DDD 패턴으로 전환하기
·
Daily
기존 프로젝트는 모놀리식 아키텍처로 설계되었습니다.이를 고도화하는 과정에서 도메인 주도 설계(DDD)로 전환하는 과정도 필요로 했었습니다.이번 포스팅은 간단하게 DDD 패턴으로 전환하는 과정에 대해서 다뤄보겠습니다.기존 모놀리식 아키텍처의 문제점모놀리식 아키텍처에서는 애플리케이션이 단일 코드 베이스로 구축되며, 모든 기능이 서로 긴밀하게 연결되어 있습니다.작은 애플리케이션에서는 물론 효율적인 방법일 수 있지만, 프로젝트에 여러 기능을 추가하며 커지면 다음과 같은 문제점이 발생할 수 있습니다. 1. 높은 결합도구성 요소들이 서로 강하게 연결되어 있어, 하나의 부분을 수정할 때 다른 부분도 함께 수정해야 하는 경우가 존재 2. 확장성 부족개별 기능을 독립적으로 확장하기 어려움 3. 테스트 어려움각 유닛이 여..