개발기록 썸네일형 리스트형 실행 차단 훅이 엉뚱한 폴더를 검사할 때: cd 명령 추적으로 경로 판별 고치기 문제 제기 · 검사 도구가 '어디를 보는가'가 틀렸을 때코드를 원격 저장소에 올리기 전에 자동으로 실행되어 "이 올리기를 검토할지 말지"를 판단하는 작은 프로그램이 있습니다. 개발에서는 이런 자동 실행 프로그램을 훅(hook)이라고 부릅니다. 이 훅은 미리 정해둔 검토 대상 폴더 목록(화이트리스트)에 든 폴더에서 올리기가 일어날 때만 검토를 겁니다. 목록 밖 폴더는 건드리지 않는 것이 원칙입니다.그런데 이 훅이 지금 올리려는 게 어느 폴더인가를 잘못 판단하고 있었습니다. 명령어 안에 폴더를 옮기는 부분(cd)이 들어 있으면 그걸 따라가지 못해, 처음 열려 있던 폴더를 기준으로 검사했습니다. 그 결과 막아야 할 걸 통과시키고, 통과시켜도 될 걸 막는 일이 동시에 일어났습니다.이 글은 특정 도구 하나의 이야.. 더보기 EP.37 git push 검토 훅이 잘못된 폴더를 검사하던 버그, cd 명령 추적으로 해결한 기록 들어가며 · 이번 회차의 문제코드를 서버에 올리기 전에 자동으로 한 번 확인해 주는 작은 검사 도구가 있습니다. 이 글에서는 그 도구가 엉뚱한 폴더를 검사 대상으로 착각하던 문제를 어떻게 찾아 고쳤는지 실제 수정 기록을 정리합니다.결론부터 말하면, 명령어 안에 폴더를 옮기는 부분(cd)이 들어 있으면 도구가 그걸 따라가지 못해 처음 열려 있던 폴더를 기준으로 검사하고 있었습니다. 그래서 막아야 할 걸 통과시키고, 통과시켜도 될 걸 막는 일이 동시에 일어났습니다.먼저, 이 검사 도구가 하는 일용어를 하나만 풀어두겠습니다. 여기서 말하는 검사 도구는 코드를 원격 저장소에 올리는 순간 자동으로 실행되어 "이 올리기를 검토할지 말지"를 판단하는 프로그램입니다. 개발에서는 이런 자동 실행 프로그램을 흔히 훅(ho.. 더보기 그 순간에만 존재하는 값을 잃지 않는 법: 진입 시점 데이터 저장 전략 문제: '왜 손해 봤지?'에 답할 수 없는 기록매매든, 실험이든, 사용자 행동 분석이든 결과를 남기는 시스템은 많다. 그런데 결과만 남기면 나중에 특정 질문에 답하기 어려울 수 있다. "이 거래는 왜 손해가 났을까?"라고 물었을 때, 살 때 어떤 상황이었는지에 대한 기록이 아예 없기 때문이다.실제 자동매매 프로그램을 손보면서 이 문제를 정면으로 겪었다. 매수 기록에는 그 종목을 왜 골랐는지 선정 점수 하나만 남아 있었다. 정작 살 때의 시장 상황 — 짧은 흐름과 긴 흐름, 하루 안에서 가격이 어디쯤이었는지, 거래량 비교, 가격이 얼마나 출렁였는지, 대표 코인의 움직임, 시장 심리 지표 — 은 어디에도 저장되지 않았다.그 결과, 이긴 비율은 높은데도 수수료를 빼면 손해가 나는 상황의 원인을 살 때의 상황별.. 더보기 EP.35 매수할 때와 팔 때 정보를 한 줄로 잇기: 자동매매 기록 개선기 P0-C 이번 회차에서 풀려던 문제물건을 살 때의 상황과 팔 때의 결과를 따로따로 적어두면, 나중에 "왜 손해를 봤지?"라고 물어도 답을 찾기 어렵다. 산 순간이 어떤 분위기였는지 기록이 남아 있지 않기 때문이다. 이번 작업은 바로 이 문제를 다뤘다.자동으로 사고파는 프로그램이 있는데, 사는 순간의 여러 정보(그때의 시장 흐름, 하루 안에서 가격이 어디쯤이었는지 등)를 저장했다가, 팔 때 그 기록을 다시 꺼내 하나로 이어 붙이는 기능을 넣었다. 이렇게 하면 "어떤 상황에서 샀을 때 결과가 좋았는지"를 한 줄로 볼 수 있다. 중요한 점은 실제로 사고파는 규칙은 하나도 건드리지 않았다는 것이다. 오직 기록만 늘린, 지켜보기 위한 작업이다.무엇이 부족했나 — 원인을 못 찾던 이유기록을 살펴보니 두 가지가 겹쳐 있었다... 더보기 EP.30 코인 가상매매 장부에 안전 리셋·수익률 그래프 붙이기 — KR·US 장부 구조를 옮긴 기록 들어가며 · 이번에 옮긴 것실제 돈을 넣지 않고 사고파는 흉내만 내보는 가상매매를 운영하려면 지금까지 얼마를 벌고 잃었는지 적어두는 장부가 필요합니다. 이번에는 기존 KR·US 장부와 같은 스타일과 안전장치를 갖춘 세 가지 도구를 코인 가상매매 장부에도 옮겼습니다.옮긴 도구는 장부를 안전하게 처음 상태로 되돌리는 리셋 도구, 누적수익률 그래프를 생성하는 그래프 도구, 코인 리뷰 상단에 네 가지 숫자를 넣는 항목입니다. 코인 장부의 구조가 기존 장부와 비슷해 공통 도구를 재사용할 수 있었습니다.옮긴 도구 네 가지이번 작업에서 손댄 부분은 아래와 같습니다. 각 도구가 코인 장부에서 어떤 역할을 하는지 정리했습니다.수익률 그래프 그리기 — 네 개 장부가 같은 모양의 그림을 그리도록 공통으로 만들었습니다. 어느.. 더보기 EP.03 만드는 건 쉬웠다, 어려운 건 그다음이었다 들어가며: 시스템은 어렵지 않게 만들었다자동매매 시스템을 직접 만들어봤습니다. 그런데 막상 해보니 시스템을 구축하는 것 자체는 어렵지 않았습니다.진짜 어려운 건 그다음이었습니다. 이 글은 '만드는 단계'가 끝난 뒤에 마주한, 오래 걸린 과정에 대한 기록입니다.만드는 건 어렵지 않았다시스템을 만드는 일 자체는 크게 막히지 않았습니다. 제 경우에는 이 단계에서 큰 어려움을 느끼지 않았습니다.여기서 말하는 '어렵지 않았다'는 상대적인 표현입니다. 개발 경험이나 환경에 따라 이 단계의 난이도는 다를 수 있습니다. 다만 제 경우에는 이 부분에서 크게 막히지 않았습니다.어려운 건 '기준'을 정하는 일이었다정작 오래 걸린 건 어떤 기준으로 사고팔지를 정하는 일이었습니다. 시스템은 시키는 대로 움직일 뿐, 무엇을 시킬.. 더보기 이전 1 다음