본문 바로가기

java

(5)
Java 환경변수 설정이 필요한 이유, 설정 방법 (mac) 환경변수 설정이 필요한 이유 환경변수는 운영체제가 어떤 경로에서든 인식할 수 있는 변수이다. 자바 환경 변수를 등록하는 것은 컴퓨터의 어떤 경로에서든 운영체제가 자바를 인식할 수 있도록 하기 위해서이다. 환경변수를 설정하면 어떤 경로에서든 자바 설치 폴더까지 이동할 필요없이 명령어로 자바 실행이 가능해진다. 1. Java가 설치된 경로 찾기 아래 명령어를 실행했을 때 나오는 경로를 복사한다. cd /usr/libexec ./java_home 2. 환경변수 설정 vi ~/.zshrc vi ~/.bash_profile vi로 ~/.zshrc 또는 ~/.bash_profile 편집기를 열어 환경변수를 입력해준다. export JAVA_HOME="/Library/Java/JavaVirtualMachines/zu..
소나큐브(Sonarqube)와 jacoco로 코드품질 측정, 정적분석 Motivation 프로젝트에서 코드 퀄리티를 측정하고 유지하기 위해서 sonarqube를 적용했습니다. 추가적으로 테스트 코드를 얼마나 잘 작성하고 있는지, 즉 코드 커버리지 측정을 위해 jacoco도 함께 적용했습니다. (대상이된 프로젝트는 java와 kotlin 언어로 이루어져 있습니다.) 소나큐브란 ? 소나큐브는 정적 프로그램 분석 도구입니다. 정적분석은 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법입니다. 소나큐브는 아래 7가지 품질 요소를 기준으로 코드의 품질을 측정합니다. 버그(Reliability) : 잠재적인 버그, 런타임 중 예상되는 이슈 코드악취(Maintainability) : 심각한 이슈는 아니지만 사소한 이슈들. 모듈성, 이해가능성..
[java] File 지우기. delete vs deleteOnExit() .delete() 함수는 실행 즉시 파일을 삭제하고 deleteOnExit()은 jvm이 종료할 때 파일을 삭제한다. .delete() 실행 시점 즉시 파일 삭제 File inputFile = new File(fileName); InputStream inputStream = new FileInputStream(inputFile); byte[] buf = new byte[1024]; int len; while( (len = inputFile.read(buf)) > 0 ){ outputStream.write(buf, 0, len); } inputFile.delete(); // 파일 삭제 유의할 점 실행 시점에 즉시 삭제되므로, 파일을 사용하는 모든 작업이 끝난 뒤에 실행하도록 코드를 작성해야 한다. 장점 파..
[Java] Builder Pattern Builder Pattern 생성자에 매개변수가 많을 때 사용하는 방법 필수 매개변수 만으로 생성자를 호출해서 빌더 객체를 얻는다. 그 다음 빌더 객체가 제공하는 세터 메소드들로 원하는 선택 매개변수들을 설정한다. 빌더 패턴에 대한 자세한 내용은 이펙티브 자바 item2를 보고 링크에 정리했다. public class NutritionFactsBuilder { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public static class Builder..
[Java] Nested Class (중첩 클래스) 중첩 클래스 : 다른 클래스 안에 정의된 클래스 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 하며, 그 외의 쓰임이 있으면 중첩 클래스로 구현하면 안된다. Nested Class를 사용하는 이유 소스의 가독성, 유지보수 오직 한 곳에서 사용되는 클래스들의 논리적인 그룹핑 방법 한 클래스가 다른 하나의 클래스에서만 사용될 경우 → 두 클래스를 함께 두는 것이 논리적임 캡슐화 증대 private으로 다른 클래스들로 부터 감추자 Nested Class의 종류 static nested class local inner class (non-static) anonymouse inner class static nested class public class University { static class Stude..

반응형