1. 💡 MariaDB란 무엇인가?MariaDB는 원래 MySQL의 창시자인 몬티 와이드니우스(Michael "Monty" Widenius)가 MySQL의 대체제로 개발한 오픈 소스 데이터베이스입니다. MySQL과 매우 유사한 인터페이스를 제공하며, 기존 MySQL을 사용하던 애플리케이션에서 손쉽게 MariaDB로 전환할 수 있도록 설계되었습니다.1.1 MariaDB와 오라클의 관계MySQL의 역사:MySQL은 1995년에 처음 개발되었고, 빠르게 관계형 데이터베이스 시장에서 주요 플레이어로 자리 잡았습니다.2008년, MySQL은 썬 마이크로시스템즈(Sun Microsystems)에 인수되었습니다.2010년, 썬 마이크로시스템즈가 오라클(Oracle)에 인수되면서 MySQL 역시 오라클의 소유가 되었..
DB
이전 포스팅에서 다뤘던 [리눅스에서 Docker 설치 및 실행 방법] 내용을 참고하시면, 이번 주제에 대한 배경 지식이나 기초 정보를 확인하실 수 있습니다!🐳 이 포스팅에서는 Docker를 이용해 MariaDB를 설치하고 사용하는 방법을 단계별로 설명하겠습니다. 최신 버전 MariaDB 사용 시 발생할 수 있는 오류를 방지하기 위해 10.7.4 버전을 사용하는 방법을 중점적으로 다룹니다.1. 원하는 MariaDB Image를 다운로드Docker는 이미지 기반의 가상화 기술로, MariaDB 이미지를 사용해 빠르게 데이터베이스 환경을 구축할 수 있습니다.✅ 명령어docker pull mariadb:10.7.4📝 설명docker pull: Docker Hub에서 MariaDB 이미지를 다운로드.maria..
💻 Spring Data Access (JDBC, Transaction)Spring 프레임워크를 사용하여 애플리케이션을 개발할 때, 데이터베이스와의 연동은 필수적인 부분입니다. 이번 글에서는 Spring의 JDBC를 사용한 데이터 접근과 함께 MyBatis 통합, 트랜잭션 관리 방법, 그리고 데이터베이스 연동 설정을 해보겠습니다.1. 🌟 Spring JDBC Template✔️ Spring JDBC Template란?Spring JDBC Template은 JDBC(Java Database Connectivity) 사용 시 발생하는 보일러플레이트 코드를 대폭 줄여주기 위해 설계된 유틸리티 클래스입니다. JDBC를 사용할 때 반복적으로 사용되는 코드, 예를 들면 데이터베이스 커넥션을 열고 닫는 것, Pr..
💻 1. 데이터베이스에서 JOIN과 EXISTS의 차이점데이터베이스 쿼리를 작성할 때, 데이터를 가져오기 위해 JOIN을 사용할지, 아니면 특정 조건이 존재하는지만 확인하기 위해 EXISTS를 사용할지 고민하게 되는 경우가 있습니다. JOIN과 EXISTS의 차이점과 각각의 사용 목적에 대해 자세히 알아보겠습니다.🔍 2. JOIN: 데이터를 가져오는 도구JOIN은 말 그대로 두 개 이상의 테이블을 합쳐서 원하는 데이터를 가져오는 데 사용됩니다. 데이터를 결합하여 새로운 결과를 반환할 때 주로 사용됩니다. JOIN의 종류로는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN 등이 있으며, 각 방식에 따라 결과가 달라집니다.INNER JOIN: 두 테이블에서 공통된 값이 있..
👭 테이블 관계 테이블 관계는 일반적으로 일대일 (1:1), 일대다(1:N)1, 다대다(N:M) 세가지로 나눌 수 있습니다. 1:1 관계 한 테이블의 각 행이 다른 테이블의 한 행과 관련이 있는 경우입니다. 예를 들어, 사용자 정보와 해당 사용자의 프로필 정보가 각각 다른 테이블에 저장되어 있을 때, 두 테이블 간에 1:1 관계가 있을 수 있습니다. Customer1 테이블의 CustomerID(PK)가 CreditCard1 테이블의 CustomerID(FK)와 1:1 매핑이 됨으로 1:1 관계 입니다. 🔠1:1 테이블 생성 DDL -- Customer1 테이블 생성 1:1 CREATE TABLE Customer1 ( CustomerID INT PRIMARY KEY, Name VARCHAR(255) );..
1. 🔍 DB 3개를 사용하는 프로젝트에서 발생한 문제와 해결 방법이번 프로젝트에서는 3개의 데이터베이스(DB)를 사용하면서 몇 가지 문제가 발생했습니다. 그중 하나는 내부 DB와 외부 DB에서 서로 다른 설정을 사용하는 부분에서 생긴 문제였습니다.🔹 프로젝트 구조프로젝트는 총 3개의 포털로 이루어져 있으며, 각 포털마다 3개의 DB를 사용합니다.서비스는 하나의 공통된 로직을 사용하며, 각 포털의 controller를 통해 필요한 서비스를 호출하는 방식으로 이루어집니다.🔹 DB 연결 방식각 DB를 연결하기 위해, Mapper 설정 시 3가지의 커스텀 어노테이션을 사용하여 각 포털에 맞는 DB 연결을 설정했습니다. 구체적으로는 아래와 같은 방식으로 @MapperScan을 사용해 각 포털에 맞는 map..