CS/DB 5

[DB] MyBatis란?(JPA와 비교)

MyBatis는 무엇이고, 왜 쓰는 걸까?최근에 MyBatis를 다시 정리하면서 느낀 건,이건 ORM이 아니라 **‘SQL을 포기하지 않는 선택지’**라는 거였다.Java에서 데이터베이스에 접근하는 방식은 크게 보면 세 가지 정도로 나뉜다.JDBCORM (JPA, Hibernate 등)SQL Mapper (MyBatis)JDBC는 너무 로우레벨이고, JPA는 매우 많은 걸 대신해준다.MyBatis는 그 중간 어딘가에 있다.1. JDBC부터 생각해보면JDBC로 DB를 다뤄보면 이런 코드가 나온다.Connection 열고PreparedStatement 만들고파라미터 세팅하고ResultSet 순회하고객체에 값 매핑하고finally에서 닫고...기능은 단순한데 코드가 길어진다.그리고 실수할 여지도 많다.그래서 ..

CS/DB 2026.02.08

[DB] JAVA와 데이터베이스(JDBC, ORM,Java SQL 라이브러리,MyBatis)

자바에서 DB를 다루는 3가지 방식서버든 데스크톱이든 Java 애플리케이션이 DB에 접근하려고 하면 결국 아래 질문들을 만나게 된다.개발을 자바 우선으로 할까, DB 우선으로 할까?자바 클래스를 먼저 만들고 테이블을 맞출지테이블(스키마)을 먼저 만들고 자바 코드를 맞출지SQL은 누가/어떻게 실행할까?단순 CRUD부터 복잡한 리포팅 쿼리(분석 함수 등)까지 실행 방식은?자바 객체 ↔ DB 테이블/행 매핑을 얼마나 편하게 할까?객체를 저장하면 INSERT가 되고조회 결과를 객체로 바꾸는 일을 누가 담당할까?예를 들어 아래 같은 자바 클래스가 있고,public class User { private Integer id; private String firstName; private String l..

CS/DB 2026.02.08

[DB]DB Replication(DB 이중화)설정 - master slave 설정

DB 재해 복구 방법 중에 하나인 db replication 설정을 해보겠다.DB Replication(이중화)란?:실시간 또는 일정 주기로 데이터를 다른 서버에 복제하는 방식- 장점: 빠른 복구 가능, RPO(Recovery Point Object: 데이터 손실 허용 범위) 감소- 단점: 설정과 유지 비용 증가 말하자면 master 데이터에 변동이 있을때 마다 binary log파일에  저장을하고 그걸 slave가 복사해가는 것이다. DB 서버 Replication 설정: 한쪽은 master 한쪽은 slave(slave가 master에 있는 데이터를 복사해감==replication) 1. MASTER1) master db 서버 설정아래 명령어로 설정 파일로 들어가서 편집한다.vi /etc/mysql/m..

CS/DB 2025.03.16

[DB]데이터 베이스 재해복구(Disaster Recovery, DR)

1. 재해복구의 주요 목표 (RTO & RPO)RTO (Recovery Time Objective, 복구 목표 시간)장애 발생 후 정상적인 서비스로 복구하는 데 걸리는 최대 허용 시간짧을수록 좋지만 비용이 증가함RPO (Recovery Point Objective, 복구 시점 목표)데이터 손실 허용 범위 (마지막 백업 이후 허용 가능한 최대 데이터 손실 시간)낮을수록 데이터 손실이 적지만 비용이 증가함2. 데이터베이스 재해복구 방법(1) 백업 및 복구(Backup & Restore)주기적으로 데이터를 백업하고 필요 시 복구하는 방법장점: 비용이 저렴하고 간단함단점: 복구 시간이 길고 RPO가 커질 수 있음방식:전체 백업 (Full Backup)차등 백업 (Differential Backup)증분 백업 (..

CS/DB 2025.03.16

[mariadb] 가상머신으로 db 서버 만들기

1. 먼저 VMware에서 가상머신 1개 생성후에 고정 ip 주소를 할당한다.저번 글 참고!!https://s-j-hyun.tistory.com/13 리눅스 고정 IP 설정하는 법💡 모르면 바보 (나만)리눅스: 윈도우랑 비슷한 거명령어: 프로그램서버: 서비스를 제공하는 프로그램클라이언트: 서비스를 이용하는 프로그램IP주소: 멀리 있는 컴퓨터를 찾아가는 주소포트s-j-hyun.tistory.com  1. mariadb 클라이언트 프로그램 설치apt install mariadb-server 2. mariadb 설정우리는 리눅스 서버를 윈도우 컴퓨터에서 접속하고 싶기 때문에 bind 주소를 바꾸어주어야한다.vi /etc/mysql/mariadb.conf.d/50-server.cnf#27번 라인에 있는 설정을..

CS/DB 2024.12.24