전체 글 805

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 하여 확인합니다. 즉, 토큰에 담긴 정보를 통해 해당 유저가 로그인 상태라는 것을 인지할 수 있습니다. 하지만 액세스 토큰은 외부에 노출되기 쉽습니다. 액세스 토큰은 빈번히 사용되고 토큰 안에 유저 정보가 있기 때문에 보안상 매우 취약합니다. 이를 해결하기 위해 서버는 액세스 토큰에 만료기간을 부여하여 만약 토큰이 노출되더라도 그 ..

객체지향의 세 가지 관점(도메인, 인터페이스, 구현)

* 이 글은 책을 읽고 주관적인 생각과 함께 요약 정리한 글입니다.설명을 위한 글이 아니므로 내용이 정확하지 않을 수 있습니다. 제목 : 객체지향의 사실과 오해 저자 : 조영호 범위 : 07 함께 모으기 요약 정리 객체지향의 세 가지 관점 개념 관점(Conceptual Perspective) 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발된다. 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다. 명세 관점(Specification Perspective) 도메인을 벗어나 개발자의 영역인 소프트웨어에 집중 객체들의 책임에 초점을 맞추며 객체의 인터페이스를 바라보는 관점이다. 구현 관점(Implementation Perspect..