diff --git a/quantec/cs/quantecAssets/README.md b/quantec/cs/quantecAssets/README.md new file mode 100644 index 0000000..e69de29 diff --git a/quantec/cs/quantecContract/README.md b/quantec/cs/quantecContract/README.md index 11deadc..4ef2b0f 100644 --- a/quantec/cs/quantecContract/README.md +++ b/quantec/cs/quantecContract/README.md @@ -1013,4 +1013,149 @@ firstDate < LAST_WRK_DTM 되어 있다면 DB에 있는 약관이 가입한 포 > > **정치영팀장**: PBP에서 추천링크 생성할때 investTypeList 추가 유무 물어봄 -### 업무 2024-08-29 +### 업무 2024-09-30 + +로그인시 변경약관동의 팝업 뜨는것 투자 일임 계약서 추가됨 +> 이것을 위해서 백엔드 TP0015MT와 TP5010MT에서 applydate와 regdate를 비교해서 applydate가 클경우 팝업을 띄우기로 하였음 + +백엔드에서 api추가 하였고 공통을 변경하여서 이것에 대해서 부작용 나는 부분 유심히 관찰해야 함 + +## todo + +약관 프로세스 정리 + +db 테이블 구조 정리 + +api 구조 정리 + +프론트 테스크 프로세스 정리 필요함 + +--- +--- + +## 2024-09-04 변경약관 현재까지 정리 + +1. "성과수수료합의서" 추가됨 DB TP0015MT DOC_DVSN_CD 09번으로 생성 +2. "계좌입출고제한동의서" 추가됨 DB TP0015MT DOC_DVSN_DC 10번으로 생성 +3. "로보어드바이저 투자일임계약(비대면)약관" DB TP0015MT DOC_DVSN_DC 08번으로 생성, 이 내용이 PBP-CS에서 "투자일임계약서"에 포함된다고 함(기획, 컴플 미팅시 확인) 현재 사용하지 않음. +4. "투자일임계약서" 내용 변경건으로 DB TP0015MT DOC_DVSN_DC 02번으로 DOC_SEQ 추가 생성 +5. !!이슈!! 8월 29일 배포하였던 프론트 코드에 문제점을 발견. 로그인 이후 변경약관동의 팝업에서 동의후 확인시 성과수수료합의서, 계좌입출고제한동의서, 투자일임계약서, 설명서 4개의 문서를 모두 POST로 전달. +6. 8월 29일 배포에서는 변경약관팝업에서 성과수수료합의서, 계좌입출고제한동의서 2개만 동의를 구하여 2개만 POST해야함. +(기존 코드 재활용으로 나온 문제) +7. 9월 3일 투자일임계약서를 동의 받으려함. 8월 29일 동의한 사용자 변경약관팝업이 출력안되는 현상. (이미 TP5010MT에 동의 내역이 있기 때문) +8. 운영계에서 테스트한 내부 계정들 모두 위의 이슈 확인. +9. 운영 프로세스상으로는 문제 없음, 고객 증가 했을때 DB 지저분해질 문제있음. PBP-CS의 ContractDocTask를 변경약관에도 사용할 수 있도록 수정할 계획. + +A. 9월 3일 오전 정치영부장님이 박상수차장에게 물어본 로보어드바이저 투자일임계약(비대면)약관은 위의 3번과 같은 이유로 나올 수 없음. 현재 프로세스상에서는 DOC_DVSN_DC 02번인 투자일임계약서의 동의를 확인해야함 +운영DB에서 동의 확인함. 현재는 로그인 후 변경약관동의가 안떠야 하는게 맞음. + +## 2024-09-09 TODO + +[get] /customer api를 불러올때 사용자의 포트폴리오를 불러오고 포트폴리오의 +상태, 동의여부를 불러오기 위함입니다. + +/customer api는 [내 자산]으로 들어가기전에 호출하여 cookieinfo에 담아 recoil로 사용하고 있으므로 /customer api에 가입되어 있는 포트폴리오 정보를 담는다면 어떤 페이지에 도달하였던지 변경약관 팝업을 띄울 수 있게 됩니다. + +로그인 성공 후 CookieInfo.tsx에 `getUserInfoApi`를 통해서 사용자 정보를 저장해서 recoil로 끌어다 사용하는 중. + + + + +여기에 portfolio리스트와 동의 여부를 체크해야 함. +사용자가 가입된 portfolio 목록의 DB 테이블은 TP0010MT, TP0010DT임 + +[get] /customer api의 쿼리는 아래와 같다 + +```console +SELECT + M.SCCO_CD AS sccoFnstCd, /* 증권사금융기관코드 */ + PTN.CP_NAME AS securitiesName, /* 증권사명 */ + M.CST_ID AS userId, /* 고객ID */ + U.USER_NAME AS userName, /* 고객명 */ + U.HP_NUMBER AS mobileNumber, /* 휴대폰번호 */ + U.BIRTH AS birth, /* 생일 */ + U.GENDER AS gender, /* 성별코드 */ + U.EMAIL AS email, /* 전자메일 */ + M.SCCO_CST_IDNTF_ID AS sccoCustomerIdentifyId, /* 증권사 고객식별 ID */ + M.RMKS AS remarks, /* 비고 */ + M.CST_STTS_CD AS statusCode, /* 상태코드 [1.정상, 9.탈퇴] */ + U.PASSWORD_ERROR_COUNT AS passwordErrorCount, /* 암호오류횟수 */ + U.PASSWORD_DATE AS passwordDate, /* 패스워드 등록일자 */ + U.ACTIVE_STEP AS activeStep, /* 활성단계 */ + UAI.PUSH_STATUS AS pushStatus, /* 혜택, 마케팅 푸시알람: 01.등록, 02.해제 */ + DATE_FORMAT(UAI.PUSH_STATUS_DATE, '%Y-%m-%d %H:%i:%s') AS pushStatusDate /* 푸시알람 변경날짜 */ +FROM + TP0007MT M + INNER JOIN api_mpot.TC_USER U /* 사용자정보 */ + ON U.UID = M.CST_ID + LEFT JOIN TC1500MT PTN /* 회원사 정보 */ + ON M.SCCO_CD = PTN.CP_CODE + LEFT JOIN TC5001MT UAI /* 푸시알림 상태 */ + ON U.UID = UAI.UID +WHERE + M.SCCO_CD = 270 + AND M.CST_ID = 5000001008 + AND U.ROLES = 1; + + +``` + +위의 쿼리에 2개의 테이블을 left join 한다. + +```console + +SELECT + M.SCCO_CD AS sccoFnstCd, /* 증권사금융기관코드 */ + PTN.CP_NAME AS securitiesName, /* 증권사명 */ + M.CST_ID AS userId, /* 고객ID */ + U.USER_NAME AS userName, /* 고객명 */ + U.HP_NUMBER AS mobileNumber, /* 휴대폰번호 */ + U.BIRTH AS birth, /* 생일 */ + U.GENDER AS gender, /* 성별코드 */ + U.EMAIL AS email, /* 전자메일 */ + M.SCCO_CST_IDNTF_ID AS sccoCustomerIdentifyId, /* 증권사 고객식별 ID */ + M.RMKS AS remarks, /* 비고 */ + M.CST_STTS_CD AS statusCode, /* 상태코드 [1.정상, 9.탈퇴] */ + U.PASSWORD_ERROR_COUNT AS passwordErrorCount, /* 암호오류횟수 */ + U.PASSWORD_DATE AS passwordDate, /* 패스워드 등록일자 */ + U.ACTIVE_STEP AS activeStep, /* 활성단계 */ + UAI.PUSH_STATUS AS pushStatus, /* 혜택, 마케팅 푸시알람: 01.등록, 02.해제 */ + PORT.PTFL_NM AS portFolioName, /* 포트폴리오 이름 */ + PORT.PTFL_ID AS portFolioID, /* 포트폴리오 아이디 */ + PORTSTAT.STATUS AS portFolioStatus, /* 포트폴리오 상태 */ + DATE_FORMAT(UAI.PUSH_STATUS_DATE, '%Y-%m-%d %H:%i:%s') AS pushStatusDate /* 푸시알람 변경날짜 */ +FROM + TP0007MT M + INNER JOIN api_mpot.TC_USER U /* 사용자정보 */ + ON U.UID = M.CST_ID + LEFT JOIN TC1500MT PTN /* 회원사 정보 */ + ON M.SCCO_CD = PTN.CP_CODE + LEFT JOIN TC5001MT UAI /* 푸시알림 상태 */ + ON U.UID = UAI.UID + LEFT JOIN QTDB.TP0010MT PORT /* 포트폴리오 정보 */ + ON M.CST_ID = PORT.WRTR_ID + LEFT JOIN QTDB.TC5009MT PORTSTAT /* 포트폴리오 상태 */ + ON PORT.PTFL_ID = PORTSTAT.PTFL_ID +WHERE + M.SCCO_CD = 270 + AND M.CST_ID = 5000001008 + AND U.ROLES = 1; + + +``` + +```console + PORT.PTFL_NM AS portFolioName, /* 포트폴리오 이름 */ + PORT.PTFL_ID AS portFolioID, /* 포트폴리오 아이디 */ + +``` + +```console +LEFT JOIN QTDB.TP0010MT PORT /* 포트폴리오 정보 */ + ON M.CST_ID = PORT.WRTR_ID + LEFT JOIN QTDB.TC5009MT PORTSTAT /* 포트폴리오 상태 */ + ON PORT.PTFL_ID = PORTSTAT.PTFL_ID + +``` + +위와 같이 2개를 추가 하여 로그인시 현재 활성화되어 있는 포트폴리오 diff --git a/quantec/cs/quantecFirstLoad/README.md b/quantec/cs/quantecFirstLoad/README.md new file mode 100644 index 0000000..57da72e --- /dev/null +++ b/quantec/cs/quantecFirstLoad/README.md @@ -0,0 +1,155 @@ +## 빌드시 초기로딩 속도에 대한 고찰 (Frist Load JS) + +> 빌드 속도를 개선하고 사용자 사용시 초기 로딩 속도를 향상 시키기 위하여 이 문서를 작성한다. + +```console + +-- as is -- +73requests | 8.5MB transferred | 29MB resources | Finish: 9.42s | DOMContentLoaded: 1.01 s | Load: 2.53s + + +Route (app) Size First Load JS +┌ λ / 8.33 kB 633 kB +├ λ /analysis/[counselDivisionCode] 14.5 kB 636 kB +├ λ /analysis/not-available 4.31 kB 363 kB +├ λ /assets 11.5 kB 661 kB +├ λ /etc 8.87 kB 602 kB +├ ○ /favicon.ico 0 B 0 B +├ λ /file 2.96 kB 344 kB +├ λ /gateway 3.56 kB 422 kB +├ λ /login 2 kB 425 kB +├ λ /market 3.56 kB 628 kB +├ λ /mts 7.2 kB 375 kB +├ λ /sample 10.5 kB 664 kB +└ λ /sample/backup 142 B 80.1 kB ++ First Load JS shared by all 80 kB + ├ chunks/7839-4550171616e94fb7.js 27.3 kB + ├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB + ├ chunks/main-app-ee2ba3384bf7bca4.js 227 B + └ chunks/webpack-251a6c35d38a66b4.js 1.97 kB +``` + +위의 빌드 결과를 보았을때 /Assets 쪽에서 Size, FirstLoadJs값이 큰것을 확인 할 수 있음. + +위를 개선해보고자 컴포넌트화 및 Dyniamic import 처리를 진행할것임 + +```console + +-- to be -- +73requests | 8.4MB transferred | 28.7MB resources | Finish: 8.66s | DOMContentLoaded: 358 ms | Load: 2.05s + +Route (app) Size First Load JS +┌ λ / 8.33 kB 633 kB +├ λ /analysis/[counselDivisionCode] 14.5 kB 636 kB +├ λ /analysis/not-available 4.31 kB 363 kB +├ λ /assets 9.03 kB 657 kB +├ λ /etc 8.87 kB 602 kB +├ ○ /favicon.ico 0 B 0 B +├ λ /file 2.96 kB 344 kB +├ λ /gateway 3.56 kB 422 kB +├ λ /login 2 kB 425 kB +├ λ /market 3.56 kB 629 kB +├ λ /mts 7.2 kB 375 kB +├ λ /sample 12 kB 665 kB +└ λ /sample/backup 142 B 80.2 kB ++ First Load JS shared by all 80 kB + ├ chunks/7839-4550171616e94fb7.js 27.3 kB + ├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB + ├ chunks/main-app-ee2ba3384bf7bca4.js 227 B + └ chunks/webpack-8d53428a2b9471a1.js 2.02 kB + + ``` + +/assets를 보면 수치상으로도 동적호출로 전환하였을때 용량이 줄어들고 초기로드속도가 빨라지는것을 확인 할 수 있음. 이것에 초기 로딩될때 필요하지 않은것들을 동적호출로 전환한다. + +MUI까지 동적 호출을 처리 하였을때 + +```console + +ute (app) Size First Load JS +┌ λ / 10.3 kB 637 kB +├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB +├ λ /analysis/not-available 4.3 kB 363 kB +├ λ /assets 13.7 kB 446 kB +├ λ /etc 9.96 kB 603 kB +├ ○ /favicon.ico 0 B 0 B +├ λ /file 2.96 kB 344 kB +├ λ /gateway 3.56 kB 423 kB +├ λ /login 2.02 kB 425 kB +├ λ /market 5.64 kB 633 kB +├ λ /mts 9.42 kB 375 kB +├ λ /sample 36.1 kB 667 kB +└ λ /sample/backup 142 B 80.8 kB ++ First Load JS shared by all 80.7 kB + ├ chunks/7839-4550171616e94fb7.js 27.3 kB + ├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB + ├ chunks/main-app-ee2ba3384bf7bca4.js 227 B + └ chunks/webpack-3f67b64ace555e15.js 2.64 kB + +``` + +위와 같이 초기로딩속도는 감소하였지만 파일용량 자체가 커져버리는 이슈가 발생하였다. 이는 이후 컴포넌트베이스로 다시 구조를 짜면 용량이 줄어들것임. + +178라인 컴포넌트 동적호출 처리 + +```console +Route (app) Size First Load JS +┌ λ / 10.3 kB 637 kB +├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB +├ λ /analysis/not-available 4.3 kB 363 kB +├ λ /assets 13 kB 445 kB +├ λ /etc 9.96 kB 603 kB +├ ○ /favicon.ico 0 B 0 B +├ λ /file 2.96 kB 344 kB +├ λ /gateway 3.56 kB 423 kB +├ λ /login 2.02 kB 425 kB +├ λ /market 5.64 kB 633 kB +├ λ /mts 9.42 kB 375 kB +├ λ /sample 36.1 kB 667 kB +└ λ /sample/backup 142 B 80.8 kB ++ First Load JS shared by all 80.7 kB + ├ chunks/7839-4550171616e94fb7.js 27.3 kB + ├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB + ├ chunks/main-app-ee2ba3384bf7bca4.js 227 B + └ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB + +Route (pages) Size First Load JS +┌ ○ /404 185 B 82.8 kB +├ λ /api/airBridge 0 B 82.6 kB +├ λ /api/apiLogs 0 B 82.6 kB +├ λ /api/destroySession 0 B 82.6 kB +├ λ /api/getSessions 0 B 82.6 kB +└ λ /api/setSessions 0 B 82.6 kB ++ First Load JS shared by all 82.6 kB + ├ chunks/framework-4498e84bb0ba1830.js 45.1 kB + ├ chunks/main-fbfceeefa1e04435.js 34.7 kB + ├ chunks/pages/_app-0fe44225c17aa1f2.js 199 B + └ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB + +``` + +theme 호출 된거 삭제 SwipeableViews 컴포넌트의 axis에서만 사용하고 있었음 한국은 그냥 axis="x" 로 하면 됨 + +```console +Route (app) Size First Load JS +┌ λ / 10.3 kB 637 kB +├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB +├ λ /analysis/not-available 4.3 kB 363 kB +├ λ /assets 13 kB 445 kB +├ λ /etc 9.96 kB 603 kB +├ ○ /favicon.ico 0 B 0 B +├ λ /file 2.96 kB 344 kB +├ λ /gateway 3.56 kB 423 kB +├ λ /login 2.02 kB 425 kB +├ λ /market 5.64 kB 633 kB +├ λ /mts 9.42 kB 375 kB +├ λ /sample 36.1 kB 667 kB +└ λ /sample/backup 142 B 80.8 kB ++ First Load JS shared by all 80.7 kB + ├ chunks/7839-4550171616e94fb7.js 27.3 kB + ├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB + ├ chunks/main-app-ee2ba3384bf7bca4.js 227 B + └ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB + + +``` diff --git a/quantec/pbp/customerList/README.md b/quantec/pbp/customerList/README.md new file mode 100644 index 0000000..7b57c72 --- /dev/null +++ b/quantec/pbp/customerList/README.md @@ -0,0 +1,57 @@ +![alt text](image.png) + +// 고객관리 고객리스트 --> [조회] 클릭시 아래 api 호출 + +[get] `/customer/management` + +```javascript + +interface ICustomerContainer extends ICustomerSearch { + page: number; // * 페이지 + pageSize?: number; // * 페이지당 건수 + sortFields?: string; // * 정렬항목 + sccoFnstCd?: string; // * 증권사 금융기관코드 + sccoEmpId?: string; // * 증권사 직원ID + userId?: string; // * 사용자ID + role?: 'ROLE_PB' | 'ROLE_CUST' | 'ROLE_ADMIN'; +} + +``` + +```javascript + +interface ICustomerListResult { + rows: ICustomerListRowData[]; + pageInfos: ICustomerPageInfo; +} + +interface ICustomerListRowData { + customerId: string; + customerName: string; + mobilePhoneNo: string; + genderCode: string; + gender: string; + investPropensityCode: string; + investPropensity: string; + profitRate: number; + birthday: string; + joinDate: string; + totalInvestAmount: number; + customerDivisionCode: string; + customerDivision: string; + accountNoList: string[]; + valuationAmount: number; + profitAmount: number; +} + +interface ICustomerPageInfo { + page: number; + pageSize: number; + totalCount: number; +} + +``` + +![alt text](image-1.png) + +[get] `/account/portfolio/strategy/invest` diff --git a/quantec/pbp/customerList/image-1.png b/quantec/pbp/customerList/image-1.png new file mode 100644 index 0000000..ef2ad1e Binary files /dev/null and b/quantec/pbp/customerList/image-1.png differ diff --git a/quantec/pbp/customerList/image.png b/quantec/pbp/customerList/image.png new file mode 100644 index 0000000..e756b5a Binary files /dev/null and b/quantec/pbp/customerList/image.png differ diff --git a/quantec/pbp/hana/README.md b/quantec/pbp/hana/README.md new file mode 100644 index 0000000..114ad0d --- /dev/null +++ b/quantec/pbp/hana/README.md @@ -0,0 +1,125 @@ +## 2024-09-11 하나증권 + +> 아래 방문 후 노트 원문 + +```markdown +시뮬레이터 > 내 포트폴리오목록 > 링크주소복사 + +Seq, divcd만 알면 될듯 + + +영업점 계좌로 변경 +엄이사님 +종합계좌 39432637-010 +근데 해당 계좌 국내형이니 +1. 관리자 변경 +2. 해외거래 가능 처리 >> 이미 해외가능계좌였음 +두개 요청 하신후 진행 하세요 + +관리자변경 관리자 신청서 문서 사용 + 신분증 +계좌 마곡 + + +타점 변경이기 때문에 신분증 스캔함 + +안유진 > 심하영 변경 + +관리자 바꾸는게 쉽지 않음 시간 걸림.. 미리 해야할듯 + +비대면일 경우는 무조건 서류로 해야함 +비대면 관리자 바꾸는게 어려움 + +급하게 처리해서 10분 내로 관리자 바꿈 + + +투자권유등록해야 링크를 메시지로 보낼 수 있음 +투자성향도 해야하고 투자권유등록해야함 + + +1040 계좌목록 +4408 보유주식 비중현황조회 +1014 투자성향파악 +8888 완전판매 프로세스 + +3165 영업서양식 약관 출력 > 콴텍검색 +오픈API 도 검색함 + +여기에 투자권유양식있음 + +실물서류 양식 받음 사인 + +1261 투자자문사투자성향확인 투자성향분석 공격적성향 나오게 설문함 + + +8시 39분 26초 엄명수이사님 타행입출금 하나플러스에 뜸 + +교부할게 있는데 그건 그냥 했다치고 넘어가기로함 + + + + +1256 개인정보처리동의 콴텍투자일임 검색 +8779 판매점검 치크리스트 +국내외혼합전략 + + +수탁업무진행후 라고 얼랏떠서 +랩투자일임에서 수탁업무 셀렉트하고 문서 모두 체크함 + +1262 투자자문사권유계좌등록 여기서 상품명 셀렉트 + +투자권유 콴텍 로보어드바이저 투자일임계약(비대면) 국내전략혼합형 or 국내외전략혼합형 + +수수료 유형은 성과형 +계약일(오늘날짜) 계약만기일 계약금액 + +계약금액 1천 +만기일 1년 + +성향분석이 콴텍플랫폼에서도 나와야하는데 시뮬레이터에는 없음... 그래서 + + +``` + +### 2024-09-11 PBP 시뮬레이터 관련 하나증권 방문 + +" 콴텍PBP 성향분석 후 로보어드바이저에서 전략을 추천하는 방식, 성향분석이 반드시 필요. 성향분석 없이 전략 가입시 하나증권PB가 콴텍PBP에 있는 전략을 직접 추천하는게 모양이 됨. 하나증권 민원시 곤란함을 유래 할 수 있다." + +기존 안유진PB에서 심하영PB로 관리자 변경 + +1. 콴텍PBP 시뮬레이터에 [링크전송]이 추가 되어 테스트로 하나증권 방문. +2. 하나플러스에서 [1040] 계좌목록 조회 +3. [4408] 보유주식 비중현황 조회 후 콴텍PBP 접속 +4. 콴텍PBP 시뮬레이터 링크생성 +5. [3165] 영업서양식 약관 출력 > 콴텍 검색 & 오픈API검색 실물서류 양식 받아 기재 +6. [1261] 투자자문사투자성향확인 투자성향분석 +7. [8779] 판매점검 체크리스트 > 국내외혼합전략형 선택함 +-- 하나플러스 Error: 수탁업무진행후 진행하라는 경고 발생 +8. [1262] 투자자문사권유계좌등록 화면에서 상품명 셀렉트 +상품명: 투자권유 콴텍 로보어드바이저 투자일임계약(비대면) 국내외전략혼합형 +수수료 유형: 성과형 +계약일: 1년 +계약금액: 1천만원 +-- 하나플러스 Error: 상품명이 상이하여 진행 되지 않음. + +#### [현 하나증권에서 콴텍 PBP 업무 화면 프로세스 정리] + +```mermaid + +flowchart TB + n0[("콴텍PBP")] + n1["1040
(계좌목록)"] + n2["4408
(보유주식 비중현황조회)"] + n3["3165
(영업서양식 약관 출력)"] + n4["1261
(투자자문사투자성햑확인 투자성향분석)"] + n5["1262
(투자자문사권유계좌등록)"] + n6["8779
(판매점검 체크리스트)"] + + n1 ---> n2 + n2 ---> n0 + n2 ---> n3 + n3 ---> n4 + n4 ---> n6 + n4 ---> n5 + +``` diff --git a/quantec/pbp/quantecReport/README.md b/quantec/pbp/quantecReport/README.md index 9218988..551a641 100644 --- a/quantec/pbp/quantecReport/README.md +++ b/quantec/pbp/quantecReport/README.md @@ -439,3 +439,645 @@ [기획 수정 요청 ppt 파일](<240821_PB플랫폼 수정요청_리포트.pptx>) >> 2024-08-28 우선 데이터 맞추어 놨고 디자인은 차후 수정하겠음 + +### 2024-09-03 + +![alt text](image-4.png) + +```json +[ + { + "code": "KP0001", + "stockName": "콴텍 가치투자 주식형1호", + "minimumHoldingWeight": 0, + "currentWeightRate": 0, + "recommendWeightRate": 48, + "title": "가치 투자의 정석", + "tags": "#한국중소형,#실적주,#시장나침반", + "concept": "가치 투자를 꿈꾸는 사람은 여기 주목! 한국 중소형주 중에서 PER, PBR 지표가 좋은 기업을 위주로 구성한 포트폴리오예요. 대가들이 말하는 투자 원칙에 가장 충실한 상품으로 투자가 처음인 분에게 적합해요.", + "universe": "한국 중소형주(mid-small cap)", + "style": "중소형 가치주(value)", + "raCode": "RA105014", + "strategyId": "KP0001", + "strategyName": "콴텍 가치투자 주식형1호", + "pubStartDate": "20190211", + "baseDate": "20240903", + "pubYears": "5.5", + "indexInfo": { + "strategyId": "KP0001", + "investType": "2", + "operationAmount": 1406497, + "oneWeekProfitRate": -1.68, + "oneMonthProfitRate": -1.84, + "threeMonthProfitRate": -3.6, + "sixMonthProfitRate": -0.02, + "oneYearProfitRate": 14.49, + "twoYearProfitRate": 24.84, + "threeYearProfitRate": 15.61, + "yearExchangeProfitIndex": 15.23, + "fullProfitRate": 130.21, + "standardDeviation": 0.25, + "beta": 0.84, + "sharpeRatio": 0.53, + "alpha": 0.11, + "infoRate": 0.6, + "trackError": 0.19, + "rewardRate": 2.42, + "mdd": -44.04 + }, + "strategySymbolList": [ + { + "globalType": "1", + "symbolCode": "037460", + "symbolName": "삼지전자", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 5, + "lastPrice": 8890, + "oneWeekProfit": 0.22, + "oneMonthProfit": 6.21, + "threeMonthProfit": -0.11, + "oneYearProfit": 11.82 + }, + { + "globalType": "1", + "symbolCode": "334890", + "symbolName": "이지스밸류리츠", + "industryCode": "G40", + "industryName": "금융", + "weight": 10, + "rank": 8, + "lastPrice": 5170, + "oneWeekProfit": -0.19, + "oneMonthProfit": 1.77, + "threeMonthProfit": 1.77, + "oneYearProfit": 18.85 + }, + { + "globalType": "1", + "symbolCode": "023410", + "symbolName": "유진기업", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 1, + "lastPrice": 3480, + "oneWeekProfit": -0.85, + "oneMonthProfit": 7.73, + "threeMonthProfit": -0.14, + "oneYearProfit": -4.39 + }, + { + "globalType": "1", + "symbolCode": "006120", + "symbolName": "SK디스커버리", + "industryCode": "G10", + "industryName": "에너지", + "weight": 10, + "rank": 4, + "lastPrice": 35100, + "oneWeekProfit": -1.26, + "oneMonthProfit": 0.28, + "threeMonthProfit": -21.56, + "oneYearProfit": -12.57 + }, + { + "globalType": "1", + "symbolCode": "004690", + "symbolName": "삼천리", + "industryCode": "G55", + "industryName": "유틸리티", + "weight": 10, + "rank": 7, + "lastPrice": 89000, + "oneWeekProfit": -1.33, + "oneMonthProfit": 4.82, + "threeMonthProfit": -6.7, + "oneYearProfit": -16.58 + }, + { + "globalType": "1", + "symbolCode": "129260", + "symbolName": "인터지스", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 10, + "lastPrice": 2250, + "oneWeekProfit": -1.53, + "oneMonthProfit": 11.11, + "threeMonthProfit": -2.8, + "oneYearProfit": -4.86 + }, + { + "globalType": "1", + "symbolCode": "007860", + "symbolName": "서연", + "industryCode": "G25", + "industryName": "경기관련소비재", + "weight": 10, + "rank": 9, + "lastPrice": 7620, + "oneWeekProfit": -2.05, + "oneMonthProfit": 12.38, + "threeMonthProfit": -19.87, + "oneYearProfit": 1.06 + }, + { + "globalType": "1", + "symbolCode": "000070", + "symbolName": "삼양홀딩스", + "industryCode": "G15", + "industryName": "소재", + "weight": 10, + "rank": 6, + "lastPrice": 72300, + "oneWeekProfit": -2.29, + "oneMonthProfit": 9.87, + "threeMonthProfit": 3.58, + "oneYearProfit": 3.28 + }, + { + "globalType": "1", + "symbolCode": "003300", + "symbolName": "한일홀딩스", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 2, + "lastPrice": 14060, + "oneWeekProfit": -2.63, + "oneMonthProfit": 10.7, + "threeMonthProfit": 6.11, + "oneYearProfit": 23.33 + }, + { + "globalType": "1", + "symbolCode": "000670", + "symbolName": "영풍", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 3, + "lastPrice": 310000, + "oneWeekProfit": -4.76, + "oneMonthProfit": 7.26, + "threeMonthProfit": -17.55, + "oneYearProfit": -43.32 + } + ], + "industryWeightList": [ + { + "itemCd": "G55", + "itemName": "유틸리티", + "weight": "10.00" + }, + { + "itemCd": "G20", + "itemName": "산업재", + "weight": "30.00" + }, + { + "itemCd": "G25", + "itemName": "경기관련소비재", + "weight": "10.00" + }, + { + "itemCd": "G10", + "itemName": "에너지", + "weight": "10.00" + }, + { + "itemCd": "G40", + "itemName": "금융", + "weight": "10.00" + }, + { + "itemCd": "G15", + "itemName": "소재", + "weight": "10.00" + }, + { + "itemCd": "G45", + "itemName": "IT", + "weight": "20.00" + } + ] + }, + { + "code": "KP0111", + "stockName": "콴텍 Q-Shield 국내 주식 2호", + "minimumHoldingWeight": 0, + "currentWeightRate": 0, + "recommendWeightRate": 8, + "title": "빠르게 성장할 기업들", + "tags": "#한국중대형주,#수익성,#성장성", + "concept": "성장하는 기업을 찾는 건 투자의 기본! 더욱이 빠르게 성장하는 기업이라면 금상첨화! 수익성과 성장성을 동시에 보여주는 종목으로 구성한 포트폴리오에요.", + "universe": "중대형주", + "style": "수익 성장", + "raCode": "RA113024", + "strategyId": "KP0111", + "strategyName": "콴텍 Q-Shield 국내 주식 2호", + "pubStartDate": "20210201", + "baseDate": "20240903", + "pubYears": "3.6", + "indexInfo": { + "strategyId": "KP0111", + "investType": "2", + "operationAmount": 5100000, + "oneWeekProfitRate": -1.31, + "oneMonthProfitRate": -4.81, + "threeMonthProfitRate": -13.31, + "sixMonthProfitRate": -9.65, + "oneYearProfitRate": -11.91, + "twoYearProfitRate": 27.89, + "threeYearProfitRate": 3.03, + "yearExchangeProfitIndex": 14.52, + "fullProfitRate": 71.23, + "standardDeviation": 0.2, + "beta": 0.54, + "sharpeRatio": 0.59, + "alpha": 0.15, + "infoRate": 0.93, + "trackError": 0.2, + "rewardRate": 1.32, + "mdd": -31.15 + }, + "strategySymbolList": [ + { + "globalType": "1", + "symbolCode": "042660", + "symbolName": "한화오션", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 1, + "lastPrice": 34550, + "oneWeekProfit": 4.06, + "oneMonthProfit": 28.2, + "threeMonthProfit": 11.09, + "oneYearProfit": -4.29 + }, + { + "globalType": "1", + "symbolCode": "058430", + "symbolName": "포스코스틸리온", + "industryCode": "G15", + "industryName": "소재", + "weight": 10, + "rank": 9, + "lastPrice": 41600, + "oneWeekProfit": 2.97, + "oneMonthProfit": 15.07, + "threeMonthProfit": -10.24, + "oneYearProfit": -29.84 + }, + { + "globalType": "1", + "symbolCode": "091810", + "symbolName": "티웨이항공", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 6, + "lastPrice": 2845, + "oneWeekProfit": 2.15, + "oneMonthProfit": 17.07, + "threeMonthProfit": 1.42, + "oneYearProfit": 6.35 + }, + { + "globalType": "1", + "symbolCode": "336370", + "symbolName": "솔루스첨단소재", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 10, + "lastPrice": 13300, + "oneWeekProfit": 1.75, + "oneMonthProfit": 5.63, + "threeMonthProfit": -24.47, + "oneYearProfit": -17.77 + }, + { + "globalType": "1", + "symbolCode": "042600", + "symbolName": "새로닉스", + "industryCode": "G25", + "industryName": "경기관련소비재", + "weight": 10, + "rank": 3, + "lastPrice": 13550, + "oneWeekProfit": 1.57, + "oneMonthProfit": 17.11, + "threeMonthProfit": -28.98, + "oneYearProfit": -58.81 + }, + { + "globalType": "1", + "symbolCode": "015750", + "symbolName": "성우하이텍", + "industryCode": "G25", + "industryName": "경기관련소비재", + "weight": 10, + "rank": 5, + "lastPrice": 7050, + "oneWeekProfit": -0.14, + "oneMonthProfit": 15.57, + "threeMonthProfit": -17.05, + "oneYearProfit": -29.5 + }, + { + "globalType": "1", + "symbolCode": "097520", + "symbolName": "엠씨넥스", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 8, + "lastPrice": 19280, + "oneWeekProfit": -1.38, + "oneMonthProfit": 8.55, + "threeMonthProfit": -14.31, + "oneYearProfit": -33.85 + }, + { + "globalType": "1", + "symbolCode": "441270", + "symbolName": "파인엠텍", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 2, + "lastPrice": 6490, + "oneWeekProfit": -1.81, + "oneMonthProfit": -3.13, + "threeMonthProfit": -36.37, + "oneYearProfit": -20.95 + }, + { + "globalType": "1", + "symbolCode": "272450", + "symbolName": "진에어", + "industryCode": "G20", + "industryName": "산업재", + "weight": 10, + "rank": 4, + "lastPrice": 10790, + "oneWeekProfit": -2.26, + "oneMonthProfit": 9.98, + "threeMonthProfit": -16.09, + "oneYearProfit": -17.44 + }, + { + "globalType": "1", + "symbolCode": "010950", + "symbolName": "S-Oil", + "industryCode": "G10", + "industryName": "에너지", + "weight": 10, + "rank": 7, + "lastPrice": 62200, + "oneWeekProfit": -2.5, + "oneMonthProfit": -4.01, + "threeMonthProfit": -11.14, + "oneYearProfit": -19.43 + } + ], + "industryWeightList": [ + { + "itemCd": "G20", + "itemName": "산업재", + "weight": "30.00" + }, + { + "itemCd": "G25", + "itemName": "경기관련소비재", + "weight": "20.00" + }, + { + "itemCd": "G10", + "itemName": "에너지", + "weight": "10.00" + }, + { + "itemCd": "G15", + "itemName": "소재", + "weight": "10.00" + }, + { + "itemCd": "G45", + "itemName": "IT", + "weight": "30.00" + } + ] + }, + { + "code": "UP0011", + "stockName": "콴텍 가치투자 해외주식형2호", + "minimumHoldingWeight": 0, + "currentWeightRate": 0, + "recommendWeightRate": 8, + "title": "아메리칸 드림", + "tags": "#미국대형주,#강소기업,#플렉스기업", + "concept": "S&P 500 중에서 현금을 많이 보유하고 있고, 현금 흐름 개선으로 성장 잠재력이 높은 기업을 위주로 구성한 포트폴리오예요. 투자 위험 대비 높은 기대 수익을 추구하여, 단기 목돈 마련을 원하는 분에게 적합해요.", + "universe": "미국 중대형주(large cap+)", + "style": "중대형 가치주(value)", + "raCode": "RA205024", + "strategyId": "UP0011", + "strategyName": "콴텍 가치투자 해외주식형2호", + "pubStartDate": "20190211", + "baseDate": "20240903", + "pubYears": "5.5", + "indexInfo": { + "strategyId": "UP0011", + "investType": "2", + "operationAmount": 796330, + "oneWeekProfitRate": 1.96, + "oneMonthProfitRate": 1.56, + "threeMonthProfitRate": 1.27, + "sixMonthProfitRate": 9.49, + "oneYearProfitRate": 14.8, + "twoYearProfitRate": 26.26, + "threeYearProfitRate": 47.16, + "yearExchangeProfitIndex": 12.33, + "fullProfitRate": 98.33, + "standardDeviation": 0.23, + "beta": 0.5, + "sharpeRatio": 0.44, + "alpha": 0.09, + "infoRate": 0.35, + "trackError": 0.23, + "rewardRate": 1.95, + "mdd": -42.31 + }, + "strategySymbolList": [ + { + "globalType": "2", + "symbolCode": "MPC", + "symbolName": "마라톤페트롤리엄", + "industryCode": "G10", + "industryName": "에너지", + "weight": 10, + "rank": 4, + "lastPrice": 177.12, + "oneWeekProfit": 4.25, + "oneMonthProfit": 9.82, + "threeMonthProfit": 1.84, + "oneYearProfit": 21.72 + }, + { + "globalType": "2", + "symbolCode": "WMT", + "symbolName": "월마트", + "industryCode": "G30", + "industryName": "필수소비재", + "weight": 10, + "rank": 2, + "lastPrice": 77.23, + "oneWeekProfit": 1.44, + "oneMonthProfit": 14.26, + "threeMonthProfit": 17.33, + "oneYearProfit": 45.05 + }, + { + "globalType": "2", + "symbolCode": "MO", + "symbolName": "알트리아", + "industryCode": "G30", + "industryName": "필수소비재", + "weight": 10, + "rank": 1, + "lastPrice": 53.77, + "oneWeekProfit": 1.43, + "oneMonthProfit": 8.95, + "threeMonthProfit": 18.03, + "oneYearProfit": 33.33 + }, + { + "globalType": "2", + "symbolCode": "QCOM", + "symbolName": "퀄컴", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 6, + "lastPrice": 175.32, + "oneWeekProfit": 0.79, + "oneMonthProfit": 10.63, + "threeMonthProfit": -14.85, + "oneYearProfit": 52.77 + }, + { + "globalType": "2", + "symbolCode": "AMAT", + "symbolName": "어플라이드머티리얼즈", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 10, + "lastPrice": 197.26, + "oneWeekProfit": 0.76, + "oneMonthProfit": 8.45, + "threeMonthProfit": -7.92, + "oneYearProfit": 28.92 + }, + { + "globalType": "2", + "symbolCode": "PM", + "symbolName": "필립모리스인터내셔널", + "industryCode": "G30", + "industryName": "필수소비재", + "weight": 10, + "rank": 8, + "lastPrice": 123.29, + "oneWeekProfit": 0.71, + "oneMonthProfit": 8.56, + "threeMonthProfit": 19.74, + "oneYearProfit": 35.97 + }, + { + "globalType": "2", + "symbolCode": "AAPL", + "symbolName": "애플", + "industryCode": "G45", + "industryName": "IT", + "weight": 10, + "rank": 3, + "lastPrice": 229, + "oneWeekProfit": 0.42, + "oneMonthProfit": 9.59, + "threeMonthProfit": 18.12, + "oneYearProfit": 21.33 + }, + { + "globalType": "2", + "symbolCode": "XOM", + "symbolName": "엑슨모빌", + "industryCode": "G10", + "industryName": "에너지", + "weight": 10, + "rank": 5, + "lastPrice": 117.94, + "oneWeekProfit": 0.22, + "oneMonthProfit": 3.58, + "threeMonthProfit": 3.87, + "oneYearProfit": 6.66 + }, + { + "globalType": "2", + "symbolCode": "EOG", + "symbolName": "EOG리소스", + "industryCode": "G10", + "industryName": "에너지", + "weight": 10, + "rank": 9, + "lastPrice": 128.82, + "oneWeekProfit": 0.2, + "oneMonthProfit": 4.62, + "threeMonthProfit": 8.42, + "oneYearProfit": -2.15 + }, + { + "globalType": "2", + "symbolCode": "NKE", + "symbolName": "나이키", + "industryCode": "G25", + "industryName": "경기관련소비재", + "weight": 10, + "rank": 7, + "lastPrice": 83.32, + "oneWeekProfit": -2.3, + "oneMonthProfit": 16.66, + "threeMonthProfit": -11.73, + "oneYearProfit": -16.04 + } + ], + "industryWeightList": [ + { + "itemCd": "G30", + "itemName": "필수소비재", + "weight": "30.00" + }, + { + "itemCd": "G25", + "itemName": "경기관련소비재", + "weight": "10.00" + }, + { + "itemCd": "G10", + "itemName": "에너지", + "weight": "30.00" + }, + { + "itemCd": "G45", + "itemName": "IT", + "weight": "30.00" + } + ] + } +] + +``` diff --git a/quantec/pbp/quantecReport/image-4.png b/quantec/pbp/quantecReport/image-4.png new file mode 100644 index 0000000..72d813c Binary files /dev/null and b/quantec/pbp/quantecReport/image-4.png differ