728x90
반응형

전체 글 102

[사이드 프로젝트]파이썬 주식봇 만들기 -1

인프런 강의를 들으며 정리하는 기록이다. 이번 글은 알고리즘 트레이딩이 어떤 단계로 이루어지는지와, 왜 파이썬을 쓰는지를 정리했다.알고리즘 트레이딩의 구성요소 데이터 수집전략을 만들고 검증하는 데 쓸 가격 데이터를 모은다. 전략 구축언제 사고 언제 팔지에 대한 규칙을 정한다. 백테스팅그 전략으로 과거부터 투자했다면 수익률이 어땠을지 계산해본다.실거래는 백테스팅을 충분히 거친 뒤에 진행한다. 이때 주의할 것이 과적합이다. 과거 데이터에만 지나치게 잘 맞도록 전략을 다듬으면 실제 시장에서는 같은 결과가 나오지 않는다.왜 파이썬인가강의에서 사용하는 도구는 파이썬이다. 수치 계산과 시계열 데이터 처리를 맡는 두 라이브러리가 핵심이다. 넘파이 (NumPy) 판다스 (P..

[사이드 프로젝트]파이썬 주식봇 만들기 -0(시작)

인프런 강의를 들으며 정리하는 기록이다. 프론트엔드 개발자가 파이썬으로 주식 자동매매 봇을 만들어보는 사이드 프로젝트이고, 이번 글은 시작하기 전에 알아야 할 배경을 정리했다.왜 지금 알고리즘 트레이딩인가 전 세계 알고리즘 매매 규모가 계속 커지고 있다. 머신러닝이 운용하는 자산 규모가 늘고 있다. 생성형 AI를 투자에 활용하는 사례가 늘고 있다.강의에서 소개한 사례 중 인상적이었던 것은, 기업의 재무제표를 GPT-4에 넣고 정교한 프롬프트로 세 단계에 걸쳐 분석하게 해서 앞으로의 실적 방향을 예측하게 한 연구였다.먼저 알아둘 용어 이동평균선 특정 기간 동안의 가격 평균을 이어서 그린 선 골든크로스 단기 이동평균선이 장기 이동평균선을 위로..

[study]커밋할때나 브랜치명 만들때 사용하는 규칙

커밋 메시지태그설명사용 예시feat새로운 기능 추가feat: 로그인 페이지 UI 구현fix버그 수정fix: 결제 금액 계산 오류 수정refactor기능/동작 변경 없는 코드 구조 개선refactor: 중복되는 버튼 컴포넌트 분리style코드 포맷팅, 세미콜론 누락 등 (로직 변경 X)style: 메인 배너 CSS 들여쓰기 수정docs문서 수정 (README 등)docs: API 명세서 업데이트test테스트 코드 추가/수정test: 회원가입 유효성 검사 테스트 추가chore빌드 설정, 패키지 매니저 설정 등chore: eslint 설정 변경 브랜치명타입설명예시feature/새로운 기능 개발 (가장 많이 씀)feature/133-feedback-bottom-sheetfix/버그 수정fix/152-typo-c..

[Git] 한 컴퓨터에서 회사·개인 깃허브 계정 함께 쓰기: SSH 키와 Host 별칭

문제 상황회사 계정으로 로그인된 컴퓨터에서 개인 레포지토리 작업을 하려면 매번 로그아웃과 로그인을 반복해야 했다. 로그아웃을 잊어 개인 계정으로 회사 레포에 커밋한 적도 있다.개인 레포를 clone해서 수정까지는 되지만 push를 하면 권한이 없다는 에러가 난다. 컴퓨터는 회사 계정의 인증 정보로 요청을 보내기 때문이다.해결 방향개인 계정용 SSH 키를 따로 만들고, SSH 설정에 별칭(Host)을 등록해서 개인 레포는 그 키로 접속하게 한다. 회사 레포는 기존 방식 그대로 두고, 개인 레포의 원격 주소만 별칭을 쓰도록 바꾸는 방식이다.아래 예시에서 bangmim은 내 깃허브 ID이고, 본인 ID로 바꿔서 쓰면 된다.1단계: 개인 계정용 SSH 키 만들고 깃허브에 등록mkdir -p ~/.sshssh-k..

[React Native] datetimepicker iOS 빌드 에러: Incompatible function pointer types (YGNodeConstRef)

문제 상황Xcode에서 iOS 빌드를 하면 @react-native-community/datetimepicker에서 아래 에러가 났다.…/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerShadowView.m:8:41Incompatible function pointer types passing'YGSize (YGNodeConstRef, float, YGMeasureMode, float, YGMeasureMode)'(aka 'struct YGSize (const struct YGNode *, float, enum YGMeasureMode, float, enum YGMeasureMode)')to parameter of type ..

[React Native] @stomp/stompjs가 안드로이드에서만 연결되지 않을 때: forceBinaryWSFrames

문제 상황React Native 앱에서 @stomp/stompjs로 웹소켓을 연결했는데, iOS에서는 정상적으로 연결되고 안드로이드에서만 연결이 완료되지 않았다. 안드로이드에서 디버그 로그를 찍어보면 연결 시도 이후로 더 진행되지 않았다.같은 코드로 iOS에서는 아래처럼 연결까지 완료된다.시도한 것검색해서 나오는 해결책은 대부분 안드로이드 네트워크 설정 쪽이었다. AndroidManifest.xml에 아래 두 가지가 이미 적용되어 있었는데도 증상은 같았다.네트워크 권한 문제가 아니라고 판단하고, 라이브러리의 타입 정의 파일(Client.d.ts)을 열어 설정할 수 있는 옵션을 하나씩 확인했다. 그중 forceBinaryWSFrames 옵션이 눈에 들어왔다.원인React Native의 웹소켓 구현은 일부 ..

[React Native] 구글 로그인 DEVELOPER_ERROR: signingReport에서 SHA-1을 잘못 고른 경우

문제 상황@react-native-google-signin/google-signin으로 구글 로그인을 붙였는데 안드로이드에서 [Error: DEVELOPER_ERROR]가 발생했다.환경은 React Native 안드로이드 debug 빌드이고, 파이어베이스와 연동한 프로젝트다.시도한 것검색하면 DEVELOPER_ERROR는 SHA-1 키 문제라는 답이 대부분이다. 그래서 ./gradlew signingReport로 SHA-1을 확인해 파이어베이스에 등록했는데, 제대로 입력했는데도 에러가 계속 났다.공식 문서의 설정 가이드를 다시 읽었고, 문서에서도 DEVELOPER_ERROR를 따로 경고하고 있었다.공식 문서: Obtaining configuration information | React Native Go..

[React Native] google-mobile-ads 광고가 안 나올 때: 테스트 광고 ID와 실제 광고 ID

문제 상황react-native-google-mobile-ads를 연동하고 배너 광고 컴포넌트를 넣었는데 광고가 화면에 나오지 않았다.원인unitId에 넣는 값은 두 종류가 있다. AdMob에서 발급받은 실제 광고 단위 ID와, 라이브러리가 제공하는 테스트용 ID다. 나는 실제 광고 단위 ID를 넣고 있었다.실제 광고 단위 ID는 개발 중에는 광고가 채워지지 않는 경우가 많다. 새로 만든 광고 단위는 광고가 나오기까지 시간이 걸리고, 출시 전인 앱은 광고 게재가 제한되기 때문이다.해결개발할 때는 테스트용 ID를 쓰고, 배포할 때만 실제 ID를 쓰도록 나눴다. 테스트용 ID로 바꾸자 광고가 바로 나왔다.import { BannerAd, BannerAdSize, TestIds } from 'react-nat..

[React Native] Firebase iOS 빌드 에러: Swift pod 의존성이 모듈을 정의하지 않을 때 (use_modular_headers)

문제 상황React Native 프로젝트에 파이어베이스를 연동하고 iOS 빌드를 위해 pod install을 하는 과정에서 아래 에러가 났다.The Swift pod `FirebaseStorage` depends upon `FirebaseAppCheckInterop`, `FirebaseAuthInterop`,`FirebaseCore`, `FirebaseCoreExtension`, and `GoogleUtilities`, which do not define modules.To opt into those targets generating module maps (which is necessary to import them from Swiftwhen building as static libraries), you..

[React Native] 두 프로젝트 동시에 실행하기: Metro 포트 변경과 0.78에서 로그가 안 보이는 이유

문제 상황한 컴퓨터에서 React Native 프로젝트 두 개를 동시에 실행하고 싶었다. Metro는 기본으로 8081 포트를 쓰기 때문에 두 번째 프로젝트는 다른 포트로 띄워야 한다.Metro를 다른 포트로 시작하기npx react-native start --port=8082캐시를 비우고 시작하려면 뒤에 --reset-cache를 붙인다.npx react-native start --port=8082 --reset-cache막힌 부분 1: 앱이 계속 8081에 연결된다Metro만 8082로 띄우면 끝이 아니었다. 앱을 실행할 때도 포트를 알려줘야 한다. 그렇지 않으면 이미 열려 있는 8081에 연결되거나, 새 터미널이 열리면서 8081 Metro가 실행됐다.시도한 순서는 이렇다.npm run androi..

728x90
반응형