[Java] date 하루 전 날짜 표시되는 경우
2023. 5. 3. 20:55
프로그래밍/JAVA
date 하루 전 날짜 표시되는 경우 DB와 Backend 에서는 2023-05-03으로 표시되는데 Frontend에서 확인하다보면 2023-05-02로 표시되는 경우가 있음 이런경우 시간 정보가 없어 자동으로 시간 정보가 뒤에 붙으며 timezone 문제가 발생하게 됨 가장 간단한 해결책은 Front에 Response 정보를 매핑해서 보내줄 때 timezone 설정 해주는 것임 예시 @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") private Date createdDate;
[Java] 생성자 대신 정적 팩토리 메서드 사용하기
2023. 4. 12. 20:21
프로그래밍/JAVA
생성자 대신 정적 팩토리 메서드 사용법과 사용하는 이유 생성자는 클래스에서 객체를 생성할 때 호출되는 메서드 정적 팩토리 메서드는 객체를 생성하기 위해 클래스에서 제공하는 정적 메서드 생성자와 정적 팩토리 메서드 사용법 생성자 public class Person { private int value; public Person(int value) { this.value = value; } } 정적 팩토리 메서드 public class Person { private int value; private Person(int value) { this.value = value; } public static Person createPerson(int value) { return new Person(value); } } ..
[Java Error] Failed to convert from type [java.lang.String] to type [java.util.Date]
2023. 4. 6. 21:47
프로그래밍/JAVA
Failed to convert from type [java.lang.String] to type [java.util.Date] 에러 react 👉 spring boot controller 로 데이터를 전송할때 타입 불일치로 발생하는 에러 발생 원인 react에서 파라미터로 '2023-04-06' 이라는 String 타입의 데이터를 보내는데 request 파라미터가 객체를 받을 때 타입을 Date로 설정해놓은 경우 자동적으로 변환이 되지 않아 발생하는 에러 해결 방법 datetimeformat을 설정해주기 예를 들어 startDate를 Date 타입으로 받고 싶다면 아래와 같이 @datetimeformat 을 설정해줄 것 @datetimeformat(pattern = "yyyy-MM-dd") privat..
[Java] java.time.format.DateTimeParseException: Text 'yyyyMMdd' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to yyyy-MM-dd of type java.time.format.Parsed
2023. 3. 29. 21:28
프로그래밍/JAVA
java.time.format.DateTimeParseException 해결 방법 Unable to obtain LocalDateTime from TemporalAccessor 에 주목해보면 에러를 쉽게 해결할 수 있음 LocalDateTime.parse("2023-03-29", DateTimeFormatter.ofPattern("yyyy-MM-dd")); LocalDateTime을 LocalDate 타입으로 바꿔주자 LocalDate.parse("2023-03-29", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
[Java] 자바의 데이터 타입(Primitive type, Reference type)
2023. 3. 22. 20:22
프로그래밍/JAVA
자바의 데이터 타입(Primitive type, Reference type) 자바의 데이터 타입은 크게 Primitive type, Reference type으로 나뉨 기본 타입(Primitive type) - 기본 타입은 정수, 실수, 문자, 논리 값 등의 데이터를 직접 저장하는 타입으로 자바에서는 다음과 같은 8가지 기본 타입을 제공함 - 기본값이 있기 때문에 Null이 존재하지 않음. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용 - 스택(Stack) 메모리에 저장 타입 할당되는 메모리 크기 정수형 byte 1 byte short 2 byte int 4 byte long 8 byte 실수형 float 4 byte double 8 byte 문자형 char 2 byte (유니코드) 논리..
[Java Error] java.lang.IllegalArgumentException: No enum constant 에러
2023. 3. 2. 20:19
프로그래밍/JAVA
java.lang.IllegalArgumentException: No enum constant 에러 데이터를 조회하려는데 위의 에러가 뜨면서 조회에 실패했음 분명 enum에 추가되어 있는데 error가 떠서 순간 당황함 에러 발생 원인 및 해결 방법 enum에 값이 추가되어 있지 않은 경우 발생 → enum에 값을 추가하여 해결! 내 코드에는 분명 추가되어 있는데? 그렇다면 값 비교를 잘못했을 가능성이 큼 내 코드를 예시로 들어보자면 enum class public enum ContractStatus { request("request", "신청"), cancel("cancel", "취소"), returnRequest("return_request", "반납신청"), ; ContractStatus(Strin..
[Java] StringBuffer와 StringBuilder
2023. 2. 28. 20:48
프로그래밍/JAVA
StringBuffer와 StringBuilder 공통점 String의 단점을 보완한 클래스 내부에 버퍼를 가지고 있어서 버퍼에 메모리를 임시로 저장했다가 사용함 버퍼 내부에서 추가, 수정, 삭제 작업을 할 수 있음 String의 단점 내부 문자열을 수정할 수 없음 문자열에 +연산자를 사용해 문자를 더하면 새로운 객체 생성됨 새로운 객체가 만들어져 재참조 하게 되기에 연산이 있을 때마다 메모리에 객체가 생성된다는 단점이 있음 StringBuffer와 StringBuilder 차이점 동기화 여부에 차이점이 있음 StringBuffer는 각 메서드 별로 Synchronized keyword가 존재하여 멀티스레드 환경에서도 동기화를 지원 StringBuilder는 동기화를 보장하지 않기에 단일스레드 환경에서 ..
[Java] equals와 == 차이점
2023. 1. 6. 20:18
프로그래밍/JAVA
equals와 == 차이점 == 연산자로 객체 참조가 같은지 비교 대상의 주소값을 비교 equals() 메소드로 객체의 값을 비교 대상의 내용 자체를 비교 예제 String test1 = "test"; String test2 = test1;// test1과 주소값 같음 String test3 = new String("test"); System.out.println(test1==test2);// true System.out.println(test1==test3);// false System.out.println(test1.equals(test2));// true System.out.println(test1.equals(test3));// true 참고 Call By Value는 기본적으로 대상에 주소값을 ..