본문 바로가기

분류 전체보기837

[책 후기] 데이터 중심 애플리케이션 설계 https://product.kyobobook.co.kr/detail/S000001766328 데이터 중심 애플리케이션 설계 | 마틴 클레프만 - 교보문고 데이터 중심 애플리케이션 설계 | 데이터는 오늘날 시스템을 설계할 때 마주치는 많은 도전 과제 중에서도 가장 중심에 있다. 확장성, 일관성, 신뢰성, 효율성, 유지보수성과 같은 해결하기 어려 product.kyobobook.co.kr 백엔드 개발자 필독 책이라고 추천 받아 읽어보게 되었다. 책 자체는 정말 좋은 책이고, 백엔드 개발자한테 필요한 책이지만, 아직 나한테는 조금 어려운 책 같다. 읽으면서 이해하기 어려운 부분도 많았다. 그래서 읽은 시간이 다른 책에 비해 조금 오래걸렸다. 책 자체가 과거 부터 현재는 어떻게 발전되었는지 위주로 전개되는 것.. 2024. 2. 12.
Redis https://www.youtube.com/watch?v=92NizoBL4uA 캐싱 이란? 데이터의 원래 소스보다 더 빠르고 효율적으로 액세스 할 수 있는 임시 데이터 저장소 대부분 애플리케이션에서 속도 향상을 위해 cache 사용 데이터의 재사용 횟수가 한 번 이상 이여야 의미가 있어짐 레디스 캐시로 사용하기 단순한 key-value 구조 In-Memory 데이터 저장소(RAM) 빠른 성능 평균 작업 속도 < 1ms 초당 수백만 건의 작업 가능 캐싱 전략 캐싱 전략에 따라 시스템 성능에 영향을 미침 읽기 전략 Look - Aside(Lazy Loading) 레디스에 찾는 키가 있다면 Cashe Hit DB를 거치지 않고, 레디스를 통해서만 데이터를 가져올 수 있음 레디스에 찾는 키가 없다면 Cashe .. 2024. 1. 29.
Spring HttpMessageConverter Spring MVC는 다음의 경우에 HTTP Message Converter 적용 HTTP 요청 : @RequestBody, HttpEntity(RequestEntity) HTTP 응답 : @ResponseBody, HttpEntity(ResponseEntity) 주요 Message Converter ByteArrayHttpMessageConverter : byte[] 데이터 처리 클래스 타입 : byte[], 미디어타입: / 쓰기 미디어 타입 : application/object-stream StringHttpMessageConverter: String 문자로 데이터를 처리 클래스 타입 : String, 미디어 타입 : / 쓰기 미디어 타입 : text/plain MappingJackson2HttpMe.. 2024. 1. 28.
Query DSL 성능 개선 동적쿼리는 BooleanExpression null 반환 시 자동으로 조건절에서 제거 모든 조건이 null이 발생하는 경우는 에러 발생 가독성 향상 명확하게 무슨 역할을 하는지 알 수 있음 exist 메서드 금지 SQL 에서 exist와 count()를 비교하면 exist의 성능이 훨씬 좋음 스캔 대상이 앞에 있을 수록 더 심한 성능 차이가 발생 query dsl에서는 exist는 count() > 0 으로 실행됨 @Override public boolean exists(Predicate predicate) { return createQuery(predicate).fetchOunt() > 0; } query dsl은 결국 JPQL 빌더 역할 JPQL은 from 없이는 쿼리 생성이 불가 즉, 하위에 sel.. 2024. 1. 20.
Spring AutoConfiguration 스프링 부트 Auto Configuration 스프링 부트는 자동 구성 기능을 제공 일반적으로 자주 사용하는 수 많은 빈들을 자동으로 등록해주는 기능 @AutoConfiguration 자동 구성을 사용하려면 해당 어노테이션을 등록해야 한다. 자동 구성 내부에도 @Configuration 이 존재 빈을 등록하는 자바 설정 파일로 사용 가능 자동 구성이 실행되는 순서를 지정 가능 after = DataSourceAutoConfiguration.class JdbcTemplate는 DataSource가 필요하기 때문에 DataSourceAutoConfiguration 다음에 실행하도록 설정 @ConditionalOnClass if 문과 유사한 기능 제공 이런 클래스가 있는 경우에만 설정이 동작 설정이 없다면 무.. 2024. 1. 20.
Spring Validation in Kotlin data class Dto( @field:NotNull val x: Int?, @field:NotNull val s:String, ) Spring Validation @filed:NotNull 선언이 되어 있으면 객체 타입 null 로 보내면 에러 아예 json 에 포함되지 않으면 에러 Int 등 숫자 타입 Nullable 처리가 되어 있을 시 (Int?) null 로 보내면 에러 json 필드에 포함되어 있지 않으면 에러 Nullable 처리가 되어 있지 않을 시 (Int) 빈 값을 보내면, 숫자 기본 값 들어감 null 을 보내면, 숫자 기본 값 들어감 NotNull 선언 x 객체 타입 안전 연산자가 있을 시 json 필드에 포함되있지 않으면 null로 받음 null 로 보낼시 null로 받음 안전 .. 2024. 1. 14.