본문 바로가기

개발 일지/나눔비타민 (인턴)2

JPA 없이 통계 시스템 구축하기: QueryDSL + Flyway로 데이터 접근하기 들어가면서..인턴십 기간 동안 저는 기존 DB에 쌓여 있던 데이터를 활용해 통계 서비스(대시보드 형태)를 구축하는 과제를 맡았습니다. 이를 구현하면서 자연스럽게 JPA(Java Persistence API) 기반의 ORM(Object-Relational Mapping)을 사용했는데, 개발을 진행할수록 몇 가지 불편함이 드러났습니다. 예를 들어, 기존에 JPA로 짜여진 데이터를 사용하기 위해서 기존에 존재하던 Entity 클래스에 의존해야하는 문제가 있었습니다.(저의 역량 부족일 확률이 높지만..) 또한 서비스 도메인 모델과 DB 엔티티 클래스들을 1:1로 매핑하여 설계했는데, 실제 통계 로직을 작성하다 보니 이러한 도메인-엔티티 1:1 매핑 방식에 의문이 생겼습니다. 이런 고민을 겪으면서 기존 JPA 중.. 2025. 2. 28.
DB와 Application 코드의 역할과 범위를 어떻게 나눌까? 들어가기 전..인턴십에서 통계 관련 작업을 진행하며 DB와 Application 코드 중 어디에서 로직을 처리할지 고민해야 하는 상황이 있었습니다. 특히, 주차에 맞는 날짜를 반환하는 로직을 작성할 때 선택지가 다음과 같았습니다.1. DB에서 처리:`WEEK()` 함수로 주차별로 그룹화한 후, 적절히 날짜를 반환하는 쿼리를 작성한다.2. Application 코드에서 처리:간단한 SELECT 문으로 날짜 데이터를 조회한 뒤, Java의 `LocalDateTime` 을 활용해 처리한다.예: `date.with(java.time.DayOfWeek.MONDAY).toLocalDate().atStartOfDay()`이 간단한 로직을 작성하는 과정이 작은 고민의 시작이었지만, 결과적으로 “DB와 Applicati.. 2025. 1. 22.