Project (11) 썸네일형 리스트형 주식 추천 mcp 프로젝트 - 한국투자증권 API 기반 시세/수급 데이터 수집 MCP 서버 구현 이전 글에서 유튜브와 네이버 뉴스를 수집하는 Trend Scraper MCP 서버를 구현했었다. 이번에는 한국투자증권(한투) Open API를 활용하여 종목의 현재가, 차트, 기술지표, 외국인/기관 수급 데이터를 수집하는 mcp-market-data MCP 서버를 구현해보고자 한다.이전 서버와 마찬가지로 서버는 수치만 반환하고, 판단과 해석은 LLM(Claude)에 위임하는 구조이다. (추후 주식에 대한 개인적 견해가 넓어지면 다양한 데이터 연동, 프롬프트에 해당 부분 가중치 설정 가능하도록 할 예정이다) 한국투자증권 Open API 발급본 MCP 서버는 한국투자증권의 Open API를 사용한다. API를 사용하기 위해서는 사전에 계좌 개설과 API 키 발급이 필요하다. 간단히 절차를 정리하면 다음과 같.. 주식 추천 mcp 프로젝트 - 데이터 수집 mcp 구현 요즘 장이 좋고 투자에 관심을 가지기 시작하고 AI 발전에 따라서 여러 기술들이 들어오고 LLM 또한 똑똑해지는 상황에서 LLM을 통해 주식 트랜드를 분석하고 이에 대한 데이터를 추천 받을 수 있으면 좋겠다 생각하여 기획하게 되었다.생각하는 기획은 다음과 같다.1. 투자 소스들을 수입한다.2. 해당 부분에 대한 정보를 수집하여 확인한다.3. 해당 투자 정보중 실제 차트, 투자 데이터들을 분석한다.4. 주식을 추천하고 이를 기록한다.5. 기록된 데이터를 통해 실제 성공률 (% 증가 감소 등)을 누적하여 추후 추천시에 반영한다.--> 이러한 플로우를 LLM을 통해 진행하는 프로젝트이다. 현재 이중 1,2 번에 대한 기능을 구현하고 테스트하였다.Trend Scraper MCP — 유튜브 & 네이버 뉴스 데이터.. 유저 회원가입, 로그인, 정보 수정 구현 (Spring Security) 유저관련 기본 API 기능을 구현해 보고자 한다. 구현전 사용할 Spring Security 에 대해 알 필요가 있다.Spring Security란?Spring Security는 인증, 권한 관리 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는데 도움을 주는 Spring의 강력한 프레임워크이다. Spring Security 아키텍처1. 사용자의 요청이 서버로 들어온다.2. Authotication Filter가 요청을 가로채고 Authotication Manger로 요청을 위임한다.3. Authotication Manager는 등록된 Authotication Provider를 조회하며 인증을 요구한다. 4. Authotication Provider가 실제 데이터.. Crawling 버그 수정 및 개선 크롤링 서버 점검 중, 링커리어 크롤링 과정에서데이터 수집 오류: Message: Stacktrace:.... 해당 에러가 나왔다. 디버깅 해보니 사이트 엘리멘트들이 변경되어서, 해당 부분이 변경을 진행하여 에러를 수정하였다. (해당 부분에 대해 확인하고 수정하는 과정을 주기적으로 해야할 것으로 보인다.) 에러 수정한김에 추가적인 크롤링 파라미터, 함수를 변경하였다. 변경점 1. wait.until(EC.visibility_of_all_elements_located()) 함수 사용기존 사용하던 EC.presence_of_all_elements_located 함수의 경우 지정된 위치에 있는 모든 요소가 *DOM에 존재하기만 하면 대기를 종료한다. 하지만, EC.visibility_of_all_element.. Gathering Backend 구현 1 (프로젝트 생성 및 엔티티 설계) 백엔드는 Java-Spring boot로 진행하려고 한다.이에 따라 https://start.spring.io/ 를 이용하여 패키지를 생성한다.해당 부분에 대한 설명은 https://dev-studyingblog.tistory.com/92 Spring boot 시작하기스프링 부트는 스프링부트 스타터(https://start.spring.io/)라는 사이트를 이용하여 편리하게 프로젝트를 생성할 수 있다.스프틸 부트 스타터에서 다음과 같은 세팅을 설정한다.Project 선택 (Project Type)dev-studyingblog.tistory.com해당 부분을 참고 하면 된다. 다음과 같이 설정하고 generate를 진행하였다. 프로젝트 생성후 다음과 같이 build.gradle에 종속성을 추가해준다. .. Gathering 기획 3 앞에서 정리한 내용대로ERD를 만들어 보았다.erd가 잘 보이지 않을 수 있어, 링크까지 첨부한다.https://www.erdcloud.com/d/zcA9DF5Y9759FhTvK gatheringDraw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.www.erdcloud.com 설계 주요 포인트사용자 테이블 (User)사용자 정보를 관리하며, 소셜 로그인(구글, 네이버, 카카오 등)을 구분할 수 있도록 user_type 필드를 추가했다.user_no를 기본 키로 사용해, 모든 사용자 데이터를 중심적으로 연결할 수 있게 설계했다.게시판 (Post)와 모집 관리 (Gath.. Gathering 기획 2 백엔드 서버 구현전, 필요 기능을 정리 해볼 필요가 있다.필요 기능을 정리하고 ERD를 만든 후 서버 구현을 진행하고자 한다.먼저, 각 페이지별 디자인(추후 구체화를 통해 다소 변경될 수 있음)을 통해 필요 기능등을 정리해 보고자 한다. 1. 로그인 화면구글, 네이버, 카카오 3가지 아이디로 로그인할 수 있도록 구현한다.※ 구글,네이버, 카카오 같은 아이콘을 만들때 주의 사항https://developers.google.com/identity/branding-guidelines?hl=ko 로그인 브랜드 가이드라인 | Google ID 플랫폼 | Google for Developers로그인 브랜드 가이드라인 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 모바일 또는 .. Crawling 서버 구현 이제 완성된 crawling 코드를 이용하여 api를 만들예정이다.폴더 구조는 다음과 같이 api, crawling 코드, schemas로 나누었다.먼저 schemas에서는 api response데이터 타입을 검증해 주기 위해 pydantic을 사용하였다.from pydantic import BaseModelfrom typing import Optionalfrom datetime import dateclass ActivityData(BaseModel): ex_name: str ex_link: str ex_host: str ex_image: str ex_start: Optional[date] ex_end: Optional[date] # 종료 날짜 없는 상황도 있음 (모집시.. 이전 1 2 다음