| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 컨테이너
- 스프링 부트
- DI
- @Transactional
- MSA
- Dead Letter Queue
- AWS
- kafka
- 페이징
- redis
- Routing Key
- JPA
- Spring
- docker compose
- Web
- 쿠버네티스
- JdbcTemplate
- @ComponentScan
- Spring Data JPA
- CORS
- JWT
- 지연 로딩
- DLQ
- Spring Container
- docker
- securitycontextholderfilter
- 서블릿 컨테이너
- dockerhub
- mybatis
- JPQL
- Today
- Total
목록paging (3)
look-forest
게시글 CRUD API를 만들고, 대용량 데이터를 조회하는 상황을 가정하자.테이블 구조는 다음과 같다.분산 데이터베이스를 가정하기 때문에 게시글이 N개의 샤드로 분산되는 상황을 고려한다.Shard Key = board_id (게시판 단위로 게시글 목록을 조회하므로)Hash-based Sharding이라고 가정Primary Key는 오름차순 유니크 숫자를 애플리케이션에서 직접 생성한다. (Snowflake, TSID 등)페이징대규모 데이터에서 게시글 목록 조회는 왜 복잡할까?모든 데이터를 한 번에 보여줄 수 없다. (메모리, 네트워크, 성능 상 제약)=> 페이징 필요 페이징 처리를 하려면?디스크에 저장된 모든 데이터를 메모리로 가져오고, 특정 페이지만 추출하는 것은 비효율적디스크 I/O 비용메모리 용량 초..
REST API의 리소스 모델로 응답하기 RepresentationModel REST API의 리소스 모델Spring HATEOAS에서 RepresentationModel은 REST API에서 리소스를 표현하고 하이퍼미디어를 추가하는 기본 클래스. 이 클래스는 서버가 리소스의 상태와 함께 하이퍼링크를 포함해, 클라이언트가 어떤 행동을 수행할 수 있는지 명시적으로 알려줄 수 있도록 도와줘, 이를 통해 클라이언트는 서버의 응답에 포함된 링크를 통해 상태 전이를 수행할 수 있게 된다.public class EntityModel extends RepresentationModel> { RepresentationModel은 기본적으로 단순한 리소스 표현을 다루며, EntityModel, CollectionModel..
JPA는 다양한 쿼리 방법을 지원한다. JPQL - em.createQuery()JPA Criteria - QueryDSL 같이 Java로 쿼리 짜는 JPA 표준 스펙. but 복잡함. 비추. QueryDSL 권장.QueryDSL - Java로 JPQL을 작성하는 JPQL 빌더네이티브 SQL - em.createNativeQuery(). JPQL로 해결할 수 없는 특정 데이터베이스에 의존적인 기능 사용 시JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 - 영속성 컨텍스트를 적절한 시점에 강제 플러시 필요!JPQL(Java Persistence Query Language)JPA에서 원하는 쿼리를 만들 때 사용.JPA는 SQL..