분류 전체보기278 캐시 전략 캐시는 자주 사용하면서 자주 변경되지 않는 데이터에 대해 캐시를 사용하면 좋음 캐시는 휘발성이 있다는 점을 기억할 것(중요한 정보는 저장해선 안 된다) 따라서, 장애 발생시 대응 방안도 대비해야 함 캐시 만료 정책도 필요(사용자가 시간이 지남에 따라 오래된 자료를 볼 수 있기 때문) 그에 따라 발생하는 cache stampede 현상 대비 필요 용어 정리 cache-hit: 캐시 스토어에 데이터가 있으면 로드 cache-miss: 캐시 스토어에 데이터가 없으면 DB에서 로드 캐시 스토어는 캐시, DB는 데이터베이스를 가리킴 읽기 전략 look-aside(cache-aside) 캐시 조회 후 있으면 가져오고 없으면 DB에서 가져옴 캐시 저장 주체가 애플리케이션 서버 가장 일반적인 캐시 전략 반복적인 읽기가.. 2023. 8. 12. TDD(Test Driven Development) 켄트 벡의 "테스트 주도 개발(Test Driven Development, 김창준 역)을 읽고 내용을 정리해 본다. 아직 TDD에 대한 이해는 추상적이여서 책을 읽고 필기 해본 내용들만 적어본다. 하지만 계속해서 TDD에 대한 조사와 탐구를 통해서 이해도를 높여갈 것이다. 따라서 정리한 내용은 앞으로 수정해 갈 예정이다. TDD 주기 작은 테스트를 추가한다. 모든 테스트를 실행하고 실패하는 것을 확인한다. 코드에 변화를 준다 모든 테스트를 실행하고 성공하는 것을 확인한다. 중복을 제거하기 위해 리팩터링한다. 테스트-> 실패 ->수정 -> 성공 -> 리팩터링 결과를 가짜 코드로 구현 컴파일 에러 -> 수정 테스트 실패 -> 수정 테스트 성공 -> 중복 제거(리팩터링) mocking(가짜 구현), 삼각측량법.. 2023. 7. 16. 날짜, 시간, 포맷팅 Date, Calendar Date - JDK 1.0부터 있던 클래스 Calendar - Date를 보완한 클래스. JDK 1.1부터 제공됨. Calendar Calendar 사용 시에는 static 메서드인 getInstance()로 생성. (GregorianCalendar, BuddhistCalendar 등 시스템 설정에 맞춰 알맞은 구현 클래스 반환해 줌) 현재 날짜를 설정할 때에는 Date 클래스가 여전히 필요하다. Date date = new Date(); Calendar calendar = Calendar.getInstance(); calenar.setTime(date); get(Calendar 상수들)로 날짜 시간 요소 가져올 수 있음. 차이 구할 때는 getTimeMillis()로 계산 후.. 2023. 7. 11. Querydsl 사용을 위한 build.gradle 설정하기 Gradle + JPA + Querydsl 사용을 위해 build.gradle을 작성할 때 많은 경우, 플러그인을 추가하여 사용한다. 특히, 인프런 김영한 님 등 JPA를 전파하시는 분들의 강의 내용에 플러그인을 사용하여 설정하는 방법이 나와 있어서 구글 검색 내용 중 다수가 그렇게 사용하고 있다. 그러나 해당 방법에는 문제가 있다. (아래 프로젝트는 JDK 17, Spring Boot 3.x를 사용합니다.) Bad Case plugins { id 'java' id 'org.springframework.boot' version '3.0.6' id 'io.spring.dependency-management' version '1.1.0'.. 2023. 5. 14. 이전 1 ··· 13 14 15 16 17 18 19 ··· 70 다음 728x90