java 5

[Java] JMX를 통한 자원 모니터링

JMX 확장 라이브러리를 이용한 Jconsole, Jvisualvm 기반으로 서버 실시간 자원 모니터링. ( Thread dump도 지원한다. ) Java 실행하는 쉘 스크립트를 이용하여 JMX port 오픈하는 방법 DEBUG_OPT="-Dcom.sun.management.jmxremote -Dcohttp://m.sun.management.jmxremote.port= #{JMX PORT} -Dcohttp://m.sun.management.jmxremote.rmi.port= #{JMX PORT} -Dcohttp://m.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcohttp://m...

Java 2021.06.11

[Design Pattern] Chain of Responsibility Pattern

책임 연쇄 패턴( Chain of Responsibility Pattern ) 명령 객체와 일련의 처리 객체를 포함하는 패턴 각각의 처리 객체는 명령 객체를 처리할 수 있는 연산의 집합이며 체인 안의 처리 객체가 핸들링 할 수 없는 명령은 다음 처리 객체로 넘겨진다. 체인에 들어가는 객체를 바꾸거나 순서를 바꿈으로서 역할을 동적으로 추가/제거 및 상황에 따라 동적으로 핸들러를 추가하거나 제거 할 수 있으며 이러한 변화가 전체 구조에 아무런 영향을 주지 않도록 클래스들 간의 낮은 결합도로 구현되어있다. 명령에 대한 처리가 반드시 수행된다는 보장이 안되므로 반드시 명령이 처리 될 수 있도록 적절한 체인의 순서 구현 필요 ※ Sample Code public abstract class Middleware { ..

Java/Design Pattern 2020.11.23

[Java] Reflection

Java Reflection 이란, Reflection이란 객체를 통해 클래스의 정보를 분석해 내는 것을 말한다. ( 투명, 반사라는 사전적인 의미를 지니고 있다. ) 객체의 메모리 정보만 알고 있고, 객체의 형에 대해서는 모른다는 가정하에 Reflection을 통해 아래와 같은 정보를 가져 올 수 있으며. 이 정보를 통해 객체를 생성하거나 메소드를 호출하거나 변수의 값을 변경 할 수 있다. Class Constructor Method Field Class reflection = Data.class; // Data class Method 정보 Method[] m = reflection.getMethods(); // Data class Field 정보 Field[] f = reflection.getFiel..

Java 2020.11.19

[Java] Lombok

Lombok(롬복) 이란? - Java에서 Model Object를 만들때, 멤버필드(프로퍼티)에 대해 Getter/Setter, toString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여주는 라이브러리 프로젝트이다. 생성자 자동 생성 @NoArgsConstructor 어노테이션은 파라미터가 없는 기본 생성자를 생성해준다 @AllArgsConstructor 어노테이션은 모든 필드 값을 파라미터로 받는 생성자를 생성해준다 @RequiredArgsConstructor 어노테이션은 final 이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성해준다. ToString 메소드 자동 생성 @ToString 어노테이션만 클래스에 붙여주면 자동..

Java 2020.10.20

[Java] Generics(제네릭)

JAVA 제네릭(Generics) JDK 1.5 버전에 처음 도입되었으며, 클래스 내부에서 사용한 데이터 타입을 외부에서 지정하는 기법을 의미한다. 타양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 한다. 제네릭은 크게 2가지의 장점을 가지고 있다. 타입의 안전성 : 의도하지 않은 타입의 객체가 저장되는 것을 막고, 다른 타입의 객체로 인한 타입 형태가 맞지 않아 발생하는 문제를 없애준다. 불필요한 형변환을 줄여 코드의 간결함 : 타입을 미리 명시함으로써 다른 타입의 객체가 저장되지 않아 객체를 꺼내 사용할 시 형변환을 통한 타입을 맞출 필요가 없어 코드를 간결하게 줄일 수 있다. 1. 제네릭 타입 - 대표적으로 많이 사용되는 클래스는 ArrayList가 있다. - 타입을 파..

Java 2020.09.29