백엔드/DB 상세 정보 (5) 썸네일형 리스트형 MyBatis 개요 MyBatis란? - 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. - Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. - 마이바티스(MyBatis)는 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 애너테이션(annotation)을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결시킨다. MyBatis 특징 - 복잡한 쿼리나 다이나믹한 쿼리에 강하다 - 반대로 .. Data Replication 개요 Replication 배경 아주 단순한 Database를 구성할때에는 아래의 그림처럼 하나의 서버와 하나의 Database를 구성하게 된다. 하지만 사용자는 점점 많아지고 Database는 많은 Query를 처리하기엔 너무 힘든 상황이 오게 된다. Query의 대부분을 차지하는 Select를 어느 정도 해결하기 위해 Replication이란 방법이 나오게 되었다. Replication이란? 두 개의 이상의 DBMS 시스템을 Master / Slave로 나눠서 동일한 데이터를 저장하는 방식이다. Data replication is the process of making multiple copies of data and storing them at different locations for backup pu.. 정규화 정의 관계형 DB의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화 (Normalization)라고 한다. 데이터의 중복을 제거하고, 삽입이상, 갱신이상, 삭제이상이 나타나지 않도록 테이블을 설계하는 것. 제1정규형 제1 정규형은 릴레이션에 속하는 속성의 속성 값이 모두 원자값(Atomic Value)만으로 구성되어야 한다. 원자값이란 더 이상 쪼개질 수 없는 단위를 말한다. 예를 들어 위처럼 릴레이션이 이루어져 있다면, 제1 정규형을 만족하지 못한다. 학번이 100인 학생의 과목 번호와 성적이 2개로 이루어져 있기 때문이다. 따라서 제1 정규형이 되려면 다음과 같이 속성 값을 분리해주어야 한다. 제1 정규형에서는 어떠한 이상현상이 발생할까? - 삽입 이상 : 학생이 새 과목을 수강 신청.. N+1 문제 ** 정의 - 연관관계에서 발생하는 이슈. - 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n)만큼 연관 관계의 조회 쿼리가 추가로 발생 ** 발생하는 이유 - JPA는 메서드 이름을 분석해서 쿼리를 실행하게 된다. - 객체지향 쿼리 언어라서, select * from 엔티티명 이라는 쿼리를 날리게되면, 해당 엔티티의 정보만 모두 가져오게 된다. **해결 방법 1. Fetch Join 원하는 쿼리가 left join이라고 가정해보자. @Query("select n from 엔티티명 as n join fetch 컬럼명") List findAllJoinFetch(); 위와 같은 방식으로 쿼리를 날릴 수 있다. 단점은 우리가 연관관계 설정해놓은 것이 무의미하다는 것이다. 2. Entity G.. ORM **정의 - 객체와 관계형 Db의 데이터를 자동으로 매핑해주는 것을 말한다. - 객체 지향 프로그래밍은 클래스를, 관계형 DB는 테이블을 사용 - 객체 모델과 관계형 모델과의 불일치는, ORM을 활용하여 자동으로 생성된 쿼리를 활용하여 해결한다. - Persistent API 라고도 할 수 있다. (JPA, Hibernate...) 영속성 (Persistence) - 데이터를 생성한 프로그램이, 종료되더라도 데이터는 계속 남아있는 것을 의미한다. - - JDBC, Spring JDBC, Persistence Framework (Hibernate, MyBatis) 등을 활용할 수 있다. 장, 단점 장점 - 객체 지향적인 코드로 인해 조금 더 비즈니스 로직에 집중할 수 있게 도와준다. - 재사용 및 유지보수.. 이전 1 다음