자바에서 코드 실행 시간을 측정하는 방법
자바에서 코드가 수행되는 데 걸린 시간을 측정하려면 어떻게 해야 할까?
Posted on September 19, 2020
#currenttimemillis #nanotime #stopwatch
자바 14 버전에서는 어떤 새로운 기능이 추가됐을까?
JDK 14 버전에서는 어떤 기능이 새롭게 등장했을까? 그리고 어떤 기능이 사라졌을까?
Posted on June 19, 2020
#java #jdk14 #openjdk
Java Scripting API: GraalVM 적용해보기
자바 11에서 Deprecated된 Nashorn 스크립트 엔진을 GraalVM으로 대체해보자.
Posted on May 23, 2020
#java #scriptengine #graalvm
Java Scripting API: 바인딩과 스크립트 컨텍스트 그리고 실행 성능 개선
자바 프로그램에서 자바스크립트 코드를 실행하고 그 변수를 참조할 수 있을까?
Posted on April 26, 2020
#java #scriptengine
Java Scripting API: 자바에서 자바스크립트의 함수를 호출할 수 있을까?
자바의 Scripting API를 이용하여 자바스크립트(Javascript) 파일 내의 함수를 호출해보자
Posted on April 19, 2020
#java #scriptengine
JSON Schema: 자바 코드로 Validator 구현
JSON 스키마를 검증하는 validator를 자바 코드로 구현해보자.
Posted on March 14, 2020
#json #jsonschema #jsonvalidate
자바 String, StringBuilder 그리고 StringBuffer 성능 차이 비교
자바에서 String과 StringBuilder 그리고 StringBuffer의 차이는 무엇일까? 그리고 제일 빠른 연산 속도는 어떤 것일까?
Posted on February 4, 2020
#java #string #stringbuilder #stringbuffer
[이펙티브 자바 3판] 아이템 11. equals를 재정의하려거든 hashCode도 재정의하라
[Effective Java 3th Edition] Item 11. Always override hashCode when you override equals
Posted on December 1, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 76. 가능한 한 실패 원자적으로 만들라
[Effective Java 3th Edition] Item 76. Strive for failure atomicity
Posted on November 16, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라
[Effective Java 3th Edition] Item 23. Prefer class hierarchies to tagged classes
Posted on November 12, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 24. 멤버 클래스는 되도록 static으로 만들라
[Effective Java 3th Edition] Item 24. Favor static member classes over nonstatic
Posted on November 10, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 15. 클래스와 멤버의 접근 권한을 최소화하라
[Effective Java 3th Edition] Item 15. Minimize the accessibility of classes and members
Posted on November 6, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 86. Serializable을 구현할지는 신중히 결정하라
[Effective Java 3th Edition] Item 86. Implement Serializable with great caution
Posted on November 2, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 89. 인스턴스 수를 통제해야 한다면 readResolve보다는 열거 타입을 사용하라
[Effective Java 3th Edition] Item 89. For instance control, prefer enum types to readResolve
Posted on October 30, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 90. 직렬화된 인스턴스 대신 직렬화 프록시 사용을 검토하라
[Effective Java 3th Edition] Item 90. Consider serialization proxies instead of serialized instances
Posted on October 26, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 88. readObject 메서드는 방어적으로 작성하라
[Effective Java 3th Edition] Item 88. Write readObject methods defensively
Posted on October 20, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 87. 커스텀 직렬화 형태를 고려해보라
[Effective Java 3th Edition] Item 85. Consider using a custom serialized form
Posted on October 16, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 85. 자바 직렬화의 대안을 찾으라
[Effective Java 3th Edition] Item 85. Prefer alternatives to Java serialization
Posted on October 12, 2019
#java #effectivejava
[이펙티브 자바 3판] 12장. 직렬화
[Effective Java 3th Edition] Chapter12: Serialization
Posted on October 11, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 81. wait와 notify보다는 동시성 유틸리티를 애용하라
[Effective Java 3th Edition] Item 81. Prefer concurrency utilities to wait and notify
Posted on October 7, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 80. 스레드보다는 실행자, 태스크, 스트림을 애용하라
[Effective Java 3th Edition] Item 80. Prefer executors, tasks, and streams to threads
Posted on October 3, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 79. 과도한 동기화는 피하라
[Effective Java 3th Edition] Item 79. Avoid excessive synchronization
Posted on September 29, 2019
#java #effectivejava
[이펙티브 자바 3판] 11장. 동시성
[Effective Java 3th Edition] Chapter11: Concurrency
Posted on September 27, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 78. 공유 중인 가변 데이터는 동기화해 사용하라
[Effective Java 3th Edition] Item 78. Synchronize access to shared mutable data
Posted on September 15, 2019
#java #effectivejava
[이펙티브 자바 3판] 10장. 예외
[Effective Java 3th Edition] Chapter10: Exceptions
Posted on September 3, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 68. 일반적으로 통용되는 명명 규칙을 따르라
[Effective Java 3th Edition] Item 68. Adhere to generally accepted naming conventions
Posted on August 24, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 62. 다른 타입이 적절하다면 문자열 사용을 피하라
[Effective Java 3th Edition] Item 62. Avoid strings where other types are more appropriate
Posted on August 21, 2019
#java #effectivajava
[이펙티브 자바 3판] 9장. 일반적인 프로그래밍 원칙
[Effective Java 3th Edition] Chapter9: General Programming
Posted on August 14, 2019
#java #effectivejava
[이펙티브 자바 3판] 8장. 메서드
[Effective Java 3th Edition] Chapter8: Methods
Posted on August 3, 2019
#java #effectivejava
자바 직렬화: readResolve와 writeReplace
자바 직렬화에 사용되는 readResolve 메서드와 writeReplace 메서드의 역할은 무엇일까?
Posted on July 24, 2019
#java #readresolve #writereplace #serialization
[이펙티브 자바 3판] 아이템 44. 표준 함수형 인터페이스를 사용하라
[Effective Java 3th Edition] Item 44. Favor the use of standard functional interfaces
Posted on July 13, 2019
#java #effectivejava
자바 직렬화: writeObject와 readObject
자바 직렬화에 사용되는 writeObject 메서드와 readObject 메서드의 역할은 무엇일까? 그리고 왜 private 일까?
Posted on July 7, 2019
#java #readobject #writeobject #serialization
[이펙티브 자바 3판] 7장. 람다와 스트림
[Effective Java 3th Edition] Chapter7: Lambdas and Streams
Posted on June 30, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 39. 명명 패턴보다 애너테이션을 사용하라
[Effective Java 3th Edition] Item 39. Prefer annotations to naming patterns
Posted on June 15, 2019
#java #effectivajava
[이펙티브 자바 3판] 6장. 열거 타입과 애너테이션
[Effective Java 3th Edition] Chapter6: Enums and Annotations
Posted on June 3, 2019
#java #effectivejava
[이펙티브 자바 3판] 5장. 제네릭
[Effective Java 3th Edition] Chapter5: Generics
Posted on May 28, 2019
#java #effectivejava
[이펙티브 자바 3판] 4장. 클래스와 인터페이스
[Effective Java 3th Edition] Chapter4: Classes and Interfaces
Posted on May 21, 2019
#java #effectivejava
[이펙티브 자바 3판] 3장. 모든 객체의 공통 메서드
[Effective Java 3th Edition] Chapter3: Methods Common to All Objects
Posted on May 4, 2019
#java #effectivejava
자바 map 메서드와 flatMap 메서드의 차이
자바 8에서 추가된 map 메서드와 flatMap 메서드의 차이는 무엇일까?
Posted on April 28, 2019
#java #java8 #map #flatmap
자바 직렬화: 사용할 때 고민하고 주의할 점
자바 직렬화를 사용할 때 주의할 점은 무엇일까? 그리고 왜 자바 직렬화는 권장되지 않을까?
Posted on April 17, 2019
#java #serialization #deserialization
jEnv로 여러 버전의 Java 사용하기(JDK 버전 관리)
Mac OS 환경에서 jEnv를 설치하고 여러 버전의 JDK를 간편하게 관리해보자.
Posted on March 25, 2019
#java #jenv
ValidationEventHandler를 이용하여 JAXB 파싱 에러 탐지하기
ValidationEventHandler를 이용하여 JAXB 언마샬 에러를 탐지하고 에러 내용과 에러 라인 수를 확인해보자
Posted on March 17, 2019
#java #jaxb #validation #eventhandle
JAXB marshal, unmarshal(마샬, 언마샬)
자바에서 XML을 파싱할 때 사용하는 JAXB(Java Architecture for XML Binding) API로 마샬링, 언마샬링을 해보자.
Posted on March 12, 2019
#java #jaxb #marshal #unmarshal
자바 예외 구분: Checked Exception, Unchecked Exception
자바에서 예외는 어떻게 구분할까? Checked Exception과 Unchecked Exception의 차이는 무엇일까?
Posted on March 2, 2019
#java #exception
자바 유료화? OpenJDK와 Oracle JDK 차이
오라클의 자바 유료화? OpenJDK와 Oracle JDK의 차이는 무엇일까?
Posted on February 24, 2019
#java #openjdk #oraclejdk
[이펙티브 자바 3판] 2장. 객체 생성과 파괴
[Effective Java 3th Edition] Chapter 2. Creating and Destroying Objects
Posted on February 19, 2019
#java #effectivejava
자바 스트림 정리: 5. 스트림을 사용할 때 주의할 점
자바 스트림 API를 사용할 때 실수할 수 있는 부분과 고민해볼 점은 무엇이 있을까?
Posted on February 11, 2019
#java #stream
자바 스트림 정리: 4. 자바 스트림 예제
자바 스트림 API를 사용하는 여러가지 예제들을 알아보자.
Posted on February 9, 2019
#java #stream
자바 스트림 정리: 3. 스트림 결과 구하기
원하는 형태로 가공한 스트림에서 결과를 구하는 연산의 종류에는 무엇이 있을까?
Posted on February 6, 2019
#java #stream
자바 스트림 정리: 2. 스트림의 중간 연산
자바에서 스트림(Stream) 내의 요소를 원하는 형태에 알맞게 가공하는 중간 연산(intermediate operations)은 어떤 것들이 있을까?
Posted on February 5, 2019
#java #stream
자바 스트림 정리: 1. API 소개와 스트림 생성 연산
Java 8에서 도입된 스트림(Stream)은 무엇일까? 자바 스트림 API 소개와 스트림을 생성하는 방법에 대해 알아보자.
Posted on February 4, 2019
#java #stream
[이펙티브 자바 3판] 아이템 17. 변경 가능성을 최소화하라
[Effective Java 3th Edition] Item 17. Minimize mutability
Posted on February 2, 2019
#java #effectivejava
자바의 final 키워드
자바에서 사용하는 final 키워드는 무엇일까? 어떻게 활용할 수 있는지 알아보자
Posted on January 28, 2019
#java #final
[이펙티브 자바 3판] 아이템 82. 스레드 안전성 수준을 문서화하라
[Effective Java 3th Edition] Item 82. Document thread safety
Posted on January 28, 2019
#java #effectivajava
[이펙티브 자바 3판] 아이템 74. 메서드가 던지는 모든 예외를 문서화하라
[Effective Java 3th Edition] Item 74. Document all exceptions thrown by each method
Posted on January 25, 2019
#java #effectivejava
자바의 숫자 표현과 언더스코어(_)
자바7 부터는 숫자 리터럴에 언더스코어(또는 언더바)를 사용하여 가독성을 높일 수 있습니다.
Posted on January 23, 2019
#java
[이펙티브 자바 3판] 아이템 66. 네이티브 메서드는 신중히 사용하라
[Effective Java 3th Edition] Item 66. Use native methods judiciously
Posted on January 21, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라
[Effective Java 3th Edition] Item 58. Prefer for-each loops to traditional for loops
Posted on January 15, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 8. FINALIZER와 CLEANER 사용을 피하라
[Effective Java 3th Edition] Item 8. Avoid finalizers and cleaners
Posted on January 11, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라
[Effective Java 3th Edition] Item 31. Use bounded wildcards to increase API flexibility
Posted on January 7, 2019
#java #effectivejava
[이펙티브 자바 3판] 아이템 50. 적시에 방어적 복사본을 만들라
[Effective Java 3th Edition] Item 50. Make defensive copies when needed
Posted on January 4, 2019
#java #effectivejava
자바 직렬화: SerialVersionUID는 무엇일까?
자바 직렬화를 사용할 때 필요한 SerialVersionUID는 무엇일까?
Posted on December 28, 2018
#java #serialization #deserialization #suid
자바 직렬화: 직렬화와 역직렬화
자바에서 직렬화(serialization)와 역직렬화(deserialization)란 무엇일까?
Posted on December 26, 2018
#java #serialization #deserialization
[이펙티브 자바 3판] 아이템 42. 익명 클래스보다는 람다를 사용하라
[Effective Java 3th Edition] Item 42. Prefer lambdas to anonymous classes
Posted on December 19, 2018
#java #effectivejava
자바에서 제네릭의 장점과 사용할 때 주의할 점
자바에서 제네릭을 사용하면 좋은 점은 무엇일까? 그리고 주의할 점은?
Posted on December 19, 2018
#java #generic #generic-class #generic-interface #generic-method
[이펙티브 자바 3판] 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
[Effective Java 3th Edition] Item 4. Enforce noninstantiability with a private constructor
Posted on December 15, 2018
#java #effectivejava
자바 제네릭(Java Generic)
자바 제네릭과 제네릭 클래스, 제네릭 인터페이스 그리고 제네릭 메서드에 대해서 알아봅니다.
Posted on December 13, 2018
#java #generic #generic-class #generic-interface #generic-method
Java 8 날짜와 시간 계산
자바 8에서 추가된 날짜 관련 클래스(LocalDate, LocalDateTime)로 날짜와 시간을 계산해보자.
Posted on December 11, 2018
#java #date #자바날짜계산
Java Date와 Time 클래스를 사용하면 안되는 이유
자바에서 기본적으로 제공하는 Date와 Calendar를 사용하면 안되는 이유는 무엇일까?
Posted on December 9, 2018
#java #date #calendar
[이펙티브 자바 3판] 아이템 28. 배열보다는 리스트를 사용하라
[Effective Java 3th Edition] Item 28. Prefer lists to arrays
Posted on December 7, 2018
#java #effectivejava
[이펙티브 자바 3판] 아이템 34. INT 상수 대신 열거 타입을 사용하라
[Effective Java 3th Edition] Item 34. Use enums instead of int constants
Posted on December 2, 2018
#java #effectivejava
[이펙티브 자바 3판] 아이템 18. 상속보다는 컴포지션을 사용하라
[Effective Java 3th Edition] Item 18. Favor composition over inheritance
Posted on November 15, 2018
#java #effectivejava
[이펙티브 자바 3판] 아이템 26. 로 타입은 사용하지 말라
[Effective Java 3th Edition] Item 26. don't use raw types
Posted on November 14, 2018
#java #effectivejava
[이펙티브 자바 3판] 아이템 10. equals는 일반 규약을 지켜 재정의하라
[Effective Java 3th Edition] Item 10. Obey the general contract when overriding equals
Posted on November 10, 2018
#java #effectivejava
[이펙티브 자바 3판] 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라
[Effective Java 3th Edition] Item 2. Consider a builder when faced with many constructor parameters
Posted on November 2, 2018
#java #effectivejava
log4j, logback 그리고 log4j2
자바의 로깅 프레임워크인 log4j, logback 그리고 log4j2에 대해서 알아보자.
Posted on September 21, 2018
#java #log4j #logback #log4j2
Java Kafka Producer, Consumer configs 설정
Kafka Producer와 Kakfa Consumer의 configs를 설정해보자.
Posted on September 13, 2018
#java #kafka
Java Kafka Producer, Consumer 예제 구현
Java를 이용하여 Kafka Producer와 Kakfa Consumer를 구현해보자.
Posted on September 10, 2018
#java #kafka
자바 업캐스팅 다운캐스팅
자바에서 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)이란 무엇일까?
Posted on August 4, 2018
#java #upcasting #downcasting
자바와 행위 매개변수화(Behavior Parameterization)
어떻게 실행할 것인지 결정하지 않은 코드, 메서드에 코드를 전달해보자.
Posted on July 15, 2018
#java #parameterization #lambda
자바 오버라이딩과 오버로딩
자바에서 메서드 오버라이딩(Overriding)과 메서드 오버로딩(Overloading)은 어떤 차이가 있을까?
Posted on May 30, 2018
#java #overriding #overloading
자바의 String 객체와 String 리터럴
자바에서 문자열을 선언하는 방법은 두 가지가 있다. String과 new String()은 어떤 차이가 있을까?
Posted on May 12, 2018
#Java #String #Literal #Object
자바 컬렉션과 동기화(Java Collection Synchronization)
동기화는 중요하다. 내가 의도한 것이 다른 사람에게 다르게 보일 수 있다. 컬렉션을 사용할 때의 동기화에 대해서 알아보자
Posted on April 16, 2018
#Java #Collection #Synchronization
자바 레퍼런스와 가비지 컬렉션(Java Reference & Garbage Collection)
가비지 컬렉션에 이어서 자바 레퍼런스의 객체 참조에 대해서 알아보자.
Posted on April 2, 2018
#Java #Garbage #GC #Reference
자바 가비지 컬렉션(Java Garbage Collection)
더이상 사용되지 않는 메모리를 뜻하는 가비지(Garbage)와 이를 청소하는 가비지 컬렉션(Garbage Collection)에 대해서 알아보자.
Posted on March 29, 2018
#Java #Garbage #GC
Java의 문자열 replaceAll 메서드 $(dollar sign) 이슈
Java에서 String replaceAll 메서드를 사용할 때 겪을 수 있는 이슈
Posted on March 12, 2018
#Java #String #Replacement
자바의 인터페이스(Java Interface)
자바에서 인터페이스는 무엇일까? 그리고 자바에서는 어떻게 다중 상속을 구현할 수 있을까?
Posted on March 2, 2018
#java #interface
자바 리플렉션(Java Reflection)과 동적 로딩
클래스 내에서 다른 클래스를 동적으로 로딩(Dynamic Load) 한다.
Posted on February 25, 2018
#Java #Reflection #동적로딩
자바의 this 키워드
자바에서 객체 자기 자신을 가리키는 this 키워드를 알아보자
Posted on February 8, 2018
#java #this
자바 파일 압축과 압축 해제(ZipInputStream, ZipOutputStream)
java.util.zip 패키지를 이용한 자바 파일 압축과 압축 해제
Posted on February 3, 2018
#Java #ZipOutputStream
자바 실행파일 만들기
JSmooth를 이용하여 자바 실행 파일을 만들어보자.
Posted on February 1, 2018
#Java #JSmooth
자바의 추상 클래스와 추상 메서드
자바에서 추상 클래스와 추상 메서드를 사용하는 이유는 무엇일까?
Posted on January 29, 2018
#java #abstract
자바 접근 지정자(Java Access Modifier)
자바의 접근 지정자는 무엇이 있을까? public protected private 그리고 default 접근 지정자의 차이는?
Posted on January 24, 2018
#java #accessmodifier
자바 상속(Java Inheritance)
자바의 상속에 대한 개념과 사용 예제를 살펴보자
Posted on January 23, 2018
#java #inheritance
자바의 메인 메서드는 왜 public static을 사용할까?
자바에서 main 메서드의 구조는 왜 public static void main(String[] args) 일까?
Posted on January 20, 2018
#java #main
자바 소멸자 finalize
자바에서 메모리 할당된 객체를 해제하려면?
Posted on January 3, 2018
#java #finalize #소멸자
Java Swing 라이브러리 꾸미기(LookAndFeel 라이브러리)
LookAndFeel을 이용하여 Swing 라이브러리를 꾸며보자.
Posted on January 2, 2018
#java #swing #lookandfeel
자바의 데이터 타입
자바 언어의 데이터 타입에는 무엇이 있을까?
Posted on January 1, 2018
#java #datatype
자바(Java) 언어의 특징
자바 언어는 객체지향, 플랫폼 독립성, 캡슐화와 같은 특성을 가지고 있다. 또 어떤 특성을 가지고 있을까?
Posted on January 1, 2018
#java