개요 MySQL 데이터베이스의 Master-Slave 레플리케이션은, 조회만 발생하는 트랜잭션은 복수개의 Slave 노드로, 조회 뿐만 아니라 데이터베이스 변경점이 발생하는 트랜잭션은 1개의 Master 노드로 요청되어야 한다. 이번 글에서는 Spring Boot, JPA 환경에서 커넥션 풀을 read-write, read-only로 분리하는 방법을 설명하고자 한다. 특히, Amazon Aurora MySQL의 Single-Master 레플리케이션을 사용할 경우, 최대 15개의 레플리카 인스턴스를 운영할 수 있는데 애플리케이션 레벨에서 read-only 트랜잭션을 레플리카 엔드포인트를 바라보도록 설정하면 조회 성능을 크게 향상시킬 수 있다. 기본 흐름 어노테이션에 따라 커넥션 풀을 분기해주는 클래스를 직..
개요 Spring Boot는 Java, Kotlin 진영에서 가장 많이 사용되고 있는 프레임워크이다. 이름에서 드러나듯이 국내에서 가장 사랑 받는 Spring 프레임워크를 기반으로 한다. 경쟁자로 역시 뒤지지 않는 막강한 기능의 Dropwizard가 존재하지만 국내에서는 친숙하지 않은 JAX-RS를 기반으로 하여 앞으로도 국내에서 많이 쓰이지는 않을 것으로 생각된다. (나는 2015년 국내 모 영화 포탈 서비스의 일부를 JAX-RS 기반의 Jersey로 개발하며 상당한 생산성 향상을 경험한 적이 있다. 문제는 후에 담당한 운영 인력이 익숙치 않은 문법에 어려움을 겪었다고 한다.) 이후로는 Kotlin + Spring Boot 조합으로 소속한 회사의 백엔드 서비스를 개발하고 있는데 매번 그 편리함에 감탄하..
먼저 읽어볼만한 글 IntelliJ IDEA에서 Spring Boot 프로젝트 생성하기 Spring Boot 프로젝트에서 Profile 적용하기 Windows 운영체제에서 MySQL 5.7.x 설치하기 데이터베이스 연결 및 질의를 위한 의존성 정보 추가 /build.gradle에 아래 내용을 추가한다. MyBatis 라이브러리를 이용하여 MySQL 데이터베이스에 연결하기 위한 의존성 정보이다. dependencies { compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc' compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', versio..
개요 Spring Boot, JPA 기반 프로젝트에서 Hibernate L2 Cache를 활성화하는 방법을 간단히 정리하였다. Hibernate L1 Cache 특징 L1 캐시는 하나의 Hibernate Session 안에서만 유효하다. 다른 세션끼리는 캐시를 공유하지 않는다. (L2 캐시 전체 세션끼리 같은 캐시를 공유한다.) L1 캐시는 기본 설정이 활성화되어 있으며 비활성화가 불가능하다. (L2 캐시는 기본 설정이 비활성화되어 있으며 활성화가 가능하다.) Hibernate L2 Cache 특징 현재 애플리케이션에 존재하는 전체 Hibernate Session이 동일한 캐시를 공유한다. (SessionFactory를 통해 가능하다.) ID로 조회한 엔티티의 조회 결과만 캐시에 저장된다. 이를 통해 R..
- Total
- Today
- Yesterday
- Eclipse
- 로드 바이크
- JavaScript
- jpa
- 태그를 입력해 주세요.
- graylog
- jsp
- 알뜰폰
- chrome
- Kendo UI Web Grid
- maven
- 로드바이크
- Spring Boot
- JHipster
- MySQL
- Spring MVC 3
- Kendo UI
- Tomcat
- DynamoDB
- spring
- 자전거
- Docker
- 구동계
- node.js
- 평속
- CentOS
- kotlin
- jstl
- java
- bootstrap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |