파이썬에 f string이 있습니다. 이 중 {는 replacement field라고 해서 특수한 문자로 취급합니다. 이것을 일반 문자처럼 취급하려면 어떻게 해야하는지 간단하게 알아보고 실습도 해 보겠습니다. 먼저 f string이 아닌 문자열입니다. 앞에 f가 붙지 않았어요. 그러면 {과 } 등은 일반 문자로 취급됩니다. a{b}cde가 출력됨을 알 수 있어요. 그런데, 앞에 f가 붙었어요. 그 안에 {와 }가 있는데요. 이렇게 되면 replace가 되어 버려요. f"a{b}cde"는, {b} 대신에 b의 값이 들어가 버립니다. 그래서, 이 프로그램의 실제 결과는 a3cde가 출력되게 됩니다. 실행 결과는 위와 같습니다. 그러면 f string에서 {와 }를 일반 문자처럼 취급하려면 어떻게 해야 할까요..
코딩 검색 결과
pytest와 pytest-cov를 저는 같이 쓰는 편입니다. report를 할 때 굳이 coverage 측정이 필요 없는 것이 있을 텐데요. 이들을 제외하는 방법을 알아보겠습니다. pytest는 7.2.2, coverage는 7.2.2, pytest-cov는 4.0.0 버전에서 실습하였습니다. 먼저, 프로젝트 request_ex의 구조입니다. pg1 패키지에 a.py가 있고, pg2 패키지에 b.py가 있습니다. 다음에 root에 main.py가 있고, .coveragerc가 있는데요. 이 .coveragerc는 coverage 관련 설정을 적어놓습니다. main.py입니다. pg1.a로부터 feature_a를 import하고, pg2.b로부터 feature_b를 import 했네요. test_a에는,..
어떤 프로그램을 테스트 할 때 pytest를 쓰는 편입니다. 이번 시간에는 print 문으로 출력한 것을 어떻게 콘솔로 볼 수 있는지 알아보겠습니다. 기본적으로 pytest는 capture 옵션을 fd로 받게 되어 있습니다. 이는 문서에도 나와 있는 부분이에요. 1번과 2번 데스크립터에 쓰여지는 내용, 즉 표준 출력과 오류가 모두 캡쳐되는 것이 default입니다. 실험을 하나 해 보겠습니다. 예제 프로그램 1번은 test_feature_a라는 함수를 만들었습니다. 간단하게 "1"을 표준 출력에 출력합니다. 그런데, 1이라는 것은 출력되지 않았습니다. 이는, 문서에 따르면 캡쳐되었기 때문입니다. 이것은 어떨까요? 1.txt에 1이라는 내용을 쓰는 프로그램입니다. 역시 테스트는 성공하였습니다. 1.txt에..
저번 시간에 데이터 베이스 데이터 전체를 백업하고 복원하는 것을 해 보았습니다. 이번 시간에는 dbeaver에서 테이블을 내보내거나 백업을 하고, 다른 데이터베이스에 집어넣거나 복원하는 작업을 해 보도록 하겠습니다. 이런 시나리오를 생각해 보겠습니다. 로그인 한 지 1년이 지난 유저들의 개인 정보를 옮겨야 한다고 해 봅시다. 이 때, 민감한 정보들은 빼고 분리된 데이터 베이스에 옮긴다고 생각해 봅시다. 그런 경우, 휴대폰 번호와 같은 것은 옮겨지면 안 될 겁니다. 암호화를 하던지 해당 필드를 제외하고 보내야 할 것입니다. 이 중 후자의 방법으로 해 봅시다. 사실 이런 건 cron으로 돌려서 application 단에서 하겠지만, 이 글에서는 실습 해 보는 목적으로 진행하겠습니다. 먼저 postgres 데..
최근댓글