본문 바로가기
728x90
반응형

전체 글269

설정 파일의 누락 알람과 스위치 찾기, 하이라이터 색칠 규칙과 집합의 차 사내 설정 파일 에디터에 누락 알람 검출을 넣었다. 룰 블록에서 쓰이는 알람 이름인데 정의 목록에는 없는 것을 찾아 표시하는 기능이다. 이름을 골라내는 기준으로 기존 하이라이터의 색칠 규칙을 사용했다.무엇을 누락 알람으로 볼까설정 파일에는 알람 정의와 룰 블록이 있다. 실제로 쓰이는 룰 안에서 알람 후보를 찾고, 정의 목록에 없는 이름을 누락으로 처리했다.문제는 룰 안의 어떤 글자가 알람 이름인지 판단하는 것이었다. 이를 위해 기존 하이라이터와 같은 패턴으로 후보를 찾았다.하이라이터의 색칠 규칙을 기준으로에디터는 '화재'로 시작하는 이름을 빨간색으로, '주의', '경보', '축적'으로 시작하는 이름을 파란색으로 칠하고 있었다. 누락 알람 후보도 이 색칠 규칙에 해당하는 패턴으로 찾았다.red_pat = .. 2026. 11. 6.
Ctrl+F 검색 크래시와 사라지는 하이라이트, find의 반환값을 잘못 알았다 사내 설정 파일 에디터에서 Ctrl+F로 검색하면 프로그램이 죽었다. 원인은 검색 함수가 돌려주는 값을 커서로 잘못 생각한 것이었다.같은 날 줄 번호 영역의 표식 그리기도 고쳤다. 다음 날에는 선택한 글자를 검색창에 자동으로 넣는 기능과, 검색 후 하이라이트 일부가 사라지는 버그를 고쳤다. 커밋 세 개를 순서대로 정리했다.find는 커서가 아니라 bool을 돌려줬다검색 코드는 에디터의 find 결과를 커서로 받아 isNull()로 성공 여부를 확인했다. QTextDocument의 find는 커서를 돌려주지만, 에디터로 쓰던 QPlainTextEdit의 find는 bool을 돌려주고 커서를 내부에서 옮긴다. bool에는 isNull()이 없는데도 호출하는 코드였다.# 검색 실행 (QPlainTextEdit.. 2026. 11. 6.
한 파일에 몰린 에디터 코드를 패키지로 나누기, 리소스부터 떼어 낸 순서 사내 설정 파일 에디터는 화면, 분석, 하이라이트, 파일 입출력 코드가 한 파일에 모여 있었다. 이를 패키지로 나누기 시작했고, 첫 '분리 중' 커밋에서 메인 파일이 746줄 줄었다. 이후 메인 창 모듈 1,329줄이 새로 추가됐다.무엇부터 떼어 냈나첫 커밋에서 메인 파일에서 빠진 건 주로 리소스 관련 함수였다. 화살표 이미지를 불러와 흰색으로 바꾸는 함수, 리소스 경로를 찾는 함수, 번들 폰트를 불러오는 함수 등이었다.# 흰색으로 변환def convert_to_white(img): data = img.getdata() new_data = [] for item in data: # 투명도가 있는 픽셀만 흰색으로 변경 if item[3] > 0:이미지 로딩 코드에는 .. 2026. 11. 6.
사내 텍스트 에디터 화면 대개편, 고정 열 너비와 해상도별 메뉴 깨짐 사내 설정 파일 에디터 화면을 수정하면서 왼쪽 트리의 고정 열 너비를 크기 정책으로 바꿨다. 같은 날 더블 클릭과 하단 영역을 정리했고, 저녁에는 메뉴바 오버플로와 화면 배율 설정을 손봤다.트리 열 너비를 크기 정책으로 바꿨다왼쪽에는 카테고리와 동작 두 열짜리 트리가 있었다. 처음에는 텍스트 열을 260픽셀, 아이콘 열을 5픽셀로 고정했다. 이번에는 고정 너비를 없애고 열 크기 정책을 바꿨다.텍스트 열은 남는 공간을 채우도록 늘리고, 아이콘 열은 내용 크기에 맞췄다. 마지막 열을 자동으로 늘이는 동작은 껐다. 텍스트 열이 공간을 채우면서 아이콘 열이 오른쪽에 배치되도록 한 것이다.header.setStretchLastSection(False)header.setSectionResizeMode(0, QtWi.. 2026. 11. 6.
지표별 설정값이 서로 엉키던 매매 조건, 지표마다 설정 클래스로 나누기 코인 자동매매 앱의 매매 조건 설정은 한 클래스에 지표 여덟 개의 값을 모아 뒀다. 지표별 설정이 독립적으로 저장되도록 클래스를 분리하고, 전략 단위 저장 구조도 바꿨다. 변경 당일 저장과 불러오기는 문제없이 되는 것 같다고 기록했다.설정 클래스 하나에 지표 여덟 개원래 조건 설정 클래스는 지표 종류와 연산자, 그리고 모든 지표의 설정값을 한꺼번에 들고 있었다. RSI 기준값과 기간, MACD 세 기간, 이동평균 기간과 종류, 볼린저밴드 기간과 편차, 스토캐스틱, 가격, 거래량, 수익률까지 한 클래스에 필드로 나열돼 있었다.기준값은 현재 선택된 지표에 따라 해당 필드를 골라 돌려주는 속성으로 계산했다. 조건 하나에 필요한 값과 쓰지 않는 지표의 값이 함께 들어가는 구조였다.삭제된 파일의 diff에서는 한.. 2026. 11. 6.
RSI·MACD·볼린저밴드를 매매 조건에 연결한 이틀, 하나를 끝까지 먼저 코인 앱의 매매 조건에 지표를 붙이는 데 이틀이 걸렸다. 첫날 아침에는 지표 설정 창의 껍데기만 만들었고, 밤에는 이동평균선 하나를 매매 조건에 연결했다. 다음 날 밤에는 RSI, MACD, 볼린저밴드를 포함한 여덟 가지를 추가했다. 세 커밋의 제목과 변경 내역을 따라 순서대로 정리했다.첫 커밋은 TODO 두 개짜리 창이었다첫 커밋 제목은 '차트에 적용할 지표 만드는중'이었다. 차트 화면에 지표 버튼을 달고, 누르면 '차트 지표 설정' 창이 뜨게 했다. 레이아웃 파일은 248줄이었지만 지표 적용 코드는 아직 구현하지 않았다.// TODO: 여기에 다이얼로그 내부 UI 요소에 대한 리스너 설정builder.setPositiveButton("적용") { dialog, _ -> // TODO: 선택된 지.. 2026. 11. 6.
728x90
반응형