Programming/Spring 7
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
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
안티패턴이 무엇이며 어떻게 피할까
개발하면서 기능적으로는 문제가 되지 않지만 작성한 코드에 구조적으로 문제가 되어 유지보수나 확장성 면에서 문제가 되는 듯한 코드를 작성해 본적이 있다. 우리는 이를 안티 패턴이라고 한다. 이러한 안티 패턴을 피하기 위해서는 안티패턴에 어떤 것이 있고 해결을 어떻게 하는 것이 좋은지에 대해 공부한 내용을 작성해보려고 한다. 안티 패턴 종류01. 스마트 UI스마트 UI란 UI 레벨에서 데이터 입출력, 비즈니스 로직, 데이터베이스와 통신하는 코드 모두 처리하는 것을 의미한다.백엔드에서 UI란백엔드 API를 의미한다.백엔드 서버의 사용자인 프런트엔드 개발자나 협력 서비스 백엔드와 의사 소통하기 위해 사용되는 인터페이스가 API 이기 때문에 일반적인 UI와의 공통점인 누군가에게 소프트웨어를 사용하는 방법을 알려주..
Programming/Spring | 2025. 4. 5. 02:24