[서평] Do it! 오라클로 배우는 SQL 입문
·
Database
이지스퍼블리싱 서평단으로 선정되어 도서를 지원받아 솔직하게 쓴 글입니다.    https://www.yes24.com/Product/Goods/142874899 Do it! 오라클로 배우는 SQL 입문 - 예스24개념부터 실전까지, SQL을 처음 배우는 가장 쉬운 방법!3만 명 이상이 선택한 『Do it! 오라클로 배우는 데이터베이스 입문』이 새롭게 돌아왔다!데이터가 곧 경쟁력이 되는 AI 시대! SQL을 배우는www.yes24.com 책 정보저자 : 이지훈제목 : Do it! 오라클로 배우는 SQL 입문출판사 : 이지스퍼블리싱출간 연도 : 2025.03.05페이지 : 416쪽이지스퍼블리싱에서 Do it 시리즈로 오라클에 대해서 공부할 수 있는 SQL 입문 책이 출간되었습니다. 개발을 공부하는 사람과 현..
View를 활용한 조회 성능 개선
·
Database
Spring Boot 프로젝트를 진행하다 보면 QueryDSL과 Paging을 활용하여 성능을 개선하려고 하지만, 데이터가 많아지면 여전히 한계를 경험할 수 있습니다. 이러한 문제를 해결해 나가는 방법을 모색하던 중 View를 활용하면 성능을 더욱 개선할 수 있다는 점을 알게 되었습니다. 이번 포스팅에서는 View를 활용하여 성능을 최적화하는 방법을 소개하고, 실습을 통해 직접 구현해 보겠습니다. 1. View란?View는 하나 이상의 테이블의 결과를 저장하는 가상의 테이블입니다.실제 데이터를 저장하지 않지만, 복잡한 쿼리를 단순하게 만들어주고, 성능을 최적화할 수 있는 기능을 제공합니다. 2. View를 사용하는 이유View를 사용하는 이유에는 다음과 같습니다.- 쿼리 단순화 : 복잡한 SQL을 미리 ..
Oracle 데이터베이스 스키마(유저) 생성
·
Database
오라클에서는 스키마(schema) = 유저(user) 입니다. 오라클에서 스키마는 특정 사용자가 소유하는 데이터베이스 객체(테이블, 인덱스, 뷰 등)의 집합을 의미하며, 오라클에서는 사용자가 곧 스키마 입니다. 즉, 스키마를 생성하려면 사용자를 생성해야 합니다.관리자로 접속일단 sql plus를 실행시켜 다음 명령어로 관리자로 접속합니다.비밀번호는 초기 설치할때 설정했던 비밀번호를 통해 접속합니다.sys AS SYSDBA 오라클 스키마(사용자) 생성 방법CREATE USER user_name IDENTIFIED BY user_password; user_name : 사용자(스키마) 이름user_password : 사용자의 비밀번호 12C 버전 이후부터는 user_name에 C##을 붙여서 생성하셔야 합니다..
Sharding & Partitioning
·
Database
대규모 데이터를 효과적으로 관리하기 위해서는 데이터베이스에서는 샤딩과 파티셔닝 기법을 사용합니다.두 방법 모두 데이터를 나누는 방식이지만, 적용 방식과 목적에서 차이가 있습니다. 이번 포스팅에서는 샤딩과 파티셔닝의 개념을 살펴보고, 각각의 특징에 대해서 알아보겠습니다.파티셔닝(Partitioning)이란?파티셔닝은 하나의 데이터베이스 내에서 데이터를 여러 개의 파티션으로 나누는 방식을 말합니다.물리적으로 하나의 서버 내에서 데이터를 관리하면서 논리적으로 데이터를 분할하는 기법입니다. 1-1. 파티셔닝 유형1. 범위 파티셔닝(Range Partitioning)- 특정 범위를 기준으로 데이터를 나눕니다.- 가령, 날짜 기준으로 파티셔닝 하는 걸 예로 들 수 있습니다.CREATE TABLE orders ( ..
[CDC 프로젝트] Skip한 Active Transaction Data 후처리
·
Daily
이전 포스팅에서는 기존 로그 데이터를 가져올 때 활성화 상태인 트랜잭션에 대해서는 제외하고 로그 데이터를 가져왔었습니다. 하지만 이렇게 활성화 상태인 트랜잭션의 데이터들이 후에 완료되고 난 후면, 결국 해당 데이터도 분명히 반영시켜줘야 합니다. 이번 포스팅에서는 해당 문제에 대해서 이해해 보고, 해결하는 방법에 대해서 다뤄보겠습니다. 활성화 상태의 트랜잭션을 제외한 로그 데이터를 수집하는 내용은 아래 포스팅에 있으니 참고하시기 바랍니다.https://hyunily.tistory.com/46 [CDC 프로젝트] Uncommitted DML 로그 기록 최적화 방안이전 포스팅에서 Oracle에서 로그 데이터를 조회하는 방법부터 실제 Spring Batch에서 불러오는 방법까지의 과정에 대해서 다뤘었습니다. 이..
[CDC 프로젝트] Offset을 활용한 로그 읽기
·
Daily
이번 포스팅에서는 로그를 읽어오는 과정에서 발생할 수 있는 여러 문제 중 하나인 트랜잭션 단위 문제에 대해서 다뤘었습니다. 이전 포스팅은 아래 글을 참고해 주시기 바랍니다.https://hyunily.tistory.com/46 [CDC 프로젝트] Uncommitted DML 로그 기록 최적화 방안이전 포스팅에서 Oracle에서 로그 데이터를 조회하는 방법부터 실제 Spring Batch에서 불러오는 방법까지의 과정에 대해서 다뤘었습니다. 이전 포스팅은 아래 글을 참고해 주시기 바랍니다.https://hyuhyunily.tistory.com 이번 포스팅에서는 Offset 관리에 대해서 다뤄보려고 합니다. Offset이란?Offset은 다양한 분야에서 사용되는 개념입니다. 특히, DB 쿼리, 배치 처리, 웹..
[CDC 프로젝트] Uncommitted DML 로그 기록 최적화 방안
·
Daily
이전 포스팅에서 Oracle에서 로그 데이터를 조회하는 방법부터 실제 Spring Batch에서 불러오는 방법까지의 과정에 대해서 다뤘었습니다. 이전 포스팅은 아래 글을 참고해 주시기 바랍니다.https://hyunily.tistory.com/44 [CDC 프로젝트] Oracle DB to MySQL(1)이전 포스팅에서 다뤘던 CDC에 있어 규모를 조금 줄여 직접 CDC를 진행해보려고 합니다. CDC 기본적인 개념에 대해서 궁금하신 분들은 아래 포스팅을 참고하시기 바랍니다.https://hyunily.tistory.com/41hyunily.tistory.com 해당  과정에서 사용했던 로그 데이터를 읽어오는 쿼리문은 다음과 같았습니다.SELECT OPERATION, SEG_OWNER, TABLE_NAME..
Spring Batch Application 배포 및 Crontab 설정
·
Spring
이전 Spring Batch 포스팅에서는 Scheduled 어노테이션을 활용해서 주기적으로 실행하게 만들었었습니다. 관련 글 참고는 아래 포스팅을 확인하시길 바랍니다.https://hyunily.tistory.com/30 Spring Batch지난 포스팅에서 스케줄러에 대해서 다뤄봤습니다. 오늘은 배치 코드에 대해서 다뤄보려고 합니다. build.gradle 설정 implementation 'org.springframework.boot:spring-boot-starter-batch' application.ymlspring: batch: jdhyunily.tistory.com 이번 포스팅에서는 계속 Spring Project를 실행시킨 상태가 아닌, 정말 주기적으로 배치 시스템이 실행되고, 데이터를 처리하..