분류 전체보기
[Spring Boot] JPA Caching 적용하기
Dependency implementation group: 'org.springframework.boot', name: 'spring-boot-starter-cache' ConcurrentHashMap caffeine application.yml logging: level: org: hibernate: SQL:DEBUG type.descriptor.sql.BasicBinder:DEBUG mainApplication.java @SpringBootApplication @EnableCaching public class mainApplication { public static void main(String[] args) { SpringApplication.run(mainApplication.class, args..
캐시(Cache)와 캐싱(Caching) 정리 from 10분 테크톡
캐시(Cache) 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 메모리 컴퓨터 메모리(데이터를 저장하는 공간)의 속도와 용량은 반비례 관계 속도가 빠른 메모리일수록 용량이 작음 용량이 큰 저장장치는 속다가 느림 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어서 사용 메모리를 속도-용량 순서대로 쌓으면 피라미드와 같은 형상이 나타난다. 메모리 계층 구조(Memory hierarchy) 데이터 지역성의 원리 파레토의 법칙 = 2대 8의 법칙 자주 쓰이는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려 있을 가능성이 높다. 시간 지역성 (Temp..
[Spring Boot] PasswordEncoder.mathes() 암호화된 패스워드 비교
평문 패스워드를 암호화 해주기 위해서 PasswordEncoder의 encoder()를 사용한다. passwordEncoder.encode("passowrd"); 테스트 코드 작성 시 평문 패스워드와 암호화된 패스워드를 비교하기 위해 matches() 메서드를 사용한다. userService에서 encode()를 구현해주었고 저장되어 있는 암호화된 패스워드랑 테스트를 위해 만들어준 newUser의 평문 패스워드를 비교해주기 위해 matches()를 사용했다. @Test public void givenValidId_whenSignupPost_then200() { // given UserDto newUser = new UserDto(); newUser.setUsername("user03"); newUser...
[Hibernate Error] TransientPropertyValueException : object references an unsaved transient instance
1. 문제 상황 프로젝트에서 새로운 User을 생성하기 위해 회원가입을 진행하던 도중 다음과 같은 에러가 발생했다. org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : dev.sma.basic.jpa.entity.UserEntity.residence -> dev.sma.basic.jpa.entity.AreaEntity 2. 원인 영속성에 의해 발생한 오류라고 한다. FK로 사용되는 칼럼에 데이터가 없는 상태에서 데이터를 넣으면 발생한다. 현재 나의 프로젝트 기준으로 UserEntity가 AreaEntit..
[자바 알고리즘 문제풀이] String 08. 유효한 팰린드룸
String(스트링) 08. 유요한 팰린드룸 * 사용 언어 : JAVA * Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리 1. 문제 앞 뒤로 읽을 때 같은 문자열인 팰린드룸을 받으면 YES, 아니면 NO를 출력하기 단, 알파벳 이외에 문자는 무시하고 대소문자를 구분하지 않음 // 입력 found7, time: study; Yduts; emit, 7Dnuof // 출력 YES 2. 풀이 먼저 주어진 문자열을 toUppeCase() 메서드를 사용하여 모두 대문자로 변경하고 replaceAll() 메서드로 정규식을 사용하여 대문자가 아닌경우 빈 문자로 대체한다. 모든 특수문자가 제거된 문자열을 StringBuilder의 reverse() 메서드로 뒤집어서 비교해준다. 3...