<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>송진호</title>
  <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL" />
  <author>
    <name>0ead61885047482</name>
  </author>
  <subtitle>AI와 함께 실제 자동매매 시스템을 만들고 있는 개인 개발자입니다.실패와 로그, 개발기록을 바탕으로 프로그램이 어떻게 성장해왔는지 기록합니다.</subtitle>
  <id>https://brunch.co.kr/@@iWpL</id>
  <updated>2026-09-20T01:23:07Z</updated>
  <entry>
    <title>17-1장. 안 된다는 건 알겠는데, 왜 안 되는데?</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/23" />
    <id>https://brunch.co.kr/@@iWpL/23</id>
    <updated>2026-10-12T22:41:45Z</updated>
    <published>2026-10-12T22:41:45Z</published>
    <summary type="html">AUTO AI(자동매매 연구 프로젝트)는 이제 꽤 많은 이유로 매수(BUY)를 거절할 수 있었다. Cooldown(쿨다운) / Reentry Guard(재진입 보호 규칙) 포지션(Position) 제한 / 코인 차단 / 전략별 조건 거래량 / 거래대금 / 추격매수(BUY) 방지 시장 상태 / 가격 / 잔고 / 후보(Candidate) 상태  처음에는 매수(&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FAHIL_ICdBT_7O1LfzW2Ln6UDvaw.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>16장. 한 번 팔았다고 언제까지 못 사게 할 건데?</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/22" />
    <id>https://brunch.co.kr/@@iWpL/22</id>
    <updated>2026-10-11T22:40:10Z</updated>
    <published>2026-10-11T22:40:10Z</published>
    <summary type="html">앞장에서 분석 유니버스(Analysis Universe)를 바로잡으며 프로그램이 무엇을 볼 것인지 고쳤다. 그런데 이번에는 봤는데도 못 사는 문제가 남아 있었다. 좋은 후보(Candidate)가 만들어지고 전략이 BUY(매수) 가능성을 판단해도 다음 단계에서 막혔다. 이유는 그 코인을 예전에 한 번 팔았기 때문이다. 처음에는 당연히 필요한 안전장치였다. 방&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FMOxBJcyVQevz-vPt_veM4wz_o3Y.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>15장. 상위 50개인 줄 알았는데, 앞의 50개였다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/21" />
    <id>https://brunch.co.kr/@@iWpL/21</id>
    <updated>2026-10-09T22:46:06Z</updated>
    <published>2026-10-09T22:46:06Z</published>
    <summary type="html">앞장에서 정책 세대를 나눠 기록할 수 있게 된 직후, 그 구조는 바로 시험대에 올랐다. 기존 후보(Candidate) 모집단은 &amp;lsquo;상위 50개&amp;rsquo;였다. 나는 꽤 오랫동안 시장에서 활발하게 거래되는 주요 코인 50개를 먼저 고르고, 그 안에서 RSI(상대강도지수), Trend(추세), Cross(교차 전략), Volatility(변동성)가 경쟁한다고 이해하고 있&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2Fme1VK0a3s-0UE4cAefVuXgTxyro.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>14-2장. 같은 전략도 세대가 다르면 다른 실험이다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/20" />
    <id>https://brunch.co.kr/@@iWpL/20</id>
    <updated>2026-10-08T23:08:16Z</updated>
    <published>2026-10-08T23:08:16Z</published>
    <summary type="html">앞장에서 세대를 나눠 기록하기 시작했다. 이제 남은 문제는 서로 다른 세대의 결과를 어떻게 비교할 것인가였다. Cross(교차 전략)라는 이름이 같아도 정책 해시(Hash)가 다르면 기본적으로 다른 세대다. Volatility(변동성)라는 이름이 같더라도 후보(Candidate) 정책, 시장 게이트(Market Gate), 진입(Entry) 정책이 바뀌었다&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FL336rzqtxeC9EZdxsVvLOZcbqJY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>14-1장. 같은 전략 이름인데, 같은 전략이 아니었다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/19" />
    <id>https://brunch.co.kr/@@iWpL/19</id>
    <updated>2026-10-07T22:40:12Z</updated>
    <published>2026-10-07T22:40:12Z</published>
    <summary type="html">trade_id(거래 식별자)와 run_id(실행 식별자)가 생기면서 거래와 기록을 연결할 수 있게 됐다. 하지만 기록을 연결할 수 있다는 것과 서로 같은 조건의 데이터라는 것은 다른 문제였다.&amp;nbsp;로그와 거래는 계속 쌓였고, 프로그램은 계속 바뀌었다.  Cross(교차 전략)의 진입(Entry)[2-S08] 조건, 후보(Candidate) 구조, BUY Ga&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2Fvc8EpCcoTa_whq4au3baj2StKH8.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>13-2장. 현재 가격 하나도 그대로 믿을 수 없었다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/18" />
    <id>https://brunch.co.kr/@@iWpL/18</id>
    <updated>2026-10-06T22:40:58Z</updated>
    <published>2026-10-06T22:40:58Z</published>
    <summary type="html">trade_id(거래 식별자)도 다시 손봐야 했다 Price Access(현재가 접근)와 주문 구조를 정리하는 과정에서 거래 연결 구조도 다시 강화됐다. 이미 trade_id(거래 식별자)[2-D02]는 있었다. 하지만 그때의 ID(식별자) 구조가 최종 형태는 아니었다. 중요한 문제가 있었다. 거래 ID(식별자)를 언제 만들어야 가장 정확할까? 처음에는 B&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FFViqXxL5apHJk-DYbMJlFj_2fHo.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>13-1장. 현재 가격 하나도 그대로 믿을 수 없었다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/17" />
    <id>https://brunch.co.kr/@@iWpL/17</id>
    <updated>2026-10-05T22:47:06Z</updated>
    <published>2026-10-05T22:47:06Z</published>
    <summary type="html">자동매매 프로그램에서 가장 기본적인 데이터가 무엇이냐고 묻는다면 아마 가격일 것이다. 지금 비트코인이 얼마인가. 지금 이 코인이 얼마인가.&amp;nbsp;그 가격을&amp;nbsp;가지고 프로그램은 수많은 판단을 한다. 매수(BUY)할 것인지 결정한다. 주문 금액을 계산한다. 보유 포지션(Position)[2-S07]의 수익률을 계산한다. 손절(STOP_LOSS) 여부를 판단한다. 익절&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FuSqJThqAcRzI8qy3YBP3I5cZEm0.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>12장. 프로그램을 종료했더니 빈 AI Run이 쌓였다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/16" />
    <id>https://brunch.co.kr/@@iWpL/16</id>
    <updated>2026-10-05T09:12:22Z</updated>
    <published>2026-10-05T00:03:45Z</published>
    <summary type="html">어느 것이 실제 프로젝트인지 확실하지 않다면 오류로 처리한다. 처음에는 프로그램을 켜고 끄는 일이 이렇게 중요해질 줄 몰랐다. 자동매매 프로그램을 켠다. 잘 실행되는지 본다. 잠깐 확인한다. 다시 끈다.  코드를 조금 수정한다. 다시 켠다. 또 확인한다.  개발 중이라면 너무 자연스러운 일이다. 그런데 AUTO AI(자동매매 연구 프로젝트)에는 이제 거래만&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FwgckOFpfZraGmitGVMaXhuvaQIs.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>EP.2&amp;nbsp;GPT의 자신감보다 증거를 믿기로 했다.</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/15" />
    <id>https://brunch.co.kr/@@iWpL/15</id>
    <updated>2026-10-05T09:12:22Z</updated>
    <published>2026-10-04T03:07:31Z</published>
    <summary type="html">로그를 보기 시작하면서 내 개발 방식이 바뀌었고, 동시에 GPT(생성형 AI)와 대화하는 방식도 바뀌었다. 예전에는 GPT(생성형 AI)가 &amp;ldquo;원인은 이것 같습니다&amp;rdquo;라고 말하면 그 설명을 따라 코드를 먼저 보는 경우가 많았다. 하지만 시스템이 커지자 그 순서는 위험했다. 그럴듯한 설명과 실제 원인은 같지 않을 수 있었다. 코드를 보고 가능한 원인을 추론하는 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FHkT9R6-qP1SHKdD-_qVq-iO6DG4.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>11장. AI를 만들었더니, 이젠 AI를 의심해야 했다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/13" />
    <id>https://brunch.co.kr/@@iWpL/13</id>
    <updated>2026-10-05T09:12:22Z</updated>
    <published>2026-10-03T02:38:09Z</published>
    <summary type="html">AI Pipeline(AI 연구 파이프라인)을 만들고 나면 뭔가 큰 단계가 끝난 것처럼 느껴진다. 거래가 끝나면 로그가 쌓인다. 데이터셋(Dataset)을 만든다. 특징값(Feature)을 계산한다. 레이블(Label)을 붙인다. Knowledge(프로젝트 지식 체계)와 패턴(Pattern)을 만든다. Learner(학습기)가 경험과 추천을 정리한다. 신뢰&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FdehCfYt7zVTdCbDQ7eNd6487k_4.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>10장. 로그를 AI에게 보여주고 싶었다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/12" />
    <id>https://brunch.co.kr/@@iWpL/12</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-10-02T01:04:36Z</published>
    <summary type="html">처음에는 로그가 필요했다. 프로그램이 무엇을 했는지 알고 싶었기 때문이다. 그래서 거래를 기록했다. 어떤 전략으로 샀는지 기록했다. 왜 팔았는지도 기록하기 시작했다.  매수(BUY)하기 전의 50봉을 저장했다. 매도(SELL)한 뒤 5분, 15분, 30분이 지나면 가격이 어떻게 변했는지도 다시 봤다. 후보(Candidate)를 기록했다. Decision(판&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2Fc7bz15i4cl_zTtr8tflSkovw2mA.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>9장. 왜 샀는지는 알겠는데, 왜 안 샀는지는 몰랐다.</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/11" />
    <id>https://brunch.co.kr/@@iWpL/11</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-30T23:00:20Z</published>
    <summary type="html">매수(BUY)된 거래는 점점 많은 것을 말해주기 시작했다. 어떤 전략이었는지 알 수 있었다. 어떤 가격에서 들어갔는지 알 수 있었다. 매수(BUY) 직전의 시장 데이터도 저장하기 시작했다. 보유 중 어느 정도까지 수익이 올라갔는지도 볼 수 있었다. 어디에서 팔았는지 알 수 있었고, 팔고 난 뒤 5분, 15분, 30분 동안 가격이 어떻게 움직였는지도 추적하기&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FVuMxGXtEd98T99DmWxD5-l3I1_M.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>8장. 거래 하나에 이름을 붙이기 시작했다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/10" />
    <id>https://brunch.co.kr/@@iWpL/10</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-29T22:52:16Z</published>
    <summary type="html">로그가 많아지면 많은 것을 알 수 있을 것 같았다. 실제로 처음보다 훨씬 많은 것을 볼 수 있게 됐다. 어떤 코인을 분석했는지. 어떤 전략이 후보(Candidate)를 만들었는지. 얼마에 샀는지. 얼마에 팔았는지. 최종 수익은 얼마였는지.  보유 중 최고 수익(Peak Profit)은 어느 정도였는지. 하나씩 기록할수록 프로그램의 행동이 조금씩 보였다. 그&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=https%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FFsCLqfPylBZsOjm-D8jOMt9qTEA.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>7장. 좋은 후보(Candidate)를 보고 있는가.</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/9" />
    <id>https://brunch.co.kr/@@iWpL/9</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-28T22:51:40Z</published>
    <summary type="html">자동매매를 만들면서 한동안 내 관심은 전략에 있었다. 어떤 조건에서 사야 할까. Cross(교차 전략)가 나을까. Trend(추세)가 나을까. RSI(상대강도지수)를 어떻게 사용해야 할까. 매수(BUY) 조건을 조금 더 정교하게 만들면 거래 결과도 좋아질 것 같았다. 당연한 생각이었다.  자동매매 프로그램이 돈을 벌고 잃는 것은 결국 매수(BUY)와 매도(&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FQ54OLuTADojtnx2O0EttjNwDjeg.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>6장. 상태가 흩어져 프로그램 전체가 흔들리기 시작했다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/8" />
    <id>https://brunch.co.kr/@@iWpL/8</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-27T22:55:27Z</published>
    <summary type="html">프로그램만 흔들린 게 아니었다. 나도 흔들렸다. 처음에는 코드를 파일별로 나누면 관리가 쉬워질 거라고 생각했다. 실제로도 하나의 거대한 파일에 모든 기능이 들어 있을 때보다는 훨씬 나았다. 매매를 담당하는 부분, 전략을 판단하는 부분, 데이터를 가져오는 부분, UI(사용자 인터페이스)를 담당하는 부분, 분석과 로그를 다루는 부분이 조금씩 역할을 가지기 시작&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2F7wvD8THJfBrZ3hXhF7oL0hSDye4.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>5장. 로그가 있다고 해서 믿을 수 있는 것은 아니었다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/7" />
    <id>https://brunch.co.kr/@@iWpL/7</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-27T01:45:56Z</published>
    <summary type="html">로그를 만들고 나니 처음에는 마음이 조금 편해졌다. 이제 프로그램이 무엇을 했는지 볼 수 있었다. 거래가 몇 번 있었는지, 어떤 전략이 거래했는지, 수익은 얼마나 났는지, 손실은 얼마나 났는지, 어느 정도까지 수익이 올라갔다가 최종적으로 얼마를 남겼는지. 예전에는 프로그램이 움직이는 모습을 보고 추측해야 했던 것들이 이제 숫자로 남기 시작했다.  숫자가 있&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2Fu5oI-jqG6C2SkdMgoOYW--BFWbQ.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>4장. 거래를 기록하자 프로그램이 보이기 시작했다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/6" />
    <id>https://brunch.co.kr/@@iWpL/6</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-26T04:31:50Z</published>
    <summary type="html">전략이 하나일 때는 결과를 보는 방법도 단순했다. 샀다. 팔았다. 수익이 났다. 아니면 손실이 났다.  처음에는 그것만으로도 충분해 보였다. 자동으로 거래하게 만드는 것이 목적이었으니 프로그램이 실제로 사고팔고 있다는 사실 자체가 중요했다. 하지만 Cross(교차 전략), Trend(추세), RSI(상대강도지수)처럼 여러 전략이 들어오기 시작하면서 이야기가&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2Frdrhjr5lGcoXGOKAiU6G7Wk21UI.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>EP.1 생성형 AI에게 물어보면 다 해결될 줄 알았다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/5" />
    <id>https://brunch.co.kr/@@iWpL/5</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-25T01:05:07Z</published>
    <summary type="html">처음 자동매매 프로그램을 만들 때만 해도, 나는 GPT(생성형 AI)와 일하는 방법을 따로 배워야 할 거라고 생각하지 않았다. 궁금한 것을 물어보면 설명해 줬고, 코드를 부탁하면 코드가 나왔다. 개발을 제대로 배운 적이 없던 내 입장에서는 그것만으로도 놀라운 일이었다.  258줄짜리 골든크로스(Golden Cross) 프로그램처럼 구조가 작을 때는 그 방식&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FZ2wGY8fMq5ufjGWV56dgT1yTsFY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>3장. 하나였던 전략이 여러 개가 되기 시작했다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/4" />
    <id>https://brunch.co.kr/@@iWpL/4</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-24T03:04:27Z</published>
    <summary type="html">처음에는 골든크로스(Golden Cross) 하나였다. 짧은 이동평균선과 긴 이동평균선의 관계가 바뀌는 순간을 보고 매수(BUY) 기회를 찾는다.  조건이 명확하다는 점이 좋았다.  사람이 계속 차트를 보고 있지 않아도 프로그램은 숫자를 계산할 수 있었고, 정해진 조건이 발생했는지를 계속 확인할 수 있었다. 자동매매를 처음 만들어보는 입장에서는 그것만으로도&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=https%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FH5P5aHQjONyEmGVRH5z3pYtpTGA.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>2장. 1,388줄짜리 한 파일이 감당하기 어려워졌다</title>
    <link rel="alternate" type="text/html" href="https://www.fishingproductfr.com/@@iWpL/3" />
    <id>https://brunch.co.kr/@@iWpL/3</id>
    <updated>2026-10-05T09:12:21Z</updated>
    <published>2026-09-23T03:12:17Z</published>
    <summary type="html">처음 프로그램은 약 258줄짜리 단일 파일이었다. 하나의 코인과 하나의 전략을 다루는 동안에는 어디에서 조건을 확인하고, 사고, 파는지 전체 흐름을 머릿속에 담아둘 수 있었다. 문제는 실제로 쓸 만한 프로그램을 만들겠다고 기능을 하나씩 붙이면서 시작됐다.&amp;nbsp;필요한 기능을 추가하면 그 기능을 관리하고 확인할 또 다른 기능이 필요했다. 그렇게 코드는 1,388줄&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.kakaocdn.net%2Fbrunch%2Fservice%2Fuser%2FiWpL%2Fimage%2FmOeiI2J1sc1TMNBz9PUT6ACbaT4.png" width="500" /&gt;</summary>
  </entry>
</feed>
