2022/09 3

Spring boot 환경에서 대용량 엑셀 파일 다운로드 하기 - (1)

개요 게임 서버 개발 포지션에 있지만, 최근 게임과 관련된 API 서버를 인수인계 받으며 Spring boot + JPA 환경을 다룰일도 생겼다. 사내 게임의 FGT()를 진행하는데, 기획자 분이 매번 설문조사 결과를 요청하는 일이 있었다. 사실 설문조사 결과를 DB에 들어가 SQL문으로 뽑는 것은 살짝 귀찮고, 어려운 일은 전혀 아니다. 그러나, 굳이 불편하지 않는 일을 불편하다 생각해 무언가를 만드는게 개발자 특이니, API를 만들기로 한다. 요구사항 spring boot와 JPA 환경에서 DB에 있는 필요한 테이블에서 특정 조건(SQL)의 데이터를 csv 파일로 추출하는 API를 만든다. 예시로 2022년 1월부터 5월까지 게임에 결제한 유저 정보를 엑셀 파일로 추출하는 과정을 진행해본다. Enti..

ELK - Kibana 날짜별 데이터 비교하기

개요 팀에서 개발중인 서비스에 ELK을 붙인 이후, kibana에서 데이터를 이용해 다양한 종류의 visualize을 만들고 있었다. (유저 동접 추이, 특정 게임 동접수 등등) ELK와 비슷한 역할을 하는 NHN CLOUD의 Log N Crash 라는 서비스가 있는데, 여기서 제공해주는 visualize 중, 날짜별 데이터를 비교해주는 서비스가 있었다. 같은 기능을 kibana에서도 구현할 수 있을까 구글링을 해봤는데 kibana에서도 제공하는 기능이였다!! 하지만 역시.. 현재 사용하는 ELK 버전에는 존재하지 않은 기능 ㅎㅎ.. 결국 찾은 건 visualize 종류 중 Timelion이다. Timelion은 시계열 데이터 분석에 특화되어 있으며, 함수 형식의 표현식을 사용한다. 또한 코드가 직관적이..

Spring boot & JPA 조인 시 null 반환하기

개요 회사에서 PC방 관련 서비스를 이관하는 작업을 진행 중인데 테이블이 하나 추가되었고, 이 테이블을 기존의 사용하던 real_student(예시) 테이블에서 몇몇 필드가 제거된 테이블이다.(fake_student) 추가된 fake_student와 real_student를 함께 사용할 것이기 때문에 로직 수정이 필요한 상태이다. 요구사항 새로 추가된 fake_student와 real_student를 함께 사용한다는 말을 좀 더 풀어서 설명하자면 fake_student의 PK 값이 있는지 확인하고, 없다면 real_student에서 해당 PK 값을 찾는 것이 핵심 로직이다. 그러나 문제는 기존의 있던 real_student에 많은 테이블들이 조인되어 있다는 점이다. 이를 그대로 두고, fake_stude..

728x90