728x90 반응형 🐎 언어(Language)/Java14 [Java] MyBatis: ClassNotFoundException 트러블 슈팅 (JVM 네이밍 규칙) InnerClass 사용 시 Mybatis에서 ClassNotFound 에러를 발생시키는 원인인 JVM의 클래스 네이밍 규칙..? TDD 개발 중 Mybatis 매퍼 파일에 쿼리를 작성하여 실행했을 때 resultType으로 InnerClass인 Authority 클래스를 사용한 쿼리들에서 ClassNotFoundException이 발생했다. 이래서 테스트 주도 개발이 중요하다.... SELECT authority_id AS authorityId, authority_name AS authorityName, created_date AS createdDate FROM authorities Caused by: java.lang.ClassNotFoundException: Cannot find class: kr... 2024. 9. 18. [JAVA] ver.8 Java 8버전이 많이 사용되는 이유. JDK 8은 2014년에 등장하였고 장기 지원(LTS)버전 중에서도 가장 오랜 기간 지원되는 버전이며, 이러한 이유로 많은 프로젝트들이 Java 8로 개발되었기 때문에 기존 제품과의 호환성과 안정성 등의 이유 때문에 아직까지도 가장 많이 사용되는 버전입니다. *Oracle JDK 버전별 지원 로드맵 Java 8버전의 핵심 기능들 Lambda Expression Stream Optional Class Lambda Expression람다 함수(Lambda Function)란?람다 함수는 함수형 프로그래밍 언어에서 사용되는 개념으로, 익명함수 라고도 불리고 있습니다.람다 표현식을 사용하여 함수를 정의하며 이름이 없는 함수로, 코드를 간결하게 만들고 익명 함수를 간단하게 .. 2023. 11. 10. [Java] Quartz 스케줄러 Quartz는 Java로 작성된 오픈소스 스케줄링 라이브러리이다. Quartz를 사용하여 Java 애플리케이션에서 작업을 예약하고 관리할 수 있으며, 복잡한 작업 예약 및 스케줄링을 간편하게 처리할 수 있도록 도와준다. 라이브러리 추가. org.quartz-scheduler quartz 2.3.2 구조 Job - 실행할 작업을 나타내는 인터페이스로 execute 메서드를 구현하여 작업 내용을 정의한다. JobDetail - Job을 실행하기 위한 상세 정보를 가진 객체로, Job 클래스와 그룹명, JobData 등을 포함한다. Scheduler - 작업의 실행과 관리를 담당하는 핵심 컴포넌트로, JobDetail과 Trigger를 관리하여 작업을 스케줄링한다. Trigger - Job을 실행하는 시점을 .. 2023. 9. 24. [Java] Gson이란? 💡Gson은 Java 객체를 Json 형식으로 변환하는데 사용할 수 있는 Java 라이브러리 이다. Gson은 Google에서 제공하는 java용 Json 라이브러리로, Java 객체를 Json 형식으로 직렬화(serialize), Json 형식의 데이터를 Java 객체로 역직렬화(deserialize)를 간단하게 할 수 있게 해준다. Gson을 사용하기 위해서는 라이브러리를 추가해줘야 한다. # Gradle dependencies { implementation 'com.google.code.gson:gson:2.10.1' } # Maven com.google.code.gson gson 2.10.1 Java 객체 -> Json 형식 직렬화 import com.google.gson.Gson; public .. 2023. 9. 24. [Java] JVM - JRE - JDK 📌JVM, JRE, JDK의 이해와 관계 JVM (Java Virtual Machine) jvm이란 자바 가상 머신으로 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 프로그램을 실행하기 위해서는 개발자가 작성한 코드를 컴파일을 통해 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 거쳐야 한다. 만약 C언어로 개발한 프로그램을 윈도우에서 사용하려면 .exe 로 컴파일하여 실행시킬 수 있다. 하지만 해당 프로그램을 리눅스나 맥 등 다른 운영체제에서 사용하려면 다시 실행할 운영체제에 맞는 파일로 컴파일 해줘야 한다. Example > 하지만 Java는 코드를 자바 컴파일러를 통해 Java Bytecode로 .class 확장자를 가지는 파일로 변환하여 각 운영체제에 설치되어 있는 JVM에 전달하기만 하면.. 2023. 9. 17. [Java] Optional 클래스 java.util.Optional은 Java 8에서 도입된 클래스로, 값이 존재하지 않을 수 있는 상황에 사용하면 NullPointerException을 방지하고 코드를 더 안전하게 만들 수 있다. 즉, 값이 존재하는 상태(NOT NULL)와 값이 존재하지 않는 상태(NULL)를 체크하며 에러를 발생시키지 않고 예외처리를 통해 코드의 안전성을 높인다. Optional 문법 사용 방법 1. Optional 객체 생성 : Optional.of(value): 만약 값이 null이라면 NullPointerException이 발생. Optional.ofNullable(value): 값이 null인 경우 빈 Optional을 반환. Optional optionalWithValue = Optional.of("Hell.. 2023. 9. 11. [Java] Builder Pattern과 Method Chaining 빌더 패턴 (builder pattern) Java에서의 빌더 패턴(Builder Pattern)은 객체 생성 과정을 더 직관적이고 유연하게 만들기 위한 디자인 패턴이며, 주로 객체의 생성 과정이 복잡하거나 매개변수가 많을 때 사용된다. 특징 객체의 생성과 구성을 분리한다. 가독성이 높아진다. 메서드 이름을 통해 생성되는 객체의 구성 요소를 명확히 알 수 있다. 필수적인 매개변수와 선택적인 매개변수를 구분할 수 있다. 객체의 불변성을 보장할 수 있다. 메서드 체이닝 (method chaining) Method chaining은 객체의 메서드를 연이어 호출하는 프로그래밍 패턴을 말한다. 이 패턴을 통해 한 줄에 여러 메서드를 호출하여 객체를 설정하거나 조작할 수 있다. Method chaining은 코드의.. 2023. 9. 11. [Java] 디자인 패턴의 개념과 종류 💡 디자인 패턴이란? 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 할 수있는 훌륭한 해결책 “바퀴를 다시 발명하지 마라(Don’t reinvent the wheel)” 라는 말이 있듯이 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 💡 디자인 패턴 구조 콘텍스트(context) 문제가 발생하는 여러 상황을 기술한다. 즉, .. 2023. 8. 20. [Java] enum 💡 enum이란? 흔히 상수를 정의하는 final static ~ 과 같은 방식은 다양한 문제가 발생할 수 있기 때문에 그런 문제점을 보완하기 위해 자바 1.5버전부터 추가된 것이다. Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미한다. 장점 코드가 단순해지며, 가독성이 좋다. 인스턴스 생성과 상속을 방지하여 상수값의 타입안정성이 보장된다. enum class를 사용해 새로운 상수들의 타입을 정의함으로 정의한 타입이외의 타입을 가진 데이터 값을 컴파일시 체크한다. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 알 수 있다. Ex > package EnumExample; public class EnumExample { *// 기존에 상수를 정의하는 방법* public .. 2023. 8. 20. 이전 1 2 다음 728x90 반응형