기본 콘텐츠로 건너뛰기

3월, 2020의 게시물 표시

JSTL fmt:formatNumber로 백분율 처리하기 (SUM, COUNT 형변환)

JSTL fmt:formatNumber로 백분율 처리하기 (SUM, COUNT 형변환) AI 생성 이미지: JSTL fmt:formatNumber로 백분율 처리하기 (SUM, COUNT 형변환) eGovFramework 환경에서 PostgreSQL 집계 결과를 웹에 정확한 백분율로 보여주려면 몇 가지 실무 규칙을 따라야 합니다. 이 글은 데이터베이스 레벨의 형변환과 JSP에서의 포맷팅을 중심으로, "JSTL fmt:formatNumber로 백분율 처리하기 (SUM, COUNT 형변환)"에 대한 구체적인 방법을 정리합니다. 1. ❓ 문제 인식: SUM/COUNT 결과와 JSTL 연산의 충돌 PostgreSQL의 SUM() 이나 COUNT() 는 보통 정수형(BIGINT)이나 NUMERIC 타입으로 돌아옵니다. MyBatis(eGovMap 등)를 통해 JSP로 전달된 값으로 EL에서 나눗셈을 하면 의도치 않은 정수 연산이나 형 변환 오류가 발생할 수 있습니다. 현상: 정수끼리 연산하면 소수점 이하가 잘리거나, EL이 예상과 다른 타입으로 처리되어 백분율 계산이 틀리게 나옵니다. 예를 들어 ${total / denominator} 가 정수 나눗셈으로 처리되면 정확한 소수값을 얻을 수 없습니다. 따라서 백분율을 정확히 표시하려면 DB 또는 매핑 단계에서 실수 타입으로 보장하는 것이 안전합니다. 이 글은 "JSTL fmt:formatNumber로 백분율처리하기 (SUM, COUNT 형변환)"의 실무적 해법을 제시합니다. 2. 🛠️ 해결책: SQL 레벨에서 FLOAT/NUMERIC으로 형변환 가장 확실한 방법은 XML Mapper의 SQL에서 집계 결과를 명시적으로 실수 타입으로 변환하는 것입니다. ...

bitmex chat

bitmex chat AI 생성 이미지: bitmex chat 거래소 채팅은 실시간으로 쌓이는 비정형 데이터로서 시장 심리를 파악하는 데 귀중한 자원입니다. 이 글은 BitMEX의 채팅 API를 이용해 대량 메시지를 수집하는 Java 유틸리티의 핵심 메소드 chatRun() 을 재구성하여, 실제 운영에서 안정적으로 데이터를 확보하는 방법을 설명합니다. 특히 bitmex chat 로그를 일괄적으로 저장해 후속 텍스트 분석에 활용하는 흐름에 초점을 맞춥니다. 1. ⚙️ 핵심 설정 및 API URL JSON을 객체로 매핑하기 위해 Gson을 사용합니다. 수집 범위와 작동 방식을 결정하는 주요 파라미터는 다음과 같습니다. 이 값들을 조정해 원하는 시점부터 연속적인 bitmex chat 데이터를 확보할 수 있습니다. START : 메시지 조회 시작 ID(Primary Key). 메시지 ID는 시간 순서를 따릅니다. (예: 47554551) MAX : 수집 종료 기준 ID. STEP : 한 번에 가져올 메시지 수(예: count=500). API URL: https://www.bitmex.com/api/v1/chat?count=500&start=...&reverse=false&channelID=4 reverse=false : 오래된 메시지부터 순차 조회. channelID=4 : 특정 채널(예: 거래소 공용 채널)만 대상. 2. 💻 데이터 수집 로직 분석 ( chatRun() 메소드) 2.1. API 호출 및 응답 처리 HTTP 연결은 HttpURLConnection 을 사용합니다. 응답...

BitMEX WebSocket 인증(authKeyExpires) 구현 예제 (Java + XChange 코드 포함)

Java XChange로 BitMEX WebSocket 인증 서명 만들기 (SignatureUtil + wss 예제) 암호화폐 마진 거래소인 BitMEX 는 REST API뿐 아니라 WebSocket(wss) 인터페이스를 통해 실시간 시세, 주문 정보 등을 제공합니다. 이때, 개인 계정 정보나 주문 정보를 사용하려면 WebSocket 인증(authKeyExpires) 을 통과해야 합니다. 이 글에서는 Java + XChange 라이브러리 를 사용하여 authKeyExpires 에 필요한 signature 를 생성하는 방법과 직접 구현한 SignatureUtil 클래스를 정리합니다. BitMEX WebSocket 인증(authKeyExpires) 개념 XChange의 BitmexDigest 와 ExpirationTimeFactory 활용 SignatureUtil 구현 코드 ws.sendText 로 실제 WebSocket 인증 요청 보내기 1. BitMEX WebSocket 인증(authKeyExpires)란? BitMEX WebSocket에서 개인 데이터(포지션, 주문 등)에 접근하려면 authKeyExpires 메시지를 한 번 보내서 인증을 받아야 합니다. 요청 포맷은 다음과 같은 JSON 형태입니다. { "op": "authKeyExpires", "args": [ "API_KEY", EXPIRES, "SIGNATURE" ] } API_KEY : BitMEX에서 발급받은 API 키 EXPIRES : 만료 시간(Unix timestamp 등, BitMEX 규격에 맞게 설정) SIGNATURE : VERB + ENDPOINT ...

Bitmex 1m bucketed

Bitmex 1m bucketed AI 생성 이미지: Bitmex 1m bucketed 대용량 시계열 데이터를 안정적으로 수집하려면 신뢰성 있는 반복 호출과 일관된 저장 방식이 필요합니다. 이 문서에서는 Java의 HttpURLConnection과 GSON을 사용해 Bitmex 1m bucketed 캔들 데이터를 주기적으로 가져와 로컬에 보관하는 실무적인 방법을 설명합니다. 1. 📦 필요한 라이브러리 (pom.xml) HTTP 호출과 JSON 파싱, 파일 출력을 위해 최소한의 의존성을 선언합니다. 아래 라이브러리로 안정적인 데이터 파이프라인을 구성할 수 있습니다. <dependencies> <!-- (1) Apache POI: 엑셀 파일 처리용 (현재 코드에서 직접 사용되진 않으나, 목적에 부합) --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <!-- (2) Google GSON: JSON 문자열을 Java 객체로 변환 (필수) --> <dependency> <gr...