java
6 posts
여러 종류의 OpenJDK 중에서 선택하기

별 다른 이유없이 똑같은 JDK 를 사용하고 있는 자 보아라. 본인이 관심이 없다면 처음에 접한 JDK 만을 사용하게 됩니다. 저도 사이드 프로젝트를 새로 시작하게되면서 어떤 JDK 를 사용해야하나 고민하던 중 JDK 의 버전과 종류를 정리 해봤는데, 저 처럼 사용하고 있는 JDK 가 어떤 장점이 있는지 모른다면 이번 기회에 어떤 JDK 가 있는지, 어떤 기준에 따라 선택하는게 좋은지 알아보고자 합니다. 1. Java 버전 선택하기 8 미만의 버전은 메리트가 없다 8 미만의 java 버전은 22년도 기준 지원이 모두 끝났을 뿐 아니라 해당 버전을 지원하는 라이브러리의 보안 취약점을 해결하기가 어렵습니다. 여러 이슈가 해결된 라이브러리와 프레임워크는 1.8(8) 버전 이상을 지원하는 경우가 많기 때문에 특별한 이유가 없다면 최소 8, 혹은 그 이상의 버전을 선택할 수 있도록 합니다. LTS 가 적힌 버전 중에서 고려할 것 지원 기간은 아주 중요하기 때문에 Long Term Suppo…

September 20, 2022
java
[Gradle] Gradle Project 에 JUnit5 + AssertThat 설정

개요 Gradle Project 에 Junit5 + AssertThat 을 설정해보도록 하겠습니다. 맥락을 이해한다면 Spring 프레임워크를 사용하거나 Maven Project 에도 적용할 수 있으니 참고 바랍니다. 종류 환경 OS M1 Mac(Monterey 12.4) IDE Intellij(2022.1.2) Java jdk17 (temurin) Gradle Project 에 JUnit5 라이브러리 추가 Gradle Junit5 Use Guide 를 확인하여 손쉽게 JUnit5 를 적용할 수 있습니다. 직접적인 관련은 없지만 assertThat 을 사용하기 위해서 assertj 종속성도 같이 추가했습니다. Gradle Project build.gradle 수정 Gradle Spring 환경에서 junit5 라이브러리 추가 Gradle 과 동일하게 설정해도 무관하지만 Spring boot 에는 spring-boot-starter-test 가 존재하기 때문에 종속성을 다르게 가져갈…

June 21, 2022
spring
java
[Java] Gradle Project lombok 설정

개요 Gradle Proejct 에 Lombok 을 추가하는 가장 정석적이고 깔끔한 방법을 소개하고자 합니다. 추가적으로 Intellij IDE 에서 해야되는 간단한 설정도 확인할 수 있습니다. 종류 환경 OS M1 Mac(Monterey 12.4) IDE Intellij(2022.1.2) Java jdk17 (temurin) Gradle Project 에 Lombok 적용하기 주로 라이브러리에 추가하는 통상적인 방법과 달리 Gralde Project는 라이브러리를 추가하지 않아도 plugin 으로 간단히 Lombok을 적용할 수 있습니다. lombok plugins guide 에 접속하여 버전과 적용 방법을 확인할 수 있습니다. bulid.gradle 에 lombok plugin 추가 Dependences 에 의존성과 annotation 설정을 해야하는 일반 gradle 환경과 달리 간단하게 적용할 수 있는 것이 가장 큰 장점입니다. IntelliJ 에 Lombok 설정하기 플러…

June 20, 2022
java
spring
[Java] 파일 구분자 File.separator 대신 Path 사용하기

개발을 하다보면 경로를 지정해 파일을 가져오거나 저장을 하는 경우가 있을 수 있습니다. 이번 포스트에서는 java 에서 절대 경로를 지정하는 방법에 대해 알아보고자 합니다. 잘못된 경로 지정 방법 하드 코딩으로 절대경로 지정하기 가장 직관적이고 간결한 방법이지만 경로 사이에 있는 구분자는 운영체제마다 조금씩 다르기 때문에 적절하지 않은 방식입니다. 개선된 방법 File.separator 로 파일 구분자 삽입하기 직접 실행한다면 각 운영체제에 맞춰 파일 구분자가 다르게 삽입되는 것을 확인할 수 있습니다. 다만 하드코딩보다 훨씬 코드가 길어서 경로가 길면 코드를 치기가 힘들고 가독성이 떨어진다는 단점이 있습니다. Path.get() 으로 파일 구분자 삽입하기 File.separator 를 사용했을 때 처럼 운영체제마다 파일 구분자가 다르게 삽입되는 것을 확인할 수 있습니다. 그럼에도 코드는 더 짧고 가독성도 좋기 때문에 기존 방식들보다 더 추천합니다. 마무리 Pahts 는 경로를 지…

January 30, 2022
java
[Gradle] Gradle project 시작하기

개요 Mac 환경에서 Gradle Proejct 를 생성하는 방법에 대해서 알아보겠습니다. 종류 환경 OS M1 Mac(Monterey 12.4) IDE Intellij(2022.1.2) Java jdk17 (temurin) Gralde 프로젝트 시작하기 Gradle Install Hombrew Gradle Installation Documents Gradle 공식 문서에 따라 설치하도록 합니다. Hombrew 로 설치하는 것 역시 권장 방법이므로 터미널에 다음과 같이 입력 후 실행합니다. 1. 프로젝트 시작 폴더 생성 Gradle 프로젝트를 생성하기 전에 해당 프로젝트를 시작할 폴더를 새로 만듭니다. 폴더 명과 별개로 프로젝트 이름은 따로 지정할 수도 있습니다. 방법은 아래 말씀드리겠습니다. 2. Gradle 프로젝트 생성 폴더로 이동한 후에 아래 명령어를 입력합니다. 입력 후에는 몇 가지 옵션을 선택하여 프로젝트를 새로 생성합니다. 생성하고자 하는 프로젝트의 타입을 선택합니다…

January 28, 2022
java
[Java] String 문자열 뒤집기

문자열을 거꾸로 뒤집는 방법은 여러 가지가 있지만 StringBuffer, reverse() 를 사용하는게 제일 간결하지 않을까싶습니다. StringBuffer, reverse() 예제 Code Result 설명 StringBuffer StringBuffer 클래스의 인스턴스는 String 클래스의 인스턴스와 다르게 그 값을 변경하거나 추가할 수 있는 가변 클래스입니다. new StringBuffer()로 새롭게 선언할 수 있습니다. StringBuffer.reverse() reverse() 메소드를 사용하면 해당 객체를 뒤집을 수 있습니다. reverse()를 사용하면 예제와 같이 sb와 reverseString의 문자열이 뒤집혀 있는 것을 확인할 수 있습니다. StringBuffer는 String를 사용하는 것보다 변경이 쉽다는 점에서 메모리 공간과 속도 측면에서 이득입니다. 다만 만능은 아니므로 적절한 상황에서 필요에 따라 사용하는 것이 좋아보입니다. StringBuffer,…

January 01, 2022
java