분류 전체보기

최근 회사에서 테스트 관련 최적화 작업을 진행하고 삽질하면서 몇 가지 소소한, 그리고 소중한 팁들을 얻게되었다..! 그 내용들을 정리해볼까 한다. 먼저 엄청 쉬운 팁부터. 테스트하는데 pdb를 써보고 싶어.. VSCode 는 불편해.. vscode 의 기본 테스트 기능에는 pytest 와 통합되어 작동하는 기능이 있다. 테스트의 실행결과를 콘솔 비슷하게 볼 수는 있는데 그 안에서 입력은 불가능 하다. 그래서 만약 pdb 같은걸로 set_trace 를 해서 테스트를 하려면 pytest 명령어를 셸에서 직접 입력해야 한다. 그렇다면 보통 시도하는 접근이 파일명을 옵션으로 줘서 해당 파일을 실행하는것인데, 그 안의 하나의 테스트만을 실행하고 싶다면 -k 옵션을 활용해 볼 수 있겠다. pytest -vv "파일..
요즘 즐겁게 TDD 를 하며 Django 개발을 하는 중이다. 코드짜는게 너무 편하고 즐거워졌다! 그런데 mocking 을 하려는데 몇가지 문제가 생겨서 정리해보고자 한다. 결론부터 말하자면, 파이썬에서 namespace 로 import 해야하는 함수에 대한 mocking 은 불가능하다고 보는것이 맞아보인다..! 다음과 같은 구조로 프로젝트가 되어있다고 해보자. 프로젝트 루트에는 hello.py 가, hello/world/ 에는 amazing.py 가 있다. 다음은 hello/world/amazing.py 의 내용이다. def printer(): print("hello world") 그리고 다음은 hello.py 의 내용이다. from hello.world.amazing import printer pri..
김연규라는 사람 기억은 흐릿하지만 유치원때, 초등학교때의 저는 참 이상한 사람이었을거에요. 컴퓨터 게임하길 좋아하는 평범한 잼민이 학생의 면도 있었지만, 뭔가 항상 어색하게 행동한다거나, 친하게 어울려 지내지 못한다거나, 혼자 무언가에 빠져서 자기 하고픈 이야기만하는 그런 사람이었어요. 아마 그때는 크레이지아케이드, 마이크로소프트, 빌게이츠 같은것들에 빠져있었을거에요. 그리고 처음으로 여자친구가 생긴 그때에는 여자친구한테 엄청 빠져있었던 기억도 나요. 그때의 친구들에게 물어보면, 정말 많이 좋아하는걸로 보였대요. 그때는 페이스북보다는 카카오스토리를 썼는데, 제 스토리에는 여자친구 얘기가 주를 이뤘던거같아요. 누군가는 오글거린다고도 하고, 누군가는 저를 이상한 눈으로 쳐다보면서 멀리하기도 했었던 기억이나요..
Github Action이 털렸다 Github Action이 뭔데? 깃허브에는 Github Action 이라는 기능이 있습니다. Test, 빌드, CI/CD 구축, 작업 실행 예약 등 다용도로 사용 할 수 있는 좋은 도구입니다. Features • GitHub Actions Easily build, package, release, update, and deploy your project in any language—on GitHub or any external system—without having to run code yourself. github.com 저장소의 .github/workflows 에 yaml 로 된 파일을 업로드하면, 해당 파일의 규칙에 따라 그 안에서 정의된 작업들을 실행시켜주는 고마..
서론 최근 저는 MSA를 공부중입니다. 각 마이크로서비스에 go, 특히 gin을 사용해서 개발하는것을 선호합니다. 그 이유는 다음과 같습니다. golang 너무 재밌음 컴파일 언어여서 바이너리 하나만 배포하면 됨 grpc 를 활용하기 용이함 최근 자주 사용하는 DB인 PostgreSQL과 gin을 활용하는 템플릿을 구성했습니다. 이 템플릿을 구성하며 Docker 이미지 최적화를 했습니다. 그 과정에서 Docker 이미지 크기를 99.2%나 줄이게 되었습니다. 다시 원래의 사이즈로 돌리면 무려 12921%가 증가합니다. (떡상) Docker 이미지의 사이즈를 줄이면 다음의 장점이 있습니다. 컨테이너 레지스트리(컨테이너 이미지 저장소)의 용량 절감 배포 프로세스의 소요시간 감소 실제 예제를 보시려면 http..
배포를 하자..! 지난 게시글에서 스위스 장인의 시계 처럼, 장인 정신으로 한땀 한땀 배포를 해야하는 프로세스를 만들었다고 말씀드렸습니다. inssa.club 을 사용하시면, 제 손땀 하나하나가 묻어나오는 패킷을 받으실 수 있었던 거죠... Watchfinder & Co./YouTube 개소리는 그만! 말도 안되는 소리는 여기까지만 하고, 지금 구축된 CI/CD 상황을 정리하자면 다음과 같습니다. 현재 상황 docker-stack을 활용해서, ec2위의 docker service들은 정의 / 실행 되고 있어요 각각의 서비스 (waitlist / clubhouse-profile)의 master에 push가 진행되면 다음의 작업들이 진행됩니다 테스트 코드 실행 도커 이미지 빌드 ghcr.io 에 업로드 de..
최근 친구와 시작한 사이드 프로젝트가 있습니다. 클럽하우스 프로필을 웹에서 조회 할 수 있도록 하는 프로젝트입니다. 개인적으로 이 프로젝트를 통해 처음 써본 기술이나 개념들이 많아서, 수동으로 배포를 마친 지금, 조금 뿌듯해서 어떤 기술을 썼는지, 왜 썼는지 적어보려고 합니다. 프로젝트 소개 프로젝트의 주소는 https://inssa.club 입니다. 다시 한번 설명하자면, 클럽하우스 프로필을 웹에서 조회 할 수 있도록 하는 프로젝트 입니다. 그래서 당신. 무슨 약을 하셨길래 22시간을 코딩한거야..? 당연히 22시간 연속으로 개발한 것은 아니고, wakatime에 찍힌 1일 코딩 시간 중 최장 시간을 기록한 날과 2위로 길게 코딩 한 날을 합쳐서 22시간이라고 했습니다. 먼저 인증부터 하겠습니다. 10..
기분 좋게 docker swarm으로 배포를 하려고 하는데, 문제가 발생했다. WAS 의 한 환경변수가 등록이 안되는것이었다! 그래서 두시간동안 삽질을 했다. 참고하길 바라며 글을 남긴다. 1. Docker Stack 에서는 .env를 지원하지 않는다. Docker Stack 에서는 .env를 지원하지 않는다. 그러니까, 우리가 흔히 하는 다음과 같은 사용이 되지 않는다는 것이다. ports: - "${PORTS}:8000" 그렇다. 만약 이런 상태로 실행하게 된다면, 해당 부분은 그냥 빈것으로 처리되어 실행된다. 그렇다면 어떻게 해야 할까? 답은 env_file 이다. 서비스 안에 env_file을 정의함으로써 .env 파일을 사용 할 수 있는데, 이는 다음과 같이 사용하면 된다. services: w..
mengmotaYeonGyu
'분류 전체보기' 카테고리의 글 목록 (4 Page)