파이썬(Python)의 라이브러리 버전 관리를 용이하게 해주는 venv 모듈 기본 사용 방법에 대해 정리.들어가며다양한 파이썬 프로젝트를 접하다 보면 각 프로젝트 별로 사용된 라이브러리 패키지의 버전이 다른 경우가 다반사이다. 문제는 라이브러리 상위 버전이 하위 버전을 항상 커버해 주는 것이 아니기 때문에 무조건적인 최신 업데이트가 능사가 아니라는 점에서 발생하게 된다.venv란?그로 인해 프로젝트 별 라이브러리 버전 관리를 고민하게 되는데, 파이썬 3.3부터는 venv 모듈이 기본 모듈로 도입되어 해당 문제를 해결할 수 있도록 도와준다. venv은 별도의 가상 환경을 만들어 선택된 가상 환경에 따라 구분된 라이브러리 버전을 설치 및 사용할 수 있도록 해 주는 모듈이다.venv 사용 방법그럼 venv를 ..
자본 위험 프리미엄의 의미와 계산하는 방법, 그리고 S&P 500에 대한 자본 위험 프리미엄의 과거 사례를 정리.자본 위험 프리미엄이란?자본 위험 프리미엄(ERP, Equity Risk Premium)이란 무위험 자산 대비해서 위험 자산이 가지는 프리미엄이 얼마인지를 산출한 것이다. 따라서 그 값이 클수록 해당 위험 자산에 대한 투자 매력도가 큰 것이라고 이해하면 된다.자본 위험 프리미엄의 계산 방법자본 위험 프리미엄의 계산식은 다음과 같다.자본 위험 프리미엄(ERP) = 위험 자산 기대수익률 - 무위험 자산 기대수익률S&P 500에 대한 ERP를 예로 들어 좀 더 구체적인 식으로 표현해 보자.ERP = S&P 500 PER의 역수 x 100 - 미국채 10년 물 금리ERP = S&P 500 Shille..
단기 선도금리(Near-term Forward Yield Spread)의 의미와 해당 스프레드 지표가 주목을 받는 이유, 그리고 역사적 사례 및 생각을 정리.단기 선도금리란?채권시장에서 말하는 선도금리란 미래의 특정 시점에 대한 금리를 말한다. 만약 18개월/3개월 선도금리라고 한다면 18개월 뒤 미래 시점에서의 3개월 물 채권 금리를 말하며, 이때 3개월 물은 단기물이므로 단기 선도금리라고 할 수 있다. 여기서 재미있는 것은 아직 다가오지 않은 미래에 대한 금리를 이야기하고 있다는 것이다. 어떻게 구하는 것일까?계산을 통해 구할 수 있다. 위 공식이 바로 선도금리를 구하는 공식이다. 공식에서 a는 m년 물의 금리, b는 (m+n)년 물의 금리를 말한다. 공식의 유도 과정은 출처인 다음 링크에 잘 설명되..
장단기 금리차란?채권 시장의 장기물 상품 수익률(또는 금리)과 단기물 상품 수익률(또는 금리) 차이(spread)를 장단기 금리차라고 한다. 가장 대표적으로 꼽는 장단기 금리차는 미국채 10년 물과 미국채 2년 물 금리의 차이, 그리고 미국채 10년 물과 미국채 3개월 물 금리의 차이가 있다. 후자는 전자보다 좀 더 민감하게 시장의 움직임을 판단할 수 있다.장단기 금리 역전 현상이론적인 수익률 곡선에서는 기간에 대한 프리미엄에 의해 만기가 길어질수록 금리가 더 높다. 정상적인 시장 상황에서 장기물 금리가 단기물 금리 보다 높아야 한다는 소리다. 하지만 현실에서는 경제 전망과 통화 정책 등의 영향으로 단기 금리가 장기 금리보다 높아지게 되는 장단기 금리 역전 현상이 발생할 수 있다.장기 금리는 시장의 경제..
안드로이드 프로그래밍 시 액티비티(Activity) 간에 객체를 전달하는 방법을 정리.들어가며...안드로이드 프로그래밍을 하다 보면 액티비티 간에 데이터를 전달해야 하는 경우가 종종 있다. 이때 데이터가 원시 타입의 변수들이라면 별다른 추가 조치 없이 쉽게 처리할 수 있지만 참조 타입의 객체라면 조금 손을 봐야 한다. 직렬화된 객체만 Bundle에 추가할 수 있기 때문이다.Trindex 앱에서도 액티비티 간 객체를 전달하는 부분이 있다. 그것을 예시로 액티비티 간 객체 데이터 전달 방법을 정리해 본다.액티비티 전환 전 송신 데이터 준비Trindex 앱을 시작하면 가장 먼저 스플래시 액티비티가 시작되며 로고를 1~2초간 보여준다. 이때의 시간을 낭비하지 않기 위해 백그라운드에서 앱에 사용되는 기초 데이터 ..
클라우드플레어 페이지(Cloudflare)의 애플리케이션에서 잘못된 경로로 접근할 때 다른 페이지로 리다이렉션 되는 것을 방지하고, 404 에러 코드를 얻을 수 있도록 만드는 방법.클라우드플레어 페이지에 404 페이지가 없을 때 발생하는 문제클라우드플레어 페이지의 애플리케이션 내에서 잘못된 경로의 URL 주소로 http 통신을 시도할 경우 의도하지 않은 다른 페이지로의 리다이렉션을 경험할 수 있다. 관련된 설정을 건드린 기억이 없으니 아마도 이게 디폴트 반응인 것 같다.그런데 더 문제가 될 수 있는 부분은 http 요청에 대한 결과 상태 코드가 200이라는 것이다. 정상이라는 소리가 되므로 코드 레벨에서 현 상황에 대한 별도의 처리를 구현하는데 어려움이 생긴다.문제 해결 방법이러한 문제를 해결하려면 클라..
안드로이드 14에서 Play Core 라이브러리 작동 호환성을 확보하기 위한 마이그레이션 방법.들어가며...지난주, 구글 플레이 팀으로부터 한 통의 메일을 받았다.현재 Trindex 앱에서 사용 중인 Play Core 1.10.3 라이브러리가 안드로이드 14(API level 34)에서는 더 이상 호환되지 않을 모양이다. 8월 31까지 새로운 버전으로 업데이트한 뒤 제출하라고 한다.Play Core? 어디에 쓰는 물건인고?일단 Play Core 라이브러리가 어떤 기능을 하는 애인지, 또, 왜 사용하게 된 건지 정확히 기억나지 않았다. 그래서 denpendencies의 implementation 문을 주석 처리하고, Sync 및 빌드 시도를 해 보았다.그러자 위와 같이 빌드 오류가 발생하면서...Play ..
일부 안드로이드 기기에서 기기를 돌려도 화면 회전이 나타나지 않는 문제를 해결하는 과정과 그 방법을 정리.기기 방향에 따라 화면이 회전하지 않는 증상일부 안드로이드 기기에서 기기를 이리저리 돌려봐도 Trindex 앱 화면이 회전하지 않는 문제를 발견했다. 정상 동작이 확인된 기기는 갤럭시 S24 플러스, 플립 5, 노트 9이었고, 문제가 확인된 기기는 갤럭시 A34와 안드로이드 스튜디오의 가상 기기들이었다.문제 해결하기까지의 시행착오문제의 원인이 정확하게 파악된 상태라면 굳이 시행착오 과정을 글로 남기지 않고, 원인과 해결 방법만으로 내용을 채웠을 것이다. 하지만 현재 문제는 해결했지만 원인은 여전히 불분명하기에 향후 유사한 문제가 발생할 경우를 대비해서 시행착오 과정도 남긴다.먼저 git으로 롤백 및 ..
안드로이드 스튜디오 AVD에서 특별한 이유 없이 나타나는 ANR 문제를 해결하는 방법.안드로이드 ANR 문제 발생지난주, Trindex 앱 업데이트 준비하면서 여느 때와 같이 안드로이드 스튜디오의 AVD를 켰고, 앱을 구동해 보았다. 그러자 이전까지 이상 없이 동작하던 앱이 갑작스럽게 먹통이 되는 모습을 보였다. 앱 부팅까지는 정상 동작하는 것처럼 보였는데, 이후 반응이 전혀 없었다.이때 사용자 입력을 받게 되면 몇 초가 흐른 뒤 아래와 비슷한 ANR 메시지가 뜨면서 앱에서 튕겨나갔다. 전일 마지막으로 테스트를 했을 때에는 아무런 문제가 없었고, 이후 프로젝트에 변경된 내용도 전혀 없었기에 조금 황당한 현상이었다.ANR 오류는 Application Not Respoding으로 사용자의 입력에도 불구하고 ..
파이썬(Python)을 설치하고 VSCode 설정을 통해 파이썬 개발 환경을 구축하는 방법.파이썬(Python) 설치 방법파이썬은 개발자 편의를 위해 다양한 라이브러리가 제공되는 언어 중 하나다. 라이브러리 대부분은 파이썬 최신 버전에서도 잘 동작하지만 특정 라이브러리의 경우 지정된 버전 내에서만 제대로 된 동작을 보장받을 수 있다. 따라서 파이썬 설치 전 가장 먼저 해야 할 일은 함께 사용하려는 라이브러리의 호환 버전을 확인하는 작업이다.텐서플로우 경우를 예로 들 수 있을 것이다. 텐서플로우는 딥러닝 분야의 기초 라이브러리인데, 위 스샷에 보이는 것과 같이 파이썬 버전에 따라 호환성이 결정된다. 현재 내게 필요한 것은 아니지만 요즘 같은 대 AI 시대에 혹시 모를 상황을 대비하여 해당 호환 버전 내에서..