728x90
728x90

데이터베이스 53

Apache NiFi: 데이터 흐름 관리의 강력한 오픈소스 도구 완벽 분석

데이터 흐름 관리와 ETL(Extract, Transform, Load) 작업을 위한 강력한 도구, Apache NiFi에 대해  파헤쳐보는 시간을 가져보겠습니다. 데이터 엔지니어, 개발자, 또는 데이터 관리에 관심 있는 분이라면 NiFi가 무엇인지, 어떻게 동작하며, 어떤 상황에서 빛을 발하는지 상세히 알아갈 수 있을 겁니다. 자, 커피 한 잔 들고 편안히 앉아서 함께 탐구 시작해 볼까요?Apache NiFi란 무엇인가?Apache NiFi는 데이터를 다양한 소스에서 추출해 변환하고 목적지로 전달하는 과정을 실시간으로 관리할 수 있는 오픈소스 플랫폼입니다. 이 도구는 원래 미국 국가안보국(NSA)이 내부적으로 "NiagaraFiles"라는 이름으로 개발한 것으로, 2014년에 Apache 재단에 기증되..

MyBatis의 mapUnderscoreToCamelCase 설정을 false로 변경하고 수동 매핑하는 방법

mapUnderscoreToCamelCase 설정을 false로 변경한 예제를 만들어보겠습니다. 이 예제에서는 MyBatis가 데이터베이스 컬럼명을 카멜 케이스로 자동 변환하지 않도록 설정하고, 수동으로 매핑하는 방법을 보여드리겠습니다.1. 환경 설정A. mybatis-config.xml 설정 B. Spring Boot에서 application.properties 설정mybatis.configuration.map-underscore-to-camel-case=false2. 데이터베이스 테이블 및 샘플 데이터예제를 위해 다음과 같은 users 테이블을 가정합니다.CREATE TABLE users ( user_id INT PRIMARY KEY, user_name VARCH..

스프링과 MyBatis를 활용한 데이터베이스 프로시저 개발 가이드: 효율적인 설계와 유지보수를 위한 종합적인 안내

스프링과 MyBatis에서 모든 데이터베이스 쿼리를 프로시져로 할때 주의 점스프링(Spring)과 MyBatis를 사용해 데이터베이스와 연동하고, 모든 데이터베이스 쿼리를 프로시저(Stored Procedure)로 처리하려는 경우, 효율적인 개발과 유지보수를 위해 신경 써야 할 몇 가지 중요한 사항이 있습니다. 이와 함께 예제를 통해 더 구체적으로 설명하겠습니다.프로시저 사용 시 주요 고려 사항1. 프로시저 설계명확한 목적 정의: 각 프로시저가 명확한 단일 책임을 가지도록 설계합니다. 프로시저가 한 가지 이상을 처리하려 하면 복잡도가 증가하고 유지보수도 어려워질 수 있습니다.예: get_user_info (사용자의 정보를 조회)와 update_user_status (사용자의 상태를 업데이트)를 별도의 프..

Maria DB customers 테이블을 위한 다양한 조건의 CRUD 프로시저 작성

CREATE TABLE `customers` (`del` enum('Y','N') NOT NULL DEFAULT 'N',`customerNumber` int(11) NOT NULL,`customerName` varchar(50) NOT NULL,`contactLastName` varchar(50) NOT NULL,`contactFirstName` varchar(50) NOT NULL,`phone` varchar(50) NOT NULL,`addressLine1` varchar(50) NOT NULL,`addressLine2` varchar(50) DEFAULT NULL,`city` varchar(50) NOT NULL,`state` varchar(50) DEFAULT NULL,`postalCode` var..

PostgreSQL에서 안전한 비밀번호 관리: pgcrypto를 활용한 해싱

PostgreSQL 데이터베이스에서 사용자의 비밀번호를 안전하게 관리하는 것은 매우 중요합니다. 만약 비밀번호가 평문으로 저장된다면, 데이터베이스가 해킹될 경우 모든 사용자의 비밀번호가 노출될 수 있는 심각한 문제가 발생할 수 있습니다. 이러한 위험을 방지하기 위해 PostgreSQL에서는 pgcrypto라는 확장 기능을 제공하여 비밀번호를 안전하게 해싱하는 기능을 지원합니다.pgcrypto 확장 설치pgcrypto 확장을 설치하면 PostgreSQL은 강력한 암호화 기능을 사용할 수 있게 됩니다. 설치는 다음과 같은 SQL 문장으로 간단하게 수행됩니다.CREATE EXTENSION IF NOT EXISTS pgcrypto;비밀번호 해싱 및 저장pgcrypto를 설치한 후에는 crypt 함수와 gen_s..

PostgreSQL 2024.12.21

PostgreSQL에서 Java를 활용한 강력한 프로시저 개발: PL/Java 완벽 가이드

PostgreSQL은 강력한 오픈 소스 관계형 데이터베이스 시스템이지만, 때로는 SQL만으로는 해결하기 어려운 복잡한 비즈니스 로직이나 고성능이 요구되는 작업이 필요할 때가 있습니다. 이러한 경우 Java의 풍부한 라이브러리와 객체 지향 프로그래밍의 장점을 활용하여 PostgreSQL 내에서 직접 실행할 수 있는 PL/Java 확장 모듈이 매우 유용합니다.PL/Java란 무엇인가?PL/Java는 PostgreSQL에서 Java 코드를 직접 실행할 수 있도록 지원하는 언어 핸들러입니다. 즉, Java로 작성된 함수나 프로시저를 PostgreSQL 데이터베이스 내에서 마치 SQL 함수처럼 호출하고 사용할 수 있다는 의미입니다. 이를 통해 PostgreSQL의 강력한 데이터 관리 기능과 Java의 유연성을 결..

PostgreSQL 2024.12.21

오라클 프로시저와 포스트그레스 SQL 프로시저의 차이

Oracle과 PostgreSQL에서의 Procedure는 기능적으로 비슷하지만, 두 데이터베이스가 사용하는 방식이나 특성에서 몇 가지 차이점이 오라클과 포스트그레스 SQL은 대표적인 관계형 데이터베이스 관리 시스템(RDBMS)으로, 각각 고유한 특징과 강점을 가지고 있습니다. 두 데이터베이스 모두 프로시저를 지원하여 복잡한 비즈니스 로직을 구현하고 데이터베이스 작업을 자동화할 수 있습니다. 하지만 오라클과 포스트그레스 SQL의 프로시저는 구문, 기능, 성능 등 다양한 측면에서 차이점을 보입니다. 본 글에서는 오라클의 PL/SQL과 포스트그레스 SQL의 PL/pgSQL 프로시저를 중심으로 두 데이터베이스의 프로시저 차이점을 심층적으로 분석하고, 각각의 특징과 활용 방법을 자세히 설명합니다.1. 기본 개념..

PostgreSQL 2024.12.18

오라클 데이터베이스와 웹훅(Webhook) 통합: PL/SQL과 JSON_OBJECT_T를 활용한 실전 가이드

오늘날 데이터베이스는 단순히 데이터를 저장하는 공간을 넘어 다양한 시스템과 연동되어 실시간으로 정보를 교환하고 처리하는 중심 역할을 수행합니다. 이러한 환경에서 오라클 데이터베이스와 외부 시스템 간의 실시간 통신을 위한 효과적인 방법 중 하나가 바로 웹훅(Webhook)입니다.웹훅(Webhook)이란?웹훅은 특정 이벤트가 발생하면 미리 설정된 URL로 HTTP 요청을 전송하는 방식으로, 서버 간 통신을 비동기적으로 수행하는 데 사용됩니다. 예를 들어, 오라클 데이터베이스의 특정 테이블에 새로운 데이터가 삽입되면 이벤트를 감지하여 외부 시스템에 알림을 전송할 수 있습니다.오라클에서 웹훅 구현하기오라클 데이터베이스에서 웹훅을 구현하기 위해서는 PL/SQL과 UTL_HTTP 패키지를 활용합니다. PL/SQL은..

오라클 스토어드 프로시저에서 JSON 데이터 생성 및 출력: 심층 분석

오라클 데이터베이스에서 JSON(JavaScript Object Notation) 데이터를 생성하고 조작하는 것은 현대적인 애플리케이션 개발에서 필수적인 기술입니다. 특히, RESTful API를 통해 다양한 클라이언트와 데이터를 교환하는 경우 JSON 형식은 사실상 표준으로 자리 잡았습니다. 이 글에서는 위에 제시된 오라클 스토어드 프로시저 코드를 통해 JSON 데이터를 생성하고 출력하는 과정을 상세히 설명하고, 실제 개발 환경에서 어떻게 활용될 수 있는지 다양한 예시와 함께 살펴보겠습니다. 코드 분석제공된 코드는 오라클 스토어드 프로시저를 통해 user 테이블의 데이터를 JSON 배열 형식으로 변환하여 출력하는 간단한 예시입니다.JSON_ARRAY_T, JSON_OBJECT_T: 오라클에서 JSON ..

오라클 페이지네이션 성능 최적화: ROWNUM vs ROW_NUMBER() 심층 분석 및 추가 최적화 방안

2024.12.14 - [Oracle Database 강좌] - 오라클 페이징 구현 및 스토어드 프로시저 활용: 심층 분석 및 실제 예제 오라클 페이징 구현 및 스토어드 프로시저 활용: 심층 분석 및 실제 예제오라클(Oracle) 데이터베이스에서 페이징(Paging)을 구현하려면 ROWNUM 또는 ROW_NUMBER()를 사용하는 방식이 일반적입니다. 최신 오라클 버전에서는 FETCH FIRST를 활용하는 방식도 지원됩니다. 아래에 세notion4570.tistory.com 두 SQL 구문은 페이지네이션을 수행하는 방법을 나타내며, Oracle 데이터베이스에서 성능 차이가 발생할 수 있습니다. 두 방법의 차이를 성능 관점에서 분석하면 다음과 같습니다.1. ROWNUM 기반 페이지네이션 (첫 번째 쿼리)동..

728x90
728x90