데이터 테이블 : daemon_stock_Ticker_0100 stck_prprvarchar(10)utf8mb4_general_ci예NULL주식 현재가 그리고 stck_shrn_iscd varchar(9)utf8mb4_general_ci예NULL주식 단축 종목코드 일단 데몬은 딸랑 저거만 박는다. 일단 데몬 움직인다. 확인후 데몬 업그레이드 한다. 이해가나. 단 하나의 컬럼이라도 박히는거 보고 다른 컬럼 박는다. 데몬은 타격기 구조다. 그게 어떤 방법인지는 아나 구조는 이렇다. 데몬 몸통 <-- 최소 간단 튼튼 : 데몬 본연 기능 <-- 상주 루프 이후 데몬 몸통에 : 환경기 + 타격기 <-- 환격기는 루프 밖, 타격기는 루프 안 환경기, 타격기 모두 단발 구조 <-- 둘다 단발이지만 데몸 몸통 어디에 있냐 이걸로 반복 구조 환경기 파일 본다. 환경기 파일에 기본적인 구조가 있다. 1. 그누보드 : DB 2. 데이터 수집 : DB 관련 코드 있다. 맞지. 거기에 API 관련 코드도 있따. 맞지. 즉 이제 작업을 하는데 더 필요한건 없다. 내가 더 줄 테이터가 있나. 이제 작업 목표를 가지고 작업한다. 우리는 일단 테이블에 컬럼 하나를 박는다. 위에서 말한 일단 움직인다. 작업을 한다. 1. 종목, 현재가 <-- 두개 데이터가 필요한다. 2. 이 데이터를 API로 가져온다. 3. 종목은 그누보드에서 가져온다. ** 그누보드 테이블 : g5_write_daemon_kind_stock 그누보드 테이블에서 가져오는건 딸랑 하나다. 종목이 뭐냐. 첨부 파일에 가져올 그누보드 컬럼명도 있따. 그리고 가져 올때 작동/정지에 따란 컬럼 값으로 필터링해서 가져오는 구조다. 1. 이제 우리는 그누보드에서 종목을 가져온다. 2. 해당 종목으로 각 종목에 현재값을 가져다 현재 테이블에 박는다. 여기까지가 환경기가 할 일이다. 이후 타격기는 해당 값을 가져다. 해당 테이블에 데이터를 박는다. 여기서 하나 추가하고 다음으로 넘어가면 어떻게 줄 지다. 이거까지 환경기가 해야 한다. 여기서 API 구조를 간단히 보면 이거다. API는 섹션 방식으로 웹소켓방식 값을 준다. 섹션은 1섹션당 40종목 X 5섹션 = 200종목이다. 이 구조를 만들어 놔야 이후 종목이 추가되도 별도 수정 없이 박는다. 여기서 정리하면 데몬 몸통은 그냥 데몬 순수 상주 루프고, 환경기는 모든 환경을 구성하고 연산까지 한다. 타격기는 아무 생각 없이 때려야 한다. 즉 환경기에서 때릴 종목을 다 정리해서 줘야한다. 타격기는 그걸 그냥 때리기만 한다. 즉 어떤 종목을 어떻게 구분해서 어떤 방식으로 때리고 어쩌고는 타격기가 아닌 환경기가 다 정리해줘야 한다. 즉 아래와 같다. 환겨기에서 해당 종목이 몇개인지 그누보드에서 가져다 묶으로 묶어서 타격기에 던져 줘야 한다. 여기서 질문이다. 40종목 X 5섹션 = 200 종목이다. 이게 병렬식이다. 그누보드에 1종목이 있든 200종목이 있든 위 5섹션을 다 써야 한다. 여기서 가정을 한다. 200종목이라고 가정한다. <-- 200종목 가정. 그걸 그누보드에서 가져다. 환경기가 200종목을 가져다 타격기에 던져줄때 병렬식이니까 묶어서 하나로 던져 주면 타격기는 그냥 때리기만 하면된다. 별도 생각 없이 간단하게 주는거 딱 하나 때리고 끝이다. 즉 1개면 그 묶음에 종목은 1개고 200개면 그 묶음에 200개다 맞지. 단 5섹션을 쓰는데 5종목이든 180종목이든 그걸 정리해서 묶는건 환경기 몪이다. 타격기는 간단하다. 환경기가 던져주는거 딱 한세트 받아다 딱 한방 때리는 단발 코드다. 즉 그거 한방 때리고 퇴근이다. 이후 데몬이 몇오 쉬고 다시 출근해 이렇게 시키는거다. 대 충 설명했고 알아들었다 생각하고 이제 작업에 들어가는 우선 순위데로 간다. 데몬 몸통은 14줄이고 단순 무식 튼튼 빵빵 코드다. 무제가 있을 수 없다. 데몬에 추가될 외부 코드 중 일단 환경기와 타걱기가 있다. 현재 데몬 몸통 코드에 두개의 인클루드 코드가 있다. 맞지. 그럼 몸통에 기본적인 문제가 없으니까. 바로 환경기로 간다. 일단 순서데로 확인 들어간다. stock_total_env.php <-- 이 파일이 기본 환경기라는 이름의 파일이다. 일단 가장 먼저 있어야 할 코드가 그누보드에서 종목을 가져와야 한다. 그래야 그 종목으로 아래에서 API로 데이터를 가져온다. 맞지. 그럼 그누보드 가져오는 코드는 아무 문제 없다. 맞나. 관련 테이블 컬럼은 무조건 있다. 이는 게시판을 생성하면 x2_run을 빼고 자동 생성이다. 그리고 x2_run 컬럼도 현재 잇따. 그럼 이제 그누보드 코드 부분은 있다. 다음 api로 불로오는 코드도 문제 있나. <-- 데이터불로오는 것 자체를 말하는거다. 이제 그 부분이 없으면 가져와서 묶는 부분을 확인한다. 즉 이부분이 완전 정리되여야 타격기가 그냥 단순 무식한 년으로 한방 때리고 퇴근하는 단발 파일로 편하게 타격한다. 1. 현재 테스트로 1종목만 그누보드에 있다. 2.그러나 이제 데이터 수집 들어가면 종목이 늘어난다. 3.이후 이 종목이 200종목까지 들어간다. 4. 그러니 우리는 여기서 섹션을 다 가져다 묶어야 한다. 이해가지. 섹션은 이렇다. 5종목 한방에 병렬로 묶어서 때린다. 또는 데몬 5마리가 각각 한 섹션씩 가져다때린다. 다 가능하다. 지금 이 데몬은 5섹션을 쓰지 않는다. 4섹션을 쓴다. 즉 1섹션 40종목 X 4섹션 = 160종목이다. 1섹션은 다른 데몬이 쓸거다. 그러니 160종목 4섹션 병렬고 값을 가져다 배열이든 뭐든 하나로 묶어야 한다. 이해가지 그렇게 묶을 수 있따. 여기서 이렇게 물어본다. 이 섹션이 초당이다. 즉 웹소켓방식 <-- 방식은 웹소켓이다. 초당 160종목이다. 여기서 만약 내 그누보드에 500종목이 있다. 이렇게 가정한다. 그럼 이렇게 가야한다. 1. 4소켓을 쓴다. 즉 160종목으로 나누어야 한다. 2. 즉 그누보드에서 500종목을 불러와서 160개씩 나누어야 한다. 맞지. 하나의 데몬이 500종목을 다 때린다. 데몬은 2개다. 1. 데몬 1 : 1~2섹션 2. 데몬 2 : 2~3섹션 즉 데몬 두마리가 어떻게 섹션을 나누든 : 한마리는 그냥 섹션 당 40 X 섹션 수 / 나머지 한마리가 그누보드 종목을 몽땅 때린다. 여기서 헷갈리는 부분을 정리한다. *** 즉 데몬 한마리가 수백~ 수천종목을 때리는구조 1. 여기서 4섹션을 쓴다고 가정하고 160종목으로 가정하고 그누보드는 500종목으로 가정한다. 2. 여기서 핵심은 초당이다. 즉 160종목 일딴 때리고 이어서 이후 160종목을 1초후 때리면 이렇게 순차로 때린다. 3. 불러오는건 초당 순차로 호출 하지만 데이터가 박히는건 초당이 아니라 몇초가 될 수 있다. 맞지. 즉 중요한 종목은 초당으로 때린다. 즉 그 초당 데몬이 섹션을 할당 받는다 1개나 2개 즉 40종목이나 80종목이다. 이 데몬은 순수하게 1초당 해당 종목을 때린다. 나머지 데몬은 남은 섹션 3~4개를 할 당 박아서 위 처럼 순차로 그누보드 나머지를 몽땅 때려 박는다. 그럼 많은 종목을 데이터에 박는다. 다른점은 한 데몬은 초당 박는 대신 종목이 정해져 있고, 다른 데몬은 시간은 늘어지지만 박는 종목 늘어난다는 거다. 정리한다. 그냥 넉넉하게 할 당을  1. 2섹션 데몬 2. 3섹션 데몬 <-- 이년이 지금 작업 데몬이고 : 그누보드 모든 종목을 다 받아 대는 데몬이다. 정리한다. 그냥 넉넉하게 할 당을  1. 2섹션 데몬 2. 3섹션 데몬 <-- 이년이 지금 작업 데몬이고 : 그누보드 모든 종목을 다 받아 대는 데몬이다. 이핵가지. 아까 말 이어서 하자. *** 가정 : 3섹션 사용 / 120종목 / 그누에 500종목 존재 1. 그누보드 종목을 다 가져온다. 2. 때리는건 120종목이 1차 한계다. 가. 즉 500종목을 120개씩 순차로 박는다. <-- 시간은 늘어져도 다 박아야 한다. 여기까지 정리되었다. 여기서 구조 문제 정리한다. 기존 구조가 1. 데몬 몸통만 루프 2. 나머지는 단발 그런데 현재 타격기가 때리는게 단발이면 160종목이면 이후 순차로 박는 160종목 이후 그누보드 종목 박는데 어려움, 문제가 발생한다. 즉 타격기가 단발이라도 이런 단발이어야 한다. 순차 때리고 쉰다. 맞지. 여기서 묶음이 문제다. 굳이 환경기가 다 묶어야 하는 건 아니다. 즉 환경기에서 최대 묶을 수 있는 160개를 따로 따로 묶어서 던져 준다. 즉 500종목이면 3묶음이 나완다. 이렇게 묶어서 3개를 던져주면 타격기가 3개를 순차로 때리고 쉰다. 즉 환경기는 던져주는 것 자체로 임무를 마무리한다. 문제는 타격기가 자체 루프를 가져야한다는 거다. 즉 데몬 루프 안에 또다른 루프가 있어야 한다. 이게 가능하냐는거다. 그거 혹시 데몬에 부담이 주거나 문제가 되지 않나 그럼 현재 이론은 완성됐다. 즉 똥이던 된장이던 현재 구조가 문제가 없다면 일단 무조건 환경기를 제작한다. 아까 대화 이어서 하면 아까 환경기 코드 그누에서 가져오고, api가져오고 여기까지 문제 없고 이제 어떻게 종목을 묶을거냐 부터 이야기 하면 된다. 이제 묶는 방법은 이거다. *** 가정 그누보드 500종목 / 해당데몬 할 당 섹션 3섹션 종목 120종목 1. 환경기는 500종목을 불러왔다. 2. 120종목으로 묶어서 각 120종목 1세트로 묶어서 총 세트를 던져준다. 만약 현재 테스트로 1종목만 딸랑 있다. 그럼 해당 묶음은 1세트로 끝이다. 맞지. 현재 환경기 파일 코드 그것만 수정하면 된다. 맞나. 세션 할당은 3섹션이다. 이제 타격기를 제작하면 된다. 타격기는 이론상 한방에 120종목을 때린다. 이론상 이건 때리는데 0.2초다 그러나 이건 이론이다. 현실적으로 api를 갖져다 때리는데 몇초 걸리지. 그냥 간단하게 간다. 이거든 저거든 가져오는게 순차라면 그냥 타격기가 각 종목 때리고 1초 쉬고 다음 때리면 문제 없지. 즉 간단한건 이거다. 데몬은 머리 많이 안쓴다. 그냥 환경기가 던져준 묶음이 1개면 한개 때리고 퇴근, 5개면 각 세트 1초 간격 타격 후 퇴근 맞지