Spring Data(2)
-
[Kotlin] inline class
Inline class 왜 등장했나? 자바는 int, double 등 원시 타입이 존재하고 Integer, Double과 같은 원시 타입의 래퍼 클래스가 존재한다. 코틀린은 직접적인 래퍼 클래스를 제공하지는 않지만 Int, Double 등의 클래스는 필요에 의해 boxing 또는 unboxing 되며 때로는 원시타입처럼 때로는 래핑타입처럼 동작한다. 그런데 값 객체를 감싸서 사용하는 경우에 성능저하가 일어나는 문제가 발생하기 시작했다. 예를 들어, 갯수를 세는 객체를 class Count(val value: Int)이라는 클래스로 감싸서 사용하고 있었는데, 이 객체가 코드 상에서 너무 많이 생성되고 사라지는 빈도가 높다보니 JVM에 너무 많은 부하를 주는 것이다. 특히 Int 같이 원시타입으로 동작하는 ..
2021.04.09 -
JPA vs JDBC, JPA vs Mybatis, JPA vs Spring Data JPA의 차이점과 Hibernate
Spring은 DB에 접근하기 위해 자바의 API를 사용한다. 웹 서비스에 필요한 기능들이 추상화돼서 Spring이 만들어졌듯이, DB에 접근하는 기술들도 일종의 추상화 과정을 거치며 진화해 나갔다. 이 부분을 처음 공부하는 사람 입장에서는, 비슷해 보이면서 다른 단어들 때문에 개념이 굉장히 헷갈린다. JPA를 검색했는데 뜬금없이 Hibernate에 관한 포스팅만 쏟아지기도 한다. 그런 사람들에게 도움이 되고자 간단하게 주요 단어들과 개념들을 포스팅해보려고 한다. (각 개념에 그림과 코드를 첨부했다. 그림에서 초록색 부분은 개발자가 코드 상에서 직접 다뤄야하는 부분이다) JDBC JDBC는 DB에 접근하고, SQL을 날릴 수 있게 해주는 자바의 표준 API다. 자바 진영에서 DB에 접근하는 기술들의 근간..
2020.04.25