[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"));
[JPA] 복합키 설정 방법(@EmbeddedId, @IdClass)
2023. 3. 28. 20:03
프로그래밍/JPA
복합키 설정 방법은 크게 두가지가 있음 1. @EmbeddedId 어노테이션 사용 2. @IdClass 어노테이션 사용 @EmbeddedId 어노테이션 사용 복합키를 가진 엔티티 클래스에서는 복합키를 위한 별도의 클래스를 만들어야 함 이 클래스에 복합키를 구성하는 필드들을 선언하고, @Embeddable 어노테이션을 붙여줌 그리고 이 클래스를 엔티티 클래스에서 @EmbeddedId 어노테이션을 사용하여 참조 예시 public class OrderProduct { @EmbeddedId private OrderProductId id; @Embeddable public class OrderProductId implements Serializable { @Column(name = "order_id") priva..
[sql] drop, delete, truncate 차이
2023. 3. 27. 22:36
프로그래밍/SQL
drop, delete, truncate 데이터를 삭제하는 구문 DROP 테이블, 뷰, 인덱스 등과 같은 데이터베이스 객체를 삭제시 사용 DROP을 사용하면 해당 객체와 모든 데이터가 삭제됨 예시 DROP TABLE user; DELETE 테이블에서 데이터 행을 삭제시 사용 DELETE을 사용하면 테이블의 특정 행을 삭제하거나 조건에 맞는 모든 행을 삭제할 수 있음 해당 행들이 차지하던 데이터 공간은 해제되어 재사용 → DB 용량은 그대로이기에 디스크 공간의 낭비가 발생할 수 있음 예시 DELETE FROM user WHERE age = 30; TRUNCATE 테이블에서 모든 행 삭제시 사용 테이블 스키마는 그대로 유지되고 테이블 내의 모든 데이터가 삭제 테이블에서 모든 행을 삭제하고 해당 행들이 차지하..
[JavaScript] 배열 메소드 some()
2023. 3. 24. 20:51
프로그래밍/JavaScript
Array.prototype.some() some() 메서드는 배열 안의 요소가 주어진 판별 함수를 하나라도 통과하는지 테스트함 만약 배열에서 주어진 함수가 하나라도 true이면 true를 반환 모두 false인 경우에만 false 반환 이 메서드는 배열을 변경하지 않음 const array = [1, 2, 3, 4, 5]; // Checks whether an element is even const even = (element) => element % 2 === 0; console.log(array.some(even)); // Expected output: true 참고자료: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_O..
[Spring Security] 인증과 인가 간단 정리
2023. 3. 23. 22:25
프로그래밍/Spring
인증(Authentication) 사용자가 누구인지 확인하는 과정 예를 들어, 로그인 시스템에서 사용자가 제공한 아이디와 비밀번호를 검증하여 해당 사용자가 맞는지를 확인하는 과정 대표적인 인증 방법은 사용자 이름과 비밀번호, 생체 정보, 전자서명 등 인가(Authorization) 사용자가 접근하고자 하는 시스템 자원에 대한 권한을 확인하는 과정 예를 들어, 은행 애플리케이션에서 사용자가 인증되었다면, 그 사용자에게 입금, 출금 등의 기능을 수행할 권한이 있는지를 결정 인증은 인가의 전제 조건이 되며, 인증이 완료되어야 인가 과정을 거칠 수 있음 즉, 인증된 사용자가 특정한 작업을 수행하기 위해서는 그 작업에 대한 권한이 있어야 함
[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 (유니코드) 논리..
[React Native Error] PLEASE REPORT: Excessive number of pending callbacks: 501
2023. 3. 21. 20:35
프로그래밍/React Native
PLEASE REPORT: Excessive number of pending callbacks: 501 나의 경우 Touchable 컴포넌트를 사용하면서 이러한 warning이 발생하였음 warning이기에 큰 문제가 아니라고 생각될 수 있으나 이러한 콜백이 계속 쌓이면 응용 프로그램의 성능이 저하되거나 동작이 중단될 수 있음 발생 원인 이 warning은 불필요한 콜백이 계속해서 호출되어 생성되는 에러임 해결 방법 해결법은 여러가지가 있고 나는 Touchable 대신 Pressable을 사용하여 문제를 해결함 그렇지만 아래와 같이 다양한 방법이 있음 1. 콜백 함수 내에서 setState()를 호출하지 말고, useRef()를 사용하여 변수를 업데이트 하기 2. 콜백 함수 내에서 비동기 작업이 발생하는..
[React Native] Pressable vs Touchable
2023. 3. 20. 20:34
프로그래밍/React Native
Pressable과 Touchable 공통점과 차이점 버튼과 같은 UI 요소를 만들 때 사용하는 컴포넌트 두 컴포넌트는 모두 터치 이벤트를 처리하며, 사용자의 버튼 클릭을 감지하는데 사용 공통점 모바일 앱에서 버튼과 같은 UI 요소를 만들 때 사용 터치 이벤트 처리 onPress나 onPressIn 등의 콜백 함수를 등록하여 터치 이벤트에 대한 동작을 처리할 수 있음 차이점 Pressable Touchable Pressable 컴포넌트 내부에서 발생하는 터치 이벤트에만 반응 여러 종류의 터치 이벤트를 처리 스타일 변경 가능 스타일 변경 불가 애니메이션 지원 애니메이션 지원 안함 결론적으로, Pressable은 스타일과 애니메이션을 지원하는 더 유연한 버튼 컴포넌트임 Touchable은 여러 종류의 터치 ..