본문 바로가기
반응형

Language/Java48

엑셀 생성 기능 리팩토링하기 엑셀을 다운로드하는 기능을 들었는데 구현에만 급급하다 보니 공통로직으로 빼지 못하고 아래의 코드에서 조금씩(필드에 따른 칼럼)만 변경하여 구현하게 되었다.public Workbook makeUserListExcel(UserCriteriaVO criteria) { List userList = userRepository.findUserListByCriteria(criteria); String[] colNames = { "no", "등급", "ID", "PWD", "이름", "핸드폰 번호", "비고", "생성자 ID", "생성자 이름", "생성일", "마지막 수정자 ID", "마지막 수정자 이름", "마지막 수정일" }; XSSFWo.. 2023. 9. 8.
enum 클래스 활용하기 예전에는 enum을 잘 사용하지 않다가 최근에서야 enum 클래스를 활용하기 시작했다. 확실히 enum 클래스를 사용하면 코드만 읽고도 의미를 확실하게 알 수 있어 좀 더 좋은 코드가 되는 것 같다. enum을 좀 더 잘 활용하기 위해서 정리하는 시간을 한번 갖으려고 한다. Enum이란? enum클래스는 JDK 1.5에 나온 기능이다. 열거체를 정의할 수 있는 기능으로 상수를 클래스처럼 보이게 해 준다. 장점 비교할 때 실제 값뿐만 아니라 타입까지도 체크한다. enum의 상숫값이 재 정의되어도 다시 컴파일할 필요가 없다. enum 정의 enum 열거체이름{ 상수1이름, 상수2이름, 상수3이름, ... } 상수를 작성할 때는 대문자를 사용하여 작성한다. ;을 붙이지 않는다. 예시 enum Rainbow{ .. 2023. 9. 6.
Java 로깅 알아보기 2 - logback 2023.08.04 - [자바(Java)] - Java 로깅 알아보기 1 - Logging이란 기본적인 내용은 이전 글을 통해 확인하는 것을 추천! Log4j 구조 Logger : 로그의 주체, 로그의 메시지 전달, 특정 패키지 안의 특정 레벨 이상만 출력 Appender: 어디에 출력할지에 대해 기술 Encoder: 어떻게 출력할지에 대해 기술 Logback 환경 설정 (logback.xml) resources 하단에 logback.xml 파일 생성 %d{yyyy-MM-dd HH:mm:ss} %highlight([%-5p]) --- [%F]%M\\(%L\\) : %m%n 속성 설정 appender 부분은 출력위치를 결정해 주고 (STDOUT), Appender로 사용할 클래스를 설정해 주는 부분이다. .. 2023. 8. 4.
Java 로깅 알아보기 1 - Logging이란 로깅 (Logging)시스템의 작동 정보인 로그(Log)를 기록하는 것시스템이 작동할 때 작동 상태의 기록과 보존, 이용자의 습성 조사 및 시스템 동작의 분석 등을 하기 위해 작동 중 각종 정보를 기록하는 것일반적인 출력인 System.out.println()은 동기이기 때문에 로그를 출력하는 동안 다음 동작을 할 수 없기 때문에 성능저하가 발생한다.Slf4j (Simple Log Facade For Java)로깅 프레임워크가 아님.다양한 로깅 프레임워크가 접근할 수 있도록 하는 추상화 계층(인터페이스)단독적으로 사용할 수 없다.브리지를 통해 자바의 다양한 로깅 프레임워크를 간편하게 사용할 수 있다.로그 종류Fatal : 아주 심각한 에러Error : 요청을 처리하던 중 문제가 발생한 상태Warn : 처.. 2023. 8. 4.
Bean, VO, DTO, Entity 구분하기 개발을 하면서 데이터를 다루기 위해서 여러 종류의 클래스들을 사용하게 되는데 대표적으로 Bean, VO, DTO, Entity 등이 있다. 이것들을 구분하여 언제 사용해야 하는지 알아보는 시간을 가져보았다. Bean Bean은 Java Bean과 Spring Bean으로 나눠지는데 조금 다른 의미가 있어 구분할 필요가 있다고 생각한다. Java Bean 자바로 작성된 소프트웨어 컴포넌트 클래스로 동작하기 위해 따라야할 몇 가지 관례가 있다 클래스는 직렬화되어야 한다.(클래스의 상태를 지속적으로 저장 혹은 복원시키기 위해) 클래스는 기본 생성자를 가지고 있어야 한다. 클래스의 속성들은 get, set 혹은 표준 명명법을 따르는 메서드들을 사용해 접근할 수 있어야 한다. 클래스는 필요한 이벤트 처리 메서드들.. 2023. 7. 26.
Gradle을 이용한 순수 자바 Jar 만들기 스프링 부트에서는 간단하게 bootJar 커맨드를 이용해서 Jar파일로 만드는 것이 간편했지만 자바만 사용했을 때에는 몇 가지 작업을 해주어야 한다. 1. Gradle plugin 설정 그래들에는 Java에 관련된 Task들을 작업해 둔 기본 plugin이 존재한다. 이를 이용하면 빌드와 같은 작업들을 간단하게 할 수 있다. build.gradle에 다음 구문을 추가해주면 된다. plugins { id 'java' } 이와 같이 추가해주고 gradle build gradle jar 명령어를 실행해 주거나 인텔리제이에서 가장 우측에 보면 Gradle 탭이 있는데 거기에서 Tasks - build에 들어가서 build와 jar를 순서대로 작동시켜 주면 된다. 이렇게 하면 프로젝트 최상위 디렉터리에 build.. 2023. 6. 20.
MacOS에서 JDK (Java Developer Kit) 설치하기 맥북을 사용 중에 Java의 버전을 관리하고 싶어 설치방법을 알아보던 중 기록해두어야 할 것 같아서 글을 작성하게 되었다 맥북을 사용하는 사람이라면 대부분 설치되어있는 homebrew를 사용하여 설치하려고 한다. (그게 아니라면 직접 openjdk의 레파지토리에 들어가서 다운로드해주면 된다.) 주소 : https://jdk.java.net/java-se-ri/17 Java Platform, Standard Edition 17 Reference Implementations Java Platform, Standard Edition 17 Reference Implementations The official Reference Implementation for Java SE 17 (JSR 392) is based.. 2023. 6. 13.
JVM (Java Virtual Machine), 자바 가상 머신 JVM JVM이란? Java Virtual Machine의 줄임말로 자바를 실행하기 위한 가상 머신을 의미한다. Java는 OS에 종속적이지 않다는 특징이 있는데 이를 위해서 OS와 독립적으로 JAVA를 실행시켜 주는 역할을 하게 된다. 자바의 컴파일 과정 일종의 가상 머신이다. 우리가 작성한 java 코드 (원시 코드)는 CPU가 인식하지 못하기 때문에 기계어로 번역을 해주어야 한다. JVM이 기계어로 번역해 주기 때문에 JVM이 읽을 수 있는 코드인 Java Bytecode (. class) 파일로 번역을 해서 JVM에 전달해 주게 된다. 우리는 java코드만 작성하여 class 파일만 생성하면 JVM을 통해 OS에 무관하게 실행시킬 수 있는 것이다. 자바 컴파일러 JDK 설치하면 bin에 존재하는 .. 2023. 6. 11.
자바 코딩테스트를 위한 정리 - 입출력2 (EOF 처리) EOF란 End of File의 줄임말로 파일의 끝을 뜻합니다. 알고리즘 테스트에선 일반적으로 테스트 케이스의 수를 따로 명시해주지 않고 입력을 가변적으로 받을때 사용하게 됩니다. 예로 '4375번 문제 (문제 제목: 1)'이 있습니다. 이와 같이 문제에서 테스트케이스의 개수 혹은 끝을 명시해주지 않을때 어떻게 처리해야하는지 알아보도록 하겠습니다. 자바의 대표적인 두가지 입력 클래스인 아래 2가지 기준으로 설명하겠습니다. 1. Scanner 2. BufferedReader 1. Scanner Scanner에서 EOF를 처리하는 방법은 hasNext()메소드를 사용해서 처리하는 방법입니다. 해당 메소드는 다음 입력이 있으면 true 없으면 false를 반환합니다. 이를 사용해서 EOF여부를 확인할 수 있습.. 2022. 12. 21.
반응형