나는 이렇게 학습한다 575

SQLAlchemy를 이용해 csv파일 DB업로드 하는 방법(feat. psql)

CSV 대량의 데이터를 디비에 업로드하기 위해 사용되는 것 중에 하나가 csv파일입니다. csv파일은 데이터들이 콤마로 구분되어진 파일을 뜻하는데 엑셀이나 스프레드 시트 등에서 쉽게 변환시켜 다운로드할 수 있습니다. 오늘은 실습으로 krx 한국거래소에서 제공하는 종목 데이터를 디비에 업로드해보겠습니다. 먼저 krx 한국거래소에서 받은 종목 데이터 파일은 다음과 같습니다. (csv로 다운받을 수 있습니다) # stock.csv 종목코드,종목명,시장구분,소속부,종가,대비,등락률,시가,고가,저가,거래량,거래대금,시가총액,상장주식수 60310,3S,KOSDAQ,중견기업부,3445,15,0.44,3450,3485,3430,61292,211021945,159405362285,46271513 95570,AJ네트웍스,..

pytest _ 하나의 함수에서 복수 케이스 테스트 하는 방법

단일 케이스 테스트 보통 테스트는 단일 케이스로 이루어집니다. 단일 케이스로 테스트를 하면 최소의 단위로 테스트를 진행하기 때문에 코드의 정확도를 높일 수 있고, 보는 이에게도 명확한 케이스 사례를 보여줄 수 있다는 장점이 있습니다. 예를 들어 회원가입 API를 테스트한다고 할 때 케이스를 다음처럼 나눌 수 있습니다. 성공 : 회원가입이 성공했는가? 실패1 : 회원가입 시 이메일이 중복되는가? 실패2 : 회원가입 시 닉네임이 중복되는가? 실패3 : 회원가입 시 패스워드가 유효한가? 하지만 유사한 케이스를 모두 단일 케이스로 테스트할 경우 비슷한 코드가 반복되면서 가독성과 효율이 떨어질 수 있습니다. 위의 케이스 중에서 실패1, 실패2를 살펴보겠습니다. 이 둘은 중복여부에 의한 실패를 확인하는 테스트로 엄..

Refrsh token을 구현하며 느낀 점

리프레시 토큰을 사용하는 이유 리프레시 토큰은 액세스 토큰을 재발급하기 위한 용도로 사용합니다. 간략하게 토큰 로그인 과정을 설명해보겠습니다. 유저의 로그인 상태를 유지하기 위해서 서버는 클라이언트에게 액세스 토큰을 줍니다. 클라이언트는 액세스 토큰을 가지고 서버와 통신을 하며 로그인 상태를 보장받습니다. 서버는 토큰을 따로 저장하지 않고 토큰에 담긴 유저 정보를 decode 하여 확인합니다. 즉, 토큰에 담긴 정보를 통해 해당 유저가 로그인 상태라는 것을 인지할 수 있습니다. 하지만 액세스 토큰은 외부에 노출되기 쉽습니다. 액세스 토큰은 빈번히 사용되고 토큰 안에 유저 정보가 있기 때문에 보안상 매우 취약합니다. 이를 해결하기 위해 서버는 액세스 토큰에 만료기간을 부여하여 만약 토큰이 노출되더라도 그 ..