1. 네이티브 메서드와 블로킹 I/O로 대기중인 자바 스레드의 상태(Java Thread State on Blocking I/O with Native Method)[ 문제에 대한 이해 ]오늘날 대부분의 서비스들은 서버-클라이언트 모델을 기반으로 하고 있고, 스프링과 같은 애플리케이션의 내부 역시 다음과 같은 서버 소켓을 통한 연결, 그리고 통신이 기반을 이루게 된다.그렇다면 다음과 같이 원시적인 형태의 ServerSocket 생성하고, 요청에 대한 수립을 기다리는 accept()를 호출중인 코드가 존재한다고 하자.fun main(args: Array) { val serverSocket = ServerSocket(13232) val socket = serverSocket.accept() s..
1. 하이버네이트 ddl-auto 옵션과 ddl-auto=validate 옵션의 동작 과정 분석하기(Hibernate ddl-auto =validate option)[ 다양한 하이버네이트의 ddl-auto 옵션과 validate 설정 ]JPA와 Hibernate는 ddl-auto 옵션을 통해 스키마에 대한 특정한 작업을 수행할 수 있도록 도와준다.none: Hibernate는 데이터베이스 스키마에 대해 아무런 작업도 수행하지 않음validate: 엔티티 매핑 정보와 실제 데이터베이스 스키마를 비교하여 유효성 검사만 수행하도록 Hibernate에 지시함create-only: 엔티티 모델을 기반으로 데이터베이스 스키마를 생성만 하도록 Hibernate에 지시함drop: 엔티티 모델을 참조하여 DDL DROP..
1. 직업으로서의 소설가 내용 정리[ 1. 소설가는 포용적인 인종인가 ]소설 한 편을 쓰는 건 그리 어렵지 않습니다. 뛰어난 소설 한 편을 써내는 것도 사람에 따라서는 그리 어렵지 않습니다. 간단한 일이라고까지는 하지 않겠지만, 못 할 것도 없는 일입니다. 그러나 소설을 지속적으로 써낸다는 것은 상당히 어렵습니다. 누구라도 할 수 있는 일이 아닙니다. 그렇게 하려면 앞서 말씀드린 것처럼 특별한 자격 같은 것이 필요하기 때문입니다. 그건 아마도 ‘재능’과는 좀 다른 것이겠지요.자, 그런 자격이 있는지 없는지, 그걸 분간하려면 어떻게 해야 하는가. 대답은 단 한 가지, 실제로 물에 뛰어들어 과연 떠오르는지 가라앉는지 지켜보는 수밖에 없습니다. [ 2. 소설가가 된 무렵 ]내가 오랜 세월에 걸쳐 가장 소중히..
1. Gradle 의존성 분석을 통해 NoClassDefFoundError, NoSuchFieldError 오류 트러블슈팅 & 해결하기[ Gradle의 의존성 분석을 위한 Task들 ]Gradle의 dependencies TaskGradle은 의존성 분석을 위한 다양한 Taks들을 제공하는데, 크게 2가지를 활용하게 된다.dependencies모든 의존성과 그 트리 구조를 출력하는 Task전체적인 의존성을 파악하고, 특정 의존성이 '왜 추가되었는지' 확인하는 데 용이함dependencyInsight특정 의존성에 대한 상세 정보를 출력하는 Task특정 의존성에 대해 '왜 이 버전이 결정되었는지' 확인하는 데 용이함 먼저 dependencies Task를 실행해보자. 다음과 같은 명령어로 실행할 수 있다....
1. 프로젝트 발할라(Project Valhalla)를 통해 알아보는 자바 언어의 진화 [ 프로젝트 발할라(Project Valhalla) 란? ]프로젝트 발할라는 객체 지향 프로그래밍의 추상화와 원시 타입의 뛰어난 성능 특성을 결합한 값 객체(value objects)의 도입과 제네릭(generic)에 대한 원시 타입의 지원을 강화하는 등의 작업을 통해 많은 개선을 이뤄내고자 하고 있다. 대표적으로 다음과 같은 기능들이 여러 배포에 걸쳐 추가될 것이다.Value Classes and Objects: 객체에 identity를 부여하지 않음으로써 최적화된 인코딩을 가능하게 하는 값 클래스와 객체를 도입함Null-Restricted and Nullable Types: 널-인지 타입에 대한 언어적 지원과 널-..