전체 글
-
[MyBatis] MyBatis foreach INSERT 성능 테스트 해보기Server/MyBatis 2021. 5. 27. 15:26
MyBatis INSERT 쿼리 성능 테스트 MyBatis에는 foreach 라는 것을 이용해서 Batch Insert를 할 수 있는 기능을 제공해줍니다. 그런데 문득 foreach를 통해서 데이터를 INSERT 하는 것과 한 건씩 여러번 INSERT 하는 성능 차이가 얼마나 날까? 하는 의문점이 생겨 한번 글을 정리해보려 합니다. 당연히 성능은 foreach를 쓰는 것이 빠를 것인데요. 그럼에도 대략이라도 얼마나 차이나는지 한번 알아보겠습니다. 일반 INSERT 쿼리 먼저 위와 같이 for 문을 10000번 반복해서 데이터를 INSERT 해보겠습니다. 누가봐도 비효율적.. 말이 안되는 코드지만 그럼에도 몇초나 걸리는지 한번 실행해보았습니다. 실행해보니 예상했던대로 꽤나 시간이 걸렸는데요. 결과는 아래와..
-
[Java] 자바에서 Generic 이란 무엇일까?Language/Java 2021. 5. 25. 11:16
제네릭(Generic)이란? 자바의 제네릭(Generic)은 형 변환시에 발생할 수 있는 문제들을 사전에 없애기 위해서 만든 것입니다. 아직은 어떤 말인지 와닿지 않을 수 있습니다. 바로 예제 코드를 보면서 제네릭에 대해서 알아보겠습니다. public class CastingDTO { private Object object; public void setObject(Object object) { this.object = object; } public Object getObject() { return object; } } public class GenericSample { public static void main(String[] args) { GenericSample sample = new GenericS..
-
[MySQL] 트랜잭션 고립 레벨이란 무엇일까?Book/Real MySQL 2021. 5. 25. 10:44
MySQL에서의 트랜잭션 MySQL의 동시성에 영향을 미치는 잠금(Lock), 트랜잭션, 그리고 트랜잭션의 격리 수준을 살펴보겠습니다. 트랜잭션은 작업의 완전성을 보장해 주는 것입니다. 잠금: 트랜잭션은 서로 비슷한 개념 같지만 사실 잠금은 동시성을 제어하기 위한 기능입니다. 트랜잭션: 데이터의 정합성을 보장하기 위한 기능입니다. 잠금은 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할 격리 수준이라는 것은 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨 MySQL의 격리 수준 트랜잭션의 격리 수준(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션..
-
[Spring] Spring Boot로 MongoDB Atlas 사용하는 법Server/Spring Boot 2021. 5. 23. 03:07
Spring Boot에서 MongoDB Atlas 사용하는 법 이번 글에서는 Spring Boot로 MongoDB Atlas를 사용하는 법에 대해서 정리해보려 합니다. 먼저 https://www.mongodb.com/cloud/atlas1 MongoDB Atlas 사이트에 먼저 접속하겠습니다. MongoDB Atlas를 사용하기 위해서는 회원가입을 먼저 해야 합니다. 위에 자기의 정보에 맞게 입력 후에 회원가입을 하겠습니다. 저는 자바를 사용할 것이기 때문에 Java를 선택하고 다음을 누르겠습니다. 무료 버전을 사용할 것이기 때문에 FREE를 선택하고 나머지는 기본 설정대로 두고 만들겠습니다. 그리고 1~3분 정도 기다리면 클러스터가 하나 생성이 됩니다. 생성이 되었다면 Connect를 눌러서 DB Us..