반응형

오늘은 심심해서 애들도 가르킬겸 용어정리에 대해서 고민하는 시간을 가졌다.

자바의 리팩토링(refactoring) 용어에 대해서 이해하고 샘플 코드를 통해 좀 더 자세히 알아 보도록 하자.


자바에서 리팩토링이란? (사전적 의미)

리팩토링은 SW의 구조 또는 로직을 변경하여 기존 코드 대비 더 이해하기 쉽고 유지보수하기 편리하게 만드는 행위를 말합니다.

즉, 새로 만드는 신규 코드에 대해서는 해당 용어가 적합하지 않고 유지보수 또는 고도화 프로젝트에서 기존에 짜여진 코드를 수정할 때 보다 더 깔끔하게 만드는 것을 리팩토링이라고 한다.

그럼 리팩토링을 왜 할까?
(개인적인 생각)

1) 코드가 매우 더티할 경우 : 가독성이 너무 낮아서 겨우 이해했어도 다음번호 또 봐도 이해 안갈때 깔끔하게 만든다.

2) 불필요하게 너무 길 경우 : 라인을 줄여서 가독성을 높이는게 좋은데 OOP 관점으로 짜지 않고 C처럼 짰을때 이다.

3) 좋은 메소드가 나왔을 경우 : JDK가 버전 업되면서 Deprecated 되거나 기존의 로직을 대체할 수 있는 메소드가 나온 경우

4) 업무 확장을 위해 재사용 할 경우 : 기존에 특정 프로세스에 국한되어 쓰던 로직이 재사용이 빈번하게 이루어 져야 하는 경우 분리작업을 할 수 있음.

자 그럼 예제를 한번 들어서 확인 해볼까?? 

public class Calculator {
    public int add(int num1, int num2) {
        return num1 + num2;
    }

    public int subtract(int num1, int num2) {
        return num1 - num2;
    }

    public int multiply(int num1, int num2) {
        return num1 * num2;
    }

    public int divide(int num1, int num2) {
        if (num2 != 0) {
            return num1 / num2;
        } else {
            System.out.println("Cannot divide by zero!");
            return 0;
        }
    }
}

위 코드를 보자.  divide 메소드에서 num2 변수가 0인지 아닌지 비교하는것은 로직으로는 크게 문제 없다. 근데 좀 더티할 뿐만 아니라 저렇게 비교하는 로직이 다른 기능에도 많다고 가정 한다면?? 

public class Calculator {
    public int add(int num1, int num2) {
        return num1 + num2;
    }

    public int subtract(int num1, int num2) {
        return num1 - num2;
    }

    public int multiply(int num1, int num2) {
        return num1 * num2;
    }

    public int divide(int num1, int num2) {
        if (isNotZero(num2)) {
            return num1 / num2;
        } else {
            handleDivideByZero();
            return 0;
        }
    }

    private boolean isNotZero(int num) {
        return num != 0;
    }

    private void handleDivideByZero() {
        System.out.println("Cannot divide by zero!");
    }
}

위 처럼 isNotZero와 hadleDivideByZero 메소드를 구현해서 재사용 가능하게끔 하는 것이다.

대략 이해 가셨나용?

리팩토링은 정답이 없습니다. 단지... 리팩토링을 하는 대상의 실력이 정답입니다.

 

끝~

반응형
반응형

오라클 Java가 유료가 되었다는 말은 상당히 오래전 부터 거론되었던 말입니다.

요즘에는 OPENJDK 를 많이 사용하고 있으며 , 레거시 시스템은 JDK1.8이하로 타 사이트에서 많이 사용하고 있기 때문에 라이센스 규정에 대해서 명확히 알아볼 필요가 있습니다.

오라클은 두 가지 버전의 Java(Oracle JDKOracle OpenJDK)를 제공합니다. Oracle JDK(Java Development Kit)는 상용 제품이며 사업용으로 제품에 탑재하여 사용하려면 라이센스가 필요합니다. 반면에 Oracle 오픈JDK는 자바 SE 플랫폼의 무료 오픈 소스 입니다.

제품으로써 Oracle JDK를 사용하는 경우 Oracle에서 라이센스를 구입해야 합니다. 그러나 개발 및 테스트 목적으로 오라클 JDK를 무료로 사용할 수 있습니다. Oracle은 Oracle JDK를 개발 및 테스트에서 무료로 사용할 수 있는 Oracle Java SE용 Oracle Technology Network License Agreement라는 별도의 라이센스를 제공합니다.

