목록Spring (14)
훈훈훈
Replication 이란 ? 데이터베이스의 부하를 분산시키는 방법 중 하나이다. Write 관련 작업들은 Master DB 에서 처리를 하고 Read 관련 작업들은 Slave DB 에서 처리를 통해 부하는 분산 시키는 전략이다. 대부분의 서비스들은 Read 관련 작업들이 많기 때문에 Slave DB 를 여러 대 두어 분산시킬 수 있다. 단, 주의할 점은 Replication 은 짧은 시차가 존재한다는 점이다. Master 와 Slave 간의 Sync 를 맞추는 간격 사이에서 데이터의 정합성이 깨질 수 있다. 따라서 Master 에서도 읽기 작업이 필요한 순간들이 있다. 코드구현 Java 는 JDBC 커넥션 객체의 Connection.setReadOnly(true | false) 메소드를 통해 Repli..
아래 내용은 스프링 공식문서 스터디에서 정리했던 자료 입니다. Task Execution and Scheduling 1. Executor (1) Executor 란? Java 5에 도입되었으며, 단순히 void execute(Runnable command); 메서드만 정의된 객체이다. command 를 실행할 때 마다 새로운 스레드에 동작 command 는 Runnable 인터페이스 객체이다. Executor 가 실행될 때는 쓰레드를 명시하지 않는다고 한다. 그 역할은 Runnable 인터페이스가 대신한다. executor.execute(new RunnableTask()); 이런 식으로 command 를 실행 시킨다. (2) Runnable Interface 자바에서는 Thread 를 구현할 때 Thre..
Springboot와 JPA를 사용하는 서비스에서 Hibernate SQL 쿼리 로그를 확인해보니 insert 쿼리가 단 건씩 발생하는 것을 보았다. 분명 saveAll() 메서드를 사용하고 있는 함수였지만 의도한 대로 동작하지 않았던 것이다. 발생한 쿼리는 아래와 같았다. Hibernate: insert into user (name) values (?) Hibernate: insert into user (name) values (?) Hibernate: insert into user (name) values (?) Hibernate: insert into user (name) values (?) Hibernate: insert into user (name) values (?) Hibernate: ins..
이번에는 Spring boot, JPA와 코틀린(Kotlin)을 사용하여 간단한 API를 만들어 보려고 한다. 현재 사내에서 API 서버를 스프링 부트와 코틀린을 사용하여 개발하고 있다. 구글 검색 시 자바에 비해 코틀린에 관한 내용은 많이 부족하다. ....그래서 시간 날떄 틈틈히 정리를 해보려고 한다. 사용한 기술은 아래와 같다. - Spring Boot - Kotlin - gradle - postgresql - JPA IDE는 IntelliJ를 사용하였으며, 이클립스 환경이랑은 약간 차이가 날 수 있다. 이제 아래 코드를 보면서 살펴보자. 프로젝트 구조 먼저 프로젝트 구조는 아래와 같이 구성하였다. 파일 구성은 Controller, Service, DTO, Model, Repository 로 구성하..
이번에는 스프링 부트를 코틀린을 사용하여 간단하게 CRUD API를 만들어보려고 한다. 해당 예제는 코틀린 마이크로서비스 개발이란 책을 보고 작성하였다. 만들고자 하는 API는 유저 관리(CRUD) 기능을 가지고 있으며, 별도로 인증인가 적용은 하지 않았다. 마찬가지로 JPA도 연동없이 목데이터를 사용하여 간단하게 만들려고 한다. 여담이지만 이전에 python에 관한 글 작성 시 코드 블럭에 오류 없이 잘 사용했었는데, 코틀린이나 자바로 코드 블럭을 적용해보니 제대로 적용이 안되는 것 같다..... 이제 코드를 작성해보자 Customer package com.kotlin_rest_exam.rest_exam data class Customer( var id: Int = 0, var name: String ..
이번에는 Spring MVC 초기 설정하는 과정에 대하여 정리해보려고 한다. 요즘 스프링 부트를 공부하기 전에 스프링 프레임워크에 대해 먼저 공부를 진행하고 있지만 ... 이전에 Django를 사용했었을 때는 보지 못했던 개념들 많아 .... 모르던 부분들은 계속 공부하고 정리해보려고 한다.... # Spring MVC 란 ? 스프링 프레임워크에는 다양한 종류의 모듈이 존재한다. 이번에는 그 중에서 웹 프레임워크를 만들기 위한 모듈 중 Spring MVC에 대한 간단한 개념과 초기 설정을 정리해보려고 한다. IDE는 Intellij를 사용했으며, 이클립스에도 STS를 사용하면 거의 동일하게 사용할 수 있다. 먼저 Http Request 시 Spring MVC에서 처리되는 과정을 살펴보면 아래 그림과 같다..