Upbit으로 비트코인 24시간 분석하기: 암호화폐 자동매매의 시작점
·
Programming/Python
이 글은 AI 기반 자동매매 시스템 시리즈의 3편입니다.전체 시리즈:1편: 한투 API로 실시간 주식 데이터 수집하기2편: yfinance로 애플·테슬라 분석하기3편: Upbit으로 비트코인 24시간 분석하기 ← 현재 글4편: AI 분석 결과 DB에 저장하기들어가며지금까지 한투 API로 국내 주식, yfinance로 해외 주식 데이터를 수집하고 AI 분석하는 방법을 알아봤습니다. 이번에는 시리즈의 마지막 편으로 Upbit API를 활용한 암호화폐 자동 분석을 다룹니다.제가 암호화폐 시장을 선택한 이유는 명확합니다. 암호화폐 시장은 24시간 365일 개장하기 때문에, 자동매매 시스템을 개발하고 배포한 직후 바로 실전에서 테스트할 수 있습니다. 주식 시장처럼 장 마감을 기다릴 필요 없이, 코드를 수정하면 몇..
yfinance로 애플·테슬라 분석하기: 해외 주식 데이터 수집 완벽 가이드
·
Programming/Python
이 글은 AI 기반 자동매매 시스템 시리즈의 2편입니다.전체 시리즈:1편: 한투 API로 실시간 주식 데이터 수집하기2편: yfinance로 애플·테슬라 분석하기 ← 현재 글3편: Upbit으로 비트코인 24시간 분석하기4편: AI 분석 결과 DB에 저장하기들어가며지난 글에서 한투 API로 삼성전자를 분석하며 실시간 국내 주식 데이터 수집 방법을 알아봤습니다. 이번에는 yfinance 라이브러리를 활용하여 애플(AAPL), 테슬라(TSLA) 같은 미국 주식을 분석하는 완벽한 방법을 소개합니다. API 키 없이 무료로 펀더멘털 데이터까지 수집할 수 있는 yfinance의 강력한 기능을 함께 살펴봅시다.왜 yfinance인가?해외 주식 데이터를 수집하는 방법은 여러 가지가 있습니다:1. KIS 해외주식 AP..
한국투자증권 API로 실시간 주식 데이터 수집하기: AI 투자 분석의 시작
·
Programming/Python
이 글은 AI 기반 자동매매 시스템 시리즈의 1편입니다.전체 시리즈:1편: 한투 API로 실시간 주식 데이터 수집하기 ← 현재 글2편: yfinance로 애플·테슬라 분석하기3편: Upbit으로 비트코인 24시간 분석하기4편: AI 분석 결과 DB에 저장하기들어가며주식 투자에서 데이터는 필수입니다. 하지만 국내 주식의 실시간 데이터를 무료로 쉽게 구할 수 있는 방법은 많지 않죠. 이번 글에서는 한국투자증권(한투) API를 사용하여 실시간 주식 데이터를 수집하고, AI가 이해할 수 있는 형태로 가공하는 방법을 알아보겠습니다. 삼성전자를 실제로 분석하면서 AI 투자 분석 시스템의 첫 걸음을 시작해봅시다.KIS API로 국내 주식 데이터 수집 및 AI 프롬프트 생성들어가며주식 투자에서 데이터는 필수입니다. 하..
[프로그래머스 77486] 다단계 칫솔 판매 – 파이썬 최적화 풀이
·
Programming/코딩 테스트
dict 대신 list, // 대신 math.ceil 최적화까지 한 번에 살펴보기문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/77486문제 요약다단계 MLM 구조에서 판매 수익이 상위 추천인에게 10 % (내림) 씩 전파된다.모든 판매 내역이 주어졌을 때, 각 사람의 최종 이익을 계산하라.enroll: 가입자 이름 목록referral: 각 가입자의 추천인(센터는 '-')seller, amount: 판매자와 판매 수량 (칫솔 1개 = 100원)기본 아이디어이름 → 인덱스 매핑으로 배열 접근.부모(추천인) 테이블을 만들어 위로 전파.판매 금액을 while 루프로 올려 보내며본인이 가져갈 돈 = money - commission부모에게 넘길 ..
Brakeman 오탐(False Positive) 현명하게 관리하기
·
Programming/Ruby On Rails
Brakeman 시리즈 마지막 편입니다.우리는 1편에서 Brakeman의 기본 사용법을 익혔고, 2편에서는 CI에 연동하여 보안 스캔을 자동화했습니다.이번 글에서는 자동화된 스캔 결과를 어떻게 깔끔하고 신뢰도 높게 유지하는지, 즉 '오탐'을 관리하는 실용적인 방법을 알아봅니다. Brakeman으로 프로젝트를 스캔하다 보면, 수많은 경고 목록에 압도될 때가 있습니다. 하지만 이 경고들이 모두 실제 위협은 아닐 수 있습니다. Brakeman이 보안상 위험하다고 판단했지만, 코드의 전체적인 맥락이나 숨은 로직 때문에 실제로는 안전한 경우, 이를 오탐(False Positive)이라고 부릅니다.오탐을 그대로 방치하면 어떻게 될까요? 개발자들은 점차 모든 경고를 무시하게 되고(양치기 소년 효과), 결국 진짜 중요..
CircleCI/GitHub Actions에 Brakeman 자동화 연동하기
·
Programming/Ruby On Rails
Brakeman 시리즈 2편입니다.이전 글에서는 Brakeman의 기본 개념과 설치, 그리고 첫 스캔을 실행하는 방법을 알아보았습니다. 아직 Brakeman이 생소하시다면 아래 글을 먼저 읽고 오시는 것을 추천합니다.◀ 이전 글 다시보기: 내 Rails 앱의 첫 번째 보안관, Brakeman 시작하기 Brakeman을 로컬 환경에서 실행하는 것에 익숙해졌다면, 다음 단계는 이 과정을 자동화하여 모든 코드 변경사항에 대해 보안 검사를 실행하는 것입니다. 개발 파이프라인에 보안 스캔을 통합하는 것을 'DevSecOps'의 첫걸음이라고 부르기도 합니다.이번 글에서는 대표적인 CI/CD 도구인 CircleCI와 GitHub Actions에 Brakeman을 연동하여, 커밋하거나 풀 리퀘스트를 생성할 때마다 자동..
내 Rails 앱의 첫 번째 보안관, Brakeman 시작하기
·
Programming/Ruby On Rails
Ruby on Rails로 애플리케이션을 개발하다 보면, 우리는 자연스럽게 기능 구현에 집중하게 됩니다. 하지만 우리가 작성하는 코드 한 줄 한 줄에 보안 취약점이 숨어있을 수 있다는 사실을 알고 계셨나요? 마치 정기적으로 건강검진을 받아 우리 몸의 이상 신호를 확인하는 것처럼, 우리 코드도 정기적인 보안 검진이 필요합니다.오늘 소개할 Brakeman은 바로 Rails 앱을 위한 '코드 건강검진 도구'입니다. 복잡한 설정 없이도 우리 앱의 보안 상태를 진단하고 잠재적인 위험을 알려주는 든든한 첫 번째 보안관 역할을 해줍니다.🤔 Brakeman, 왜 사용해야 할까요?수많은 보안 도구 중에서 Brakeman이 Rails 개발자에게 특히 사랑받는 이유는 명확합니다.오직 Rails를 위한 전문성: Brakem..
올바른 괄호의 갯수 (예제 코드와 시행착오)
·
Programming/코딩 테스트
프로그래머스 문제 링크문제 설명길이가 2n인 괄호 문자열 중에서 올바른 괄호 문자열의 개수를 구하는 문제입니다. 올바른 괄호란, 열리는 괄호 (가 닫히는 괄호 )보다 먼저 나오고, 모든 괄호가 짝을 이루는 형태를 말합니다.첫 시도: 문자열 기반의 DFS 구현def solution(n): answer = 0 str_list = "()" stack = [(1, "(", 1, 0)] while stack: depth, current_str, open_count, close_count = stack.pop() if depth == n * 2: if current_str == "": answer += 1 ..
프로그래머스 거리두기 확인하기 - 반례 검증기
·
Programming/코딩 테스트
문제 링크 → 프로그래머스 - 거리두기 확인하기문제는 5x5 대기실에서 사람이 서로 맨해튼 거리 2 이내에 있으면서 가림막 없이 마주보면 거리두기 위반으로 간주하는 것이다. 간단히 말해:P끼리 인접(맨해튼 거리 1)해 있으면 무조건 위반P끼리 맨해튼 거리 2일 때, 그 사이가 O 또는 X냐에 따라 다름O는 빈자리, X는 파티션(가림막)✅ 내가 작성한 풀이나는 BFS를 사용하지 않고, 단순한 조건문 기반의 전수 조사 방식으로 풀었다. 핵심은 두 가지 조건이다:사람(P)이 상하좌우로 붙어 있으면 위반빈자리(O) 기준으로 상하좌우에 P가 2명 이상 붙어 있으면 위반def solution(places): answer = [] for place in places: people = set()..
frozenset 완전 이해하기 — 순서를 무시한 조합 비교와 해시 계산
·
Programming/Python
Python의 frozenset은 잘 알려진 set의 불변(immutable) 버전으로, 순서를 무시한 조합을 비교하거나 해시 가능한 자료구조로 사용할 때 매우 유용합니다. 이 글에서는 frozenset의 개념, 동작 방식, 해시 계산 구조를 깊이 있게 알아봅니다.🧊 frozenset이란?frozenset은 수정할 수 없는(settable하지 않은) 집합입니다.set과 거의 동일하게 동작하지만, immutable 하기 때문에 dict의 key 또는 set의 원소로 사용할 수 있습니다.s = set()s.add(set([1, 2])) # ❌ TypeErrors.add(frozenset([1, 2])) # ✅ 가능✅ 왜 frozenset을 쓸까?1. 조합의 중복 제거에 유리combo1 = frozens..