이펙티브 코틀린 아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라
이펙티브 코틀린(안정성) 아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라 IllegalArgumentException 과 IllegalStateException 는 require 와 check 를 사용해 throw 할수 있는 예외 IndexOutOfBoundsException : 인덱스 파라미터 값이 범위를 벗어
Writing
기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.
이펙티브 코틀린(안정성) 아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라 IllegalArgumentException 과 IllegalStateException 는 require 와 check 를 사용해 throw 할수 있는 예외 IndexOutOfBoundsException : 인덱스 파라미터 값이 범위를 벗어
이펙티브 코틀린(안정성) 아이템 5: 예외를 활용해 코드에 제한을 걸어라 확실하게 어떤 형태로 동작해야 하는 코드가 있다면 예외를 활용해 제한을 거는것이 좋다. require 블록 : 아규먼트를 제한할 수 있다. check 블록 : 상태와 관련된 동작을 제한할 수 있다. assert 블록 : 어떤것이 true인지 확인할수
이펙티브 코틀린(안정성) 아이템 4: inferred 타입으로 리턴하지 말라 코틀린의 타입 추론은 가장 널리 알려진 코틀린의 특징이다. 타입추론을 사용할 때는 몇 가지 위험한 부분이 있다. 우선 할당 떄 inferred 타입은 정확하게 오른쪽에 있는 피연산자에 맞게 설정된다 절대로 슈퍼 클래스 또는 인터페이스로 설정되지
이펙티브 코틀린(안정성) 아이템 3: 최대한 플랫폼 타입을 사용하지 말라 코틀린에서는 null safety 메커니즘을 사용해 NPE는 거의 찾아 보기 힘들다. 코틀린에서 자바 코드를 사용할때 @Nullable 어노테이션이 붙어 있으면 String?으로 변경하고 @NotNull 이면 String으로 선언하면 되는데 아무 어
이펙티브 코틀린(안정성) 아이템 2: 변수의 스코프를 최소화하라 상태를 정의할 때는 변수와 프로퍼티는 스코프를 최소화 하는것이 좋다. 프로퍼티보다 지역 변수를 사용하는것이 좋다. 최대한 좁은 스코프를 갖게 변수를 사용하자. 여러 프로퍼티를 한꺼번에 설정해야 하는 경우에는 구조분해 선언을 사용하는 것이 좋다. 스코프를 좁게
이펙티브 코틀린(안정성) 아이템 1: 가변성을 제한하라 var 나 mutable 객체를 사용하면 상태를 가질수 있다. 상태를 가지는것은 양날의 검이다. 그래서 가변성을 제한하는것을 추천한다. 코틀린은 가변성을 제한하는것이 쉽게 만들어져 있다. 읽기 전용 프로퍼티(val) 가변 컬렉션과 읽기 전용 컬렉션 구분 데이터 클래스
testcontainers macbook m1 error 잘 동작하던 테스트 코드가 동작이 안되서 확인 했더니 테스트 컨테이너에서 위와같은 오류가 나고 있었다. 그래서 도커허브에서 mysql 이미지를 찾아보니 linux/arm64/v8 이미지는 존재하지 않았다. m1 맥북 이슈 인것 같아서 테스트 컨테이너 이슈를 찾아보니
JEP 408: Simple Web Server Summary 정적 파일만 제공하는 최소 웹 서버를 시작하는 명령줄 도구를 제공합니다. CGI 또는 서블릿과 유사한 기능을 사용할 수 없습니다. 이 도구는 특히 교육적 맥락에서 프로토타이핑, 임시 코딩 및 테스트 목적에 유용합니다. Goals 간편한 설정과 최소한의 기능으로
JEP 400: UTF 8 by Default Summary 표준 Java API의 기본 문자 집합으로 UTF 8을 지정합니다. 이 변경으로 기본 문자 집합에 의존하는 API는 모든 구현, 운영 체제, 로케일 및 구성에서 일관되게 작동합니다. Goals 1. 코드가 기본 문자 집합에 의존할 때 Java 프로그램을 보다 예
JEP 390: Warnings for Value Based Classes Summary 기본 래퍼 클래스를 값 기반 으로 지정하고 제거를 위해 해당 생성자를 더 이상 사용하지 않으며, 새로운 사용 중단 경고가 표시됩니다. Java 플랫폼에서 값 기반 클래스의 인스턴스에서 동기화하려는 부적절한 시도에 대한 경고를 제공합니