공통 메서드 중 가장많이 사용하는 isEmpty 메서드를 소개한다.

 

null or not null 을 먼저 판별한 후

 

각 어떤 클래스인지 instanceof로 판단 뒤 각 클래스에 선언된 메서드를 이용하여 판별한다.

 

Java isEmpty 메서드

/**
 * obj가 null 혹은 비어있는지 비교
 * 
 * @params Object obj
 * @return boolean
 * @apiNote Custom.isEmpty(obj)
 *
 */
public static boolean isEmpty(Object obj){
    // null 이라면
    if (obj == null)
        return true;

    // String 이라면
    if (obj instanceof String)
        return ("".equals(((String) obj).trim()));

    // Map이라면
    if (obj instanceof Map)
        return ((Map<?,?>) obj).isEmpty();

    // List라면
    if (obj instanceof List)
        return ((List<?>) obj).isEmpty();

    // Object 배열이라면..
    if (obj instanceof Object[])
        return (((Object[]) obj).length == 0);

    return false;
}

 

MYSQL의 버전을 확인하는 방법

 

SELECT VERSION();

 

 

 

MYSQL 버전 확인

스크립트로 개발을 하면서, 고민이 생겼다.

 

혼자 개발하면 문제가 없지만.. 협업을 하게 되었을 때 스크립트 특성상

 

function명이나, 변수명이 중복으로 사용될 때 정말 난감하지 않을 수 없었다.

 

특히, 공통 script에 선언한 function 명이 중복되는 상황이 왔을 때 이러지도 저러지도 못하는 상황이 있다.

 

그럴 때, 즉시 실행함수로 모듈화 하는것이 이 문제를 해결할 수 있고, 중복을 피할 수 있었다.

 

더 나아가 유지보수에도 많은 도움이 되었다.

 

앞으로는 공통 script는 꼭 모듈화를 통해, 만들어 써야겠다.

 

(function(window){
    let module = {
        HI_HELLO: '안녕하세요',
        getString: function (str) {
            let value = '';
            	value = str + '빼기';
            return value;
        },

        getInteger: function (num) {
            return num;
        }
    }
    window.CustomUtils = module;
}(window));

* 사용법은 다음과 같다

// 전역변수 사용하기
console.debug('Hello -> ' , CustomUtils.HI_HELLO);
// result:: 안녕하세요

// function 사용하기
CustomUtils.getString('빼기');
// result:: 더하기빼기

 

 

 

Javascript 모듈(Module) 만들기

 

JS Tree를 사용 중 답답한 상황이 있었다.

 

옵션 중 체크박스(checkbox)를 사용하고 있었는데,

 

한 부모의 자식노드를 모두 클릭하거나, 하나의 자식부모로 연결된 여러개의 노드가 있을 경우

모두가 선택(체크)되는 현상이었다.

 

그 기능이 default로 지정되어서 몇 시간 째 고생이었다.

 

JS Tree의 옵션 중 checkbox 안에 'three_state' 라는 옵션이 있었고,

default가 true로 되어있었다.(true: 사용, false: 미사용)

 

$('#tree').jstree({
    'checkbox' : {
        'three_state': false
    }
});

 

API를 꼼꼼히 읽어보지 못한 내 잘못이다.

 

부모, 자식노드의 자동 체크 방지 'three_state'

 

 

+ Recent posts