오라클 OpenJDK를 사용하는 경우 자유-오픈 소스 라이선스인 GNU GPL(General Public License)로 출시되므로 어떤 목적으로든 라이선스를 구입할 필요가 없습니다.

OpenJDK, Adapt OpenJDK과 같은 자바 SE 플랫폼의 다양한 무료 오픈소스 상품있다는 것도 알아두기 바란다.



공식 OpenJDK : OpenJDK 프로젝트에서 제공하는 OpenJDK의 공식 빌드입니다. 이들은 오라클에 의해 출시되며 자바 SE 플랫폼의 참조 구현이다.

타사 OpenJDK : 타사 공급업체, 조직 또는 개인이 만들고 유지 관리하는 OpenJDK 입니다. 타사 OpenJDK 의 몇 가지 예로는 AdoptOpenJDK, Amazon Corretto, and Red Hat OpenJDK 가 있습니다.

Customized OpenJDK : 조직 또는 개인이 특정 요구 사항을 충족하도록 사용자 정의하거나 수정한 OpenJDK 입니다. Customized OpenJDK에는 추가 기능, 최적화 또는 버그 수정이 포함될 수 있습니다. 크게 안정적인 제품은 아닙니다.

LTS OpenJDK : 이러한 빌드는 오랜 기간동안 유지보수가 지원되는 OpenJDK 빌드입니다. LTS 빌드는 안정적이고 안정적인 릴리스가 필요한 엔터프라이즈 및 프로덕션 사용 사례에 적합합니다.

이러한 유형의 OpenJDK마다 릴리스 일정, 지원 정책 및 라이센스 조건이 다를 수 있습니다. 각 빌드의 특성을 이해하고 요구 사항에 가장 적합한 것을 선택하는 것이 중요합니다.

반응형
반응형

웹 취약점 점검을 위해서 OWASP ZAP 프로그램을 설치하려고 하면 아래와 같은 에러가 뜹니다.

위와 같은 에러의 해결법을 찾아보도록 하겠습니다.

"The install4j wizard could not find a Java (TM) Runtime Environment" 오류 메시지는 실행하려는 설치 프로그램이 시스템에 JRE(Java Runtime Environment)를 설치해야 하지만 찾을 수 없음을 의미합니다.

이 문제를 해결하려면 시스템에 JRE를 설치해야 합니다. 다음을 수행할 수 있습니다:

JRE가 이미 설치되어 있는지 확인합니다:
Windows의 경우 "제어판"으로 이동하여 설치된 프로그램 목록에서 "Java"를 찾습니다. Mac에서 "시스템 기본 설정"으로 이동한 다음 "Java" 아이콘을 클릭합니다. JRE가 이미 설치되어 있으면 최신 버전인지 확인하고 설치 프로그램을 다시 실행해 보십시오.

JRE 설치:
Oracle 웹 사이트에서 JRE의 최신 버전을 다운로드할 수 있습니다. 운영 체제(Windows 또는 Mac) 및 아키텍처(32비트 또는 64비트)에 맞는 올바른 버전을 다운로드해야 합니다. JRE를 다운로드했으면 설치 관리자를 실행하고 지침에 따라 설치합니다.

JAVA_를 설정합니다HOME 환경 변수:
JRE를 설치한 후 JAVA_를 설정해야 할 수도 있습니다JRE의 위치를 가리키는 HOME 환경 변수. 이렇게 하려면 다음 단계를 수행하십시오:

Windows의 경우: 제어판으로 이동한 다음 "시스템 및 보안"을 클릭하고 "시스템"을 클릭합니다. 왼쪽의 "고급 시스템 설정"을 클릭한 다음 "환경 변수" 버튼을 클릭합니다. 시스템 변수에서 "새로 만들기"를 클릭하고 변수 이름으로 "JAVA_HOME"을 입력하고 변수 값으로 JRE 설치 경로를 입력합니다.



 

 

반응형
반응형

하나의 이클립스에 여러개의 프로젝트를 띄우다 보면 메모리가 적어서 오류가 난다.

이럴 경우 아래와 같이 에러가 뜨게 된다.

메모리부족 현상으로 이클립스에  뜨는 메시지

해결법은 매우 간단하다.

<Resources cachingAllowed="true" cacheMaxSize="100000" />

위 코드를 context.xml에 넣으면 된다.

이클립스 상에서 context.xml를 찾아가는 방법

저 코드를 아래와 같이 넣으면 말끔히 해결된다.

<Resource> 태그를 넣은 모습

모두들 이걸로 메모리현상에서 벗어나길 기대하며 적어봄.

 

반응형

+ Recent posts