Programming 13
Redis를 이용한 랭킹 조회
이전에 진행했던 프로젝트에서 여행지 방문수에 따른 여행지 랭킹을 조회하는 API 의 코드를 리펙토링 해보았다.📋 프로젝트 흐름여행 기록(Record)을 할 때 기록된 다녀온 여행지와 여행 시작 날짜를 기준으로 많이 기록된 상위 7개의 여행지를 항목별로 조회하게 한다. Ranking 관련 API월별 랭킹계절별 랭킹💬 이전에 진행한 방식사용자가 Record를 작성해 저장할 경우 Record에 속한 여행지들의 정보가 RecordPlace 테이블에 recordId와 placeId가 따로 저장된다. 이후 랭킹 조회를 할 때 사용자로부터year , month 혹은 season 정보를 받아와서 RecordPlace에 저장된 데이터를 기반으로 랭킹 정보를 조회해서 PlaceRankGetResponse클래스에 담아 ..
Programming/Spring | 2025. 9. 10. 21:24
Cursor 기반 페이지네이션 적용해보기
📄 Pagination이란한정된 네트워크 자원을 효율적으로 활용하기 위해 특정한 정렬 기준과 지정된 개수에 따라 데이터를 분할하여 가져오는 기술이다.엄청난 수의 데이터를 DB에서 애플리케이션으로 가져오면 네트워크 오버헤드가 생길 수 있기 때문에 필요한 데이터만 나눠서 응답하여 네트워크의 낭비를 막고 빠른 응답 할 수 있다.방식▪️ offset 기반 페이지네이션 방식데이터 조회 쿼리문을 작성할 때 OFFSET 쿼리와 LIMIT 쿼리를 붙여 가져올 데이터 숫자와 페이지 번호를 작성한다. ▪️ cursor 기반 페이지네이션 방식Cursor는 어떠한 데이터의 위치를 가리키는 포인터고 커서가 가리키는 레코드로부터 일정 개수만큼 가져오는 방식이다. 즉 우리가 원하는 데이터가 어떤 데이터 다음에 있다는 것에 집중한..
Programming/Spring | 2025. 8. 19. 23:55
Interface와 Abstract
Interface 인터페이스란 클래스가 따라야 할 설계도와 같다.따로 필드를 작성하지 않고 추상 메소드만 정의한다. 이때 실제 로직 또한 작성하지 않고 추후 구현하는 클래스가 작성하게 한다. 인터페이스는 interface 라는 키워드를 사용하고 구현 클래스는 implements 키워드를 사용한다.이때 구현 클래스는 인터페이스 안 모든 추상 메소드를 구현해야한다. 💡 일반 class 구현과 Interface 클래스 구현의 차이일반 클래스를 추후 자식 클래스가 상속 받아서 참조할 경우 일반 클래스에서 메소드를 구현해야한다. 하지만 자식 클래스에서 참조한 메소드는 객체마다 다르게 구현될 것이기 때문에 사실 일반 클래스에서 구현한 메소드가 사용되는 일이 많지 않다.만약 Interface 클래스를 만든다면, 메..
Programming/Java | 2025. 6. 15. 23:30
Spring container와 Bean
spring containerApplicationContext applicationContext = new AnnotationConfigApplication(AppConfig.class);ApplicationContext 를 스프링 컨테이너라고 한다. 이때 컨테이너는 객체를 담고 있는 공간이다.스프링 컨테이너는 XML 을 기반으로 만들수 있고 어노테이션 기반의 자바 설정 클래스로 만들 수 있으며 요즘은 어노테이션 기반으로 만드는 추세이다.스프링 컨테이너를 부를 때 BeanFactory , ApplicationContext 로 구분해서 이야기한다.BeanFactory 를 직접 사용하는 경우는 거의 없어서 ApplicationContext 를 스프링 컨테이너라고 한다. 스프링 컨테이너 생성AppConfig의..
Programming/Spring | 2025. 5. 23. 22:22
Persistence Context와 EntityManager
JPA를 다루면서 기본적으로 알아야하는 지식중 하나가 영속성이다. JPA는 기본적으로 영속성이라는 특징을 갖고 DB와 연결되어 데이터들이 다뤄지는 것으로 알고 있는데, 핵심 개념인 영속성 컨텍스트(Persistence Context)와 엔티티 메니저(EntityManager)에 대해 공부해보려한다. Persistence Context (영속성 컨텍스트)엔티티를 영구 저장하는 환경애플리케이션이 데이터베이스에서 꺼내온 객체를 보관하는 역할을 한다.EntityManagerEntityManger를 생성하면 영속성 컨텍스트가 안에 생성이 되는데, 이를 통해 영속성 컨텍스트에 접근 및 관리가 가능하다.EntityMangerFactory를 통해 Entity Manger를 생성할 수 있고 Entity Manger는 내..
Programming/Spring | 2025. 5. 19. 17:21