본문 바로가기
728x90
반응형

전체 글259

캔들 40개에서 400개로, 거래량 y축까지 맞춘 차트 정리 캔들 차트를 수정하면서 화면에 표시할 수 있는 최대 범위를 40에서 400으로 늘렸다. 거래량 차트의 y축도 현재 보이는 구간을 기준으로 다시 계산하게 했다. 당시에는 '차트 최적화'라고 기록했지만, 성능 측정 없이 표시 범위와 축 계산 방식을 바꾼 작업이었다.캔들 표시 범위를 40개에서 400개로 늘렸다기존에는 setVisibleXRangeMaximum 값이 40이었다. 차트를 축소하더라도 한 화면에 표시할 수 있는 x 범위가 이 값으로 제한됐다.이 제한을 400으로 변경했다. 수정 자체는 숫자 하나를 바꾸는 것이었지만, 허용되는 최대 표시 범위는 기존보다 넓어졌다.setVisibleXRangeMaximum(400f)이 설정은 현재 표시된 캔들 수를 400개로 고정하는 것이 아니라, 축소했을 때 허용할.. 2026. 11. 5.
1분봉부터 4시간봉은 되는데 일봉부터 이상했던 차트, 주기 경계와 시간대 2025년 3월 17일, 1분봉부터 4시간봉까지는 동작했지만 일봉부터 연봉까지는 이상했다. 커밋에도 이 상태를 그대로 남겼다. 캔들 갱신 방식을 바꾼 코드에서는 시간대가 혼용된 부분도 확인할 수 있었다.웹소켓 리스너를 주기 완료 이벤트로 바꿨다웹소켓 리스너에서 onNewCandle을 제거하고 onCandlePeriodComplete를 추가했다. 새 캔들 수신을 알리는 콜백 대신, 앱에서 계산한 주기 완료 시각을 전달하는 형태로 바꿨다.구독 메시지를 보낸 직후 타이머를 시작했다. 타이머는 현재 시각의 초, 분, 시를 보고 선택한 주기의 경계에 닿았는지 판단한다. 경계에 닿으면 주기 완성 이벤트를 보내고, 뷰모델은 그 주기의 캔들을 API로 한 개 다시 받아 차트를 갱신한다.interface WebSocke.. 2026. 11. 5.
차트 툴팁을 꾹 누를 때만 띄우도록 바꾼 이유, 제스처마다 역할 나누기 캔들 차트의 툴팁을 한 번 탭할 때가 아니라 꾹 눌렀을 때 표시하도록 바꿨다. 싱글 탭에서는 로그만 남기고, 더블 탭에서 직접 확대하던 코드도 삭제했다. 캔들 차트와 거래량 차트의 툴팁 처리도 공통 함수로 정리했다.한 번 탭해도 툴팁이 나타났다기존에는 차트를 한 번 탭하면 해당 위치의 툴팁을 표시했다. 값을 확인하는 동작이 일반적인 탭과 연결되어 있었다. 이번에는 정보를 확인하는 동작을 롱 프레스로 분리하기로 했다.화면에는 캔들 차트와 거래량 차트가 함께 있었다. 두 차트에서 직접 하이라이트를 계산하던 처리도 정리할 대상이었다. 어느 차트에서 길게 누르더라도 같은 툴팁 표시 함수를 사용하도록 수정했다.싱글 탭과 더블 탭 처리를 정리했다제스처별 처리부터 수정했다. 한 번 탭하는 동작에서는 툴팁 표시를 제거.. 2026. 11. 5.
캔들 차트를 넘기면 맨 끝으로 튀던 버그, 추가된 개수만큼 밀어 주기 캔들 차트를 좌우로 넘기다 보면 화면이 갑자기 마지막 캔들로 이동했다. 과거 데이터를 보던 위치가 사라지는 문제였다. 커밋에는 '스크롤 이후 x좌표가 초기화되는 버그'라고 기록했고, 데이터 추가 시 화면 위치를 보정하는 방식으로 수정했다.보던 위치가 맨 끝으로 튀었다차트는 과거 캔들을 더 불러오거나 새 캔들이 추가될 때 데이터를 갱신한다. 이 과정에서 화면을 마지막 캔들로 옮기는 코드도 실행됐다. 처음 표시할 때는 필요한 이동이지만, 과거를 보고 있을 때는 문제가 됐다.그래서 왼쪽으로 넘겨 과거를 보다가 새 캔들이 하나 들어오면 화면이 오른쪽 끝으로 돌아갔다. 과거 데이터를 추가로 불러와도 같은 일이 생겼다.추가된 개수만큼 x좌표 보정하기과거 캔들을 데이터 앞쪽에 붙이면 기존 캔들의 x 인덱스가 뒤로 밀.. 2026. 11. 5.
캔들 차트를 붙이려다 발견한 분봉 요청 버그와 두 갈래 API 코인 앱에 차트를 붙이던 커밋의 이름은 '차트ing'였다. MPAndroidChart 3.1.0을 추가하면서 분봉 요청에서 단위가 빠진 호출도 수정했다. 캔들 모델과 웹소켓, 홈 화면도 같은 커밋에서 바뀌었다.분봉 요청에서 단위가 빠져 있었다저장소 클래스에는 Retrofit과 API 서비스를 직접 초기화하는 코드가 남아 있었다. 별도의 API 서비스 인터페이스도 있어 초기화 경로가 나뉜 상태였다.저장소의 분봉 조회 함수는 이미 단위를 인자로 받고 있었다. 하지만 서비스 함수를 호출할 때는 unit을 전달하지 않아 요청에 선택한 단위가 반영되지 않았다.- apiService.getMinuteCandles(market, count, to)+ apiService.getM.. 2026. 11. 5.
코인 자동매매 앱 첫 커밋을 다시 열어 보니, 화면보다 키 보관부터 만든 이유 코인 자동매매 앱의 첫 커밋을 다시 열어 봤다. 기본 템플릿 사이에 거래소 API와 보안, 매매 작업 코드가 함께 들어 있었다. 특히 요청과 응답을 기록하는 BODY 로그 설정은 다시 점검할 부분이었다.첫 커밋에 들어간 것첫 커밋은 2025년 3월 12일에 작성됐다. 홈, 대시보드, 알림 탭과 각각의 프래그먼트, 뷰모델이 포함돼 있었다. 아이콘과 테마 같은 리소스, 그래들 설정도 함께 올라갔다.그 사이에 직접 만든 파일이 섞여 있었다. 거래소 API 클라이언트와 서비스 인터페이스, 캔들과 주문을 담는 모델, 저장소 클래스, 웹소켓 클라이언트가 한 묶음이다. 로그인 화면, 암호화 저장소, 인증 유틸, 주기적으로 도는 매매 작업이 또 한 묶음이다.기본 템플릿: 하단 탭 세 개, 뷰모델, 리소스, 그래들 설정.. 2026. 11. 4.
728x90
반응형