Primitive vs Reference
서론 Validation에 대해서 스터디하던 중 @NotNull 어노테이션에 대해서 알아봤다. NotNull 어노테이션에서 Primitive 타입은 기본값이 존재하기때문에 validation이 작동하지 않는다는 이슈가 있었다. 그래서 오늘은 Primitive타입은 무엇인지, 그리고 nullable인 Reference 타입에 대해서 알아보고, 코틀린에...
서론 Validation에 대해서 스터디하던 중 @NotNull 어노테이션에 대해서 알아봤다. NotNull 어노테이션에서 Primitive 타입은 기본값이 존재하기때문에 validation이 작동하지 않는다는 이슈가 있었다. 그래서 오늘은 Primitive타입은 무엇인지, 그리고 nullable인 Reference 타입에 대해서 알아보고, 코틀린에...
서론 ORM을 통해 쿼리를 조회할때 객체안의 객체를 죄회하기 위해 또 다른 쿼리가 발생하는 경우가 있는데 그러면 처음 조회된 n개의 결과만큼 새로운 쿼리가 발생한다. 이걸 N+1 쿼리라고 하는데 오늘은 이 N+1 쿼리에 대해서 알아보자. N+1쿼리 N+1 쿼리는 서버에 큰 부하를 줄 수 있다. 데이터를 조회할 때 1번 쿼리를 조회할때, 또 다른 ...
서론 Null을 처리하는 방법에는 여러가지가 있지만 Kotlin에서는 Nullable을 사용하고, 자바에서는 Optional을 사용한다. 이 두가지의 차이에 대해서 알아보자. Nullable Nullable은 코틀린 언어 자체의 기능으로, 이 변수가 null이 가능한지 불가능한지를 설정한다. var nullableValue: String? ...
서론 값이 변하지 않는 것을 불변성(Immutability)이라고하고, 값이 변하는 것을 가변성(Mutability)이라고 한다. 코틀린의 var는 가변성이고, val는 불변성이다. mutable의 문제성 코틀린을 포함한 다수의 언어에서는 불변성을 권장한다. 그 이유가 무엇일까? 흔히들 생각하기로는 값을 유동적으로 바꿀 수 있다면 활용도가 늘어날 ...
서론 코틀린 JPA에서 Entity를 만들때 Data class와 일반 class 중 어느것을 고르는 것이 맞을까? 데이터를 담는 객체이니 Data class를 골라야할까, 데이터를 담는 것 이상의 역할을 하니 일반 class를 골라야할까? 이 두가지를 비교해보고 무엇이 더 알맞은 방법인지 알아보자. Data class Data class를 통해 ...
서론 자바에서 데이터를 전달하는 객체를 만들때 record를 사용했던 것처럼 코틀린에도 데이터 클래스라는 것이 존재한다. 오늘은 데이터 클래스에 대해서 알아보자. 데이터 클래스 일반 클래스와 달리 getter, setter, toString 등의 메소드를 자동으로 생성해주는 클래스이다. 요즘도 자바에서는 record나 lombok의 Data 어노...
서론 DTO, 엔티티, 모델은 데이터베이스에 관련된 용어들이다. 이중에서 DTO는 역할이 분명한데 엔티티와 모델은 명확하게 구분하기 어렵다. 오늘은 이 둘의 역할에 대해서 정확하게 알아보자. Entity Entity는 데이터베이스의 특정 테이블과 매핑되는 클래스를 나타낸다. 주로 데이터베이스의 테이블 스키마를 정의하며, 해당 테이블의 레코드를 나...
서론 JUnit에서 MockMVC를 이용해 테스트를 진행할 때 Reqeuest 객체를 구성해서 보내야한다. 이때, DTO로 구성하여 보내는 방법이 있고, HashMap을 이용해 직접 객체를 만들어 보내는 방법이 있다. 이 게시글은 두가지 방법 중 어느 방법이 더 좋은 방법일까 고민해보고 작성한 글이다. 본론 MockMVC에서 Body에 객체를 실...
서론 이제 앞서서하던 Java를 이용한 Springboot 프로젝트가 마무리되면서 다음 프로젝트로는 Kotlin을 사용한 프로젝트를 계획하게 되었다. 해당 프로젝트에 들어가기 앞서 Kotlin 문법에 대해서 공부하고자 이 포스팅을 작성하게 되었다. 변수 변수 선언은 Java 보다는 Javascript에 가깝다고 느꼈다. var: 변수값이 변경 ...
서론 이제 앞서서하던 Java를 이용한 Springboot 프로젝트가 마무리되면서 다음 프로젝트로는 Kotlin을 사용한 프로젝트를 계획하게 되었다. 해당 프로젝트에 들어가기 앞서 Kotlin에 대해서 공부하고자 이 포스팅을 작성하게 되었다. Kotlin 코틀린은 정적 타입의 프로그래밍 언어이다. Java보다 간결하고 표현력이 높은 디자인을 목적...