전체 글
-
파이썬으로 코인 거래하기 (빗썸)Python/파이썬과 주식, 코인 2026. 8. 11. 01:24
먼저 간단한 API wrapper 를 만들어 보자. 코인 거래소에서 제공되는 예제는 오류가 있는 경우도 있고, 코드의 중복이 많아서 살짝 정리해서 쓰기 편하게 만드는 것이 좋다. 먼저 생각해야할 것이 몇 가지 있다.부동 소수점 오차부동 소수점 오차는 컴퓨터가 실수를 2진법(이진수)으로 변환해 저장하는 과정에서 발생하는 미세한 근사값 오차입니다. 10진수 0.1은 2진수로 바꾸면 무한소수가 되므로, 정해진 메모리 크기 안에서 반올림되면서 0.1 + 0.2 != 0.3 같은 현상이 생깁니다.이를 해결하기 위해서는 Decimal 라이브러리가 필요하다. type파이썬 내부에서만 데이터가 움직이는 경우, 타입에 대한 스트레스가 크지 않다. IDE에서 타입 힌트도 잘 보여주는 편이고..하지만 API를 이용해서 데이..
-
주식 수익률 1위는 미성년자계좌 2026. 8. 4. 15:04
26년에도...https://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202607220299최근 변동성이 높아지긴 했지만 그래도 올 들어 전세계에서 가장 많이 오른 지수를 꼽으라면 단연 코스피일 겁니다.이런 증시 호황을 타고 주식 투자에 뛰어드신 분들 많을 텐데, 성적표" data-og-host="www.wowtv.co.kr" data-og-source-url="https://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202607220299" data-og-url="https://www.wowtv.co.kr/NewsCenter/News/Read?articleId=A202607220299" data-og-image="h..
-
장고의 미들웨어로 만드는 '유저 최근 접속 시간(=현재 접속 유저)'Python/초간단 장고 Django 2026. 7. 7. 01:05
[Django] 미들웨어, 캐시, DB를 활용해 유저 최근 접속 시간 기록하기웹 서비스를 운영하다 보면 "이 유저의 마지막 접속(사용)이 언제지?", "지금 우리 서비스에 접속한 유저는?" 같은 데이터가 필요할 때가 있습니다.가장 단순한 방법은 유저가 요청(Request)을 보낼 때마다 데이터베이스(DB)에 접속 시간을 업데이트하는 것입니다. 하지만 유저가 페이지를 이동할 때마다, 혹은 API를 호출할 때마다 DB에 UPDATE 쿼리를 날린다면 어떻게 될까요? 접속자가 조금만 많아져도 DB는 금방 비명을 지르게 될 것입니다.오늘은 Django의 미들웨어(Middleware)와 캐시(Cache)를 결합하여, DB 부담을 최소화하면서 유저의 최근 활성화 시간을 기록하는 스마트한 방법을 소개합니다.1. 전체 ..
-
(파이썬 장고의) 미들웨어에 대해 알아보자!Python/초간단 장고 Django 2026. 7. 7. 00:24
미들웨어(Middleware)는 HTTP 요청(Request)이 들어와서 응답(Response)이 나가는 과정 사이에서 작동하는 프레임워크의 플러그인 시스템입니다.쉽게 비유하자면, 장고라는 성(Castle)에 들어가기 전에 거쳐야 하는 '보안 검색대' 또는 '출입국 관리소' 같은 역할을 합니다. 모든 요청과 응답은 반드시 이 미들웨어를 통과하게 됩니다.1. 미들웨어의 작동 원리장고의 미들웨어는 체인(Chain) 구조로 동작합니다. 요청이 들어올 때와 응답이 나갈 때의 순서가 반대입니다.요청(Request) 단계: settings.py에 등록된 미들웨어의 위에서 아래 순서로 실행되며, 최종적으로 뷰(View)에 도달합니다.응답(Response) 단계: 뷰에서 생성된 응답이 미들웨어의 아래에서 위 순서(역순..
-
장고(Django)의 URL 또는 뷰 캐시Python/초간단 장고 Django 2026. 7. 4. 23:07
장고(Django)에서는 cache_page를 사용해 URL 또는 뷰 단위로 캐시를 적용할 수 있습니다.이 방식을 사용하면 장고가 URL, 쿼리 스트링, HTTP 헤더 등을 조합해 자동으로 캐시 키(Key)를 생성하고, 동일한 URL 요청이 들어오면 뷰 함수를 실행하지 않고 캐시된 응답(HTML 등)을 바로 반환합니다.1. urls.py에서 URL 패턴에 직접 적용뷰 함수 자체를 건드리지 않고, 특정 URL 경로에만 캐시를 먹이고 싶을 때 아주 유용합니다.# urls.pyfrom django.urls import pathfrom django.views.decorators.cache import cache_pagefrom . import viewsurlpatterns = [ # 주소창에 'articl..
-
도어락을 복사해 보자 - camelote.cn/nfctools 사용법잡다한 것들 2026. 6. 23. 11:30
중국산 NFC 리더기를 하나 샀고, 이를 통해 본인 도어락을 복사하려고 한다. 1. 리더기를 PC에 연결하니 USB 외장 드라이브가 하나 인식되었다.드라이브에 있는 바로가기를 클릭하니 다음 사이트에 접속되었다. https://www.camelote.cn/nfctools/2. 프로그램을 다운로드 했고, 실행 화면은 다음과 같다. 3. 봐야할 부분은 다음과 같다. 1) 좌측 사이드바 * HF Card / LF Card고주파(13.56MHz, Mifare 등) / 저주파(125KHz) 카드 모드 전환.국내 대부분 도어락은 HF 카드이다.* 좌하단 Connected리더기가 정상 연결됐다는 표시.2) 상단 탭M1: Mifare Classic (가장 많이 쓰는 카드 타입) 읽기/쓰기/분석.NATG: NTAG 시리즈..
-
golang sqlc (2)Go lang 실습 2026. 6. 21. 22:32
1. SQL에서 다중 행(Bulk) INSERT 처리하기여러 로우를 한 번에 넣는 Bulk Insert도 sqlc에서 지원합니다. copyfrom 기능을 사용하면 대량의 데이터를 매우 빠르게 삽입할 수 있습니다.query.sql-- name: CreateManyAuthors :copyfromINSERT INTO authors (name, bio)VALUES ($1, $2);:copyfrom을 붙이면 Go 코드에서 해당 구조체의 슬라이스(배열)를 인자로 받을 수 있게 생성됩니다. (PostgreSQL 등에서 효율적인 COPY 명령어로 동작합니다.)2. 복잡한 SQL 결과물 커스텀 타입 매핑 (sqlc.embed)두 개 이상의 테이블을 JOIN할 때, 중복되는 컬럼명(id, created_at 등)이 있으면..
-
golang sqlc (1)Go lang 실습 2026. 6. 21. 22:28
sqlc의 장점오타 및 타입 에러 방지: SQL에 오타가 있거나, 매핑되는 DB 타입이 다르면 sqlc generate 단계나 Go 컴파일 단계에서 에러를 잡아줍니다.압도적인 성능: 내부적으로 리플렉션(Reflection)을 사용하는 일반적인 ORM과 달리, 순수 Go 표준 라이브러리(database/sql) 기반 코드를 짜주기 때문에 순수 SQL을 쓰는 것과 속도가 똑같습니다.SQL 중심: 복잡한 Join이나 서브쿼리 때문에 ORM 문법을 따로 공부할 필요 없이, 원래 알고 있는 SQL을 그대로 쓰면 됩니다.sqlc 개발 흐름 (3단계)1. 스키마(DDL) 및 SQL 쿼리 작성 ⬇ 2. `sqlc generate` 명령어 실행 ⬇ 3. 자동 생성된 컴파일 타임 안전한 Go 코드 사용1. 설치하기macO..