본문 바로가기

Jave & Kotlin27

Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리 들어가며 자바에서 사용하였던 void와 코틀린에서의 Unit의 차이점을 알아보고 추가적으로 Nothing에 대해서도 정리한다. void와 Void 자바의 void는 알다시피 반환 타입이 없을 때 사용한다. 우리가 잘 아는 main 함수의 반환 타입도 void로 되어 있다. 추가적으로 Void로 앞에 대문자로 되어 있는 것은 void와 다르다. int와 Integer가 같지만 다른것과 마찬가지다. void는 기본형이고 Void는 참조형이다. 제네릭 사용 시 반환 타입을 명시해야하는데 이때 기본형인 void를 사용할 수 없고 Void를 사용해야한다. 의미는 void와 똑같고, 인스턴스 생성 불가 또는 참조값이 존재하지 않음을 나타낸다. Unit 코틀린에서 int 를 구분하지 않는 것과 같이 void도 두가지.. 2022. 8. 24.
Kotlin - 코틀린의 동일성과 동등성 비교 (Java와 차이점) 들어가며 비교해야될 대상의 값이 같은지 아니면 주소값이 같은지를 비교해야될때 동등성 연산자 또는 동일성 연산자를 사용한다. 처음에 코틀린을 접했을 때 이미 자바로 해오다가 코틀린을 접했던 터라 자연스럽게 자바에서 사용하던 방식으로 하게되었는데 차이가 있어 정리하게 되었다. 먼저 자바와 코틀린의 차이를 알아보기 전에 동일성과 동등성의 개념을 먼저 알아보자 동일성과 동등성 말만 들으면 비슷해보이지만 뜻은 다르다. 먼저 동일성이란, 두 개의 객체가 완전히 같은 경우를 의미한다. 동등성이란, 두 개의 객체가 같은 정보를 갖고 있는 경우를 의미한다. 객체가 들고 있는 값을 비교를 하기 위해서는 동등성 비교를 하고, 객체 자체를 비교하기 위해서는 동일성 비교를 하면 된다. 자바에서의 동등성 비교와 동일성 비교 자바.. 2022. 7. 3.
Kotlin - first, last 함수 (firstOrNull & lastOrNull) 들어가며 코틀린 first, last 함수에 대해서 정리한다. first 함수 (firstOrNull) 코틀린에서의 first 함수는 컬렉션 인자 중에서 첫번째 인자를 리턴한다. 추가로 어떠한 조건을 만족하는 첫번째 인자를 리턴하는 구조도 가능하다. firstOrNull 함수는 first 함수와 동일하면서 추가로 만족하는 것이 없다면 null을 리턴하도록 설계할때 사용한다. first 함수 사용 방법 val people = listOf(Person(“Tom”, 24), Person(“dave”, 22))가 주어졌을 때 첫번째 인자 반환 people.first() 만족하는 첫번째 인자 반환 people.first{ name -> name.length 결과 Tom 만족하는 첫번째 인자 반환 o.. 2022. 6. 14.
Kotlin - Data Class 정리 (feat. IntelliJ 사용시 DataClass 변경 테스트) 들어가며 코틀린이 제공하는 data class는 자바에서 DTO 역할을 하는 클래스와 같다. 하지만 자바에서 DTO를 정의할때 생성자 및 게터와 세터 등을 정의해줬던거와 다르게 코틀린의 데이터 클래스는 클래스 정의만 해주면 일반 클래스와 달리 다양한 메서드를 자동으로 생성해준다. 데이터 클래스의 특징들을 정리해본다. 데이터 클래스 생성 시 자동 생성 메서드 및 특징 메서드 hashCode() / copy() / equals() / toString() / componentsN() 특징 기본 생성자에 1개 이상의 파라미터 존재해야함 기본 생성자의 파라미터가 val 또는 var로 선언해야함 다른 클래스를 상속받을 수 없음 (단, sealed 클래스는 상속 받을 수 있으며, 인터페이스는 구현할 수 있음) abs.. 2022. 4. 3.
Kotlin - MockMvc를 이용하여 REST API 테스트하기 (feat. Json Response) 들어가며 Spring Boot에서 제공하는 @SpringBootTest 어노테이션을 이용하여 테스트를 진행할 수 있지만 해당 어노테이션으로 테스트를 진행할 시에 스프링이 관리하는 모든 빈을 등록시켜서 통합 테스트를 진행하기 때문에 상대적으로 무겁다. 그렇기 때문에 Rest API에 대한 테스트를 진행할때는 MockMvc를 이용하여 테스트를 많이 한다. MockMvc 객체란? MockMvc는 서블릿 컨테이너의 구동 없이 시뮬레이션된 MVC 환경에 모의 HTTP 서블릿 요청을 전송하는 기능을 제공하는 유틸 클래스이다. 그렇기 때문에 컨트롤러 테스트용으로 자주 사용된다. Code import org.junit.jupiter.api.Test import org.springframework.http.HttpSta.. 2022. 2. 19.
Kotlin - 코틀린에서의 Null 들어가며 자바를 포함한 많은 프로그래밍에서의 가장 일반적인 오루 중 하나는 Null 참조의 멤버에 엑세스하여 생기는 Null reference exception의 발생이다. 코틀린에서의 타입 시스템은 코드에서 Null references 위험을 제거하는 것을 목표로 하며 런타임 단계가 아닌 컴파일 단계에서 오류를 미리 감지해서 예외를 줄일 수 있도록 하였다. 코틀린에서 NullPointerException이 발생할 수 있는 경우 - throw NullPointterException() : 명시적으로 호출하는 경우 - !! 연산자 사용 - 초기화에 관한 데이터 불일치 ex1) : 생성자에서 사용할 수 있는 초기화되지 않은 this가 전달되어 어딘가에 사용되는 경우 ex2) : superclass 생성자는 .. 2022. 1. 25.