본문 바로가기

유닛테스트를 작성하는 3가지 접근방법 - Test First VS Test Last VS Test Driven 해당 글은 Unit Testing with Python: Why and When Should You Write Unit Tests? 세션의 요약본입니다 ㅎㅂㅎ. 개발할 때, 테스트 코드를 작성하는 접근 방식은 크게 3가지가 있다. Test Last 개발 다 하고, 오류가 없는지 검증하기 위한 목적으로 회귀 테스트를 작성하는 방식이다. Test Last 방식도 개발 중간에 테스트를 한다. 중간 중간에 수동테스트를 하면서, 기대한대로 코드가 동작하는지 확인한다. 테스트 케이스를 개발 이후, 마지막에 작성하는걸 선호하는 사람들이 많다. 나도 수동테스트를 할 때는, 개발을 다 하고나서 작성하는 편이다. ( 회귀 테스트란? 회귀 테스트는 한 모듈의 수정이 다른 부분에 영향을 끼칠 수도 있다고 생각하여 수정된 모듈..
AWS CodeDeploy와 AWS CodeDeploy Agent (2) - B. CodeDeployAgent B. CodeDeployAgentEC2에 저장된 CodeDeployAgent 로그 위치/var/log/aws/codedeploy-agent EC2에 저장된 CodeDeployAgent 프로그램 파일 위치/opt/codedeploy-agent CodeDeployAgent는 루비로 되어있다. 그래서 CodeDeployAgent를 실행시키려면 루비가 설치되어있어야한다.루비는 인터프리터 언어여서, 별도의 빌드작업이 필요하지 않다. CodeDeployAgent 소스코드 변경하고 싶으면, 저 위치에 있는 소스코드 수정 후, code deploy agent를 재가동해주면 된다. 배포된 프로젝트 파일이 저장되는 곳/opt/codedeploy-agent/deployment-root/{배포-애플리케이션-식별자}/{배포-유..
AWS CodeDeploy와 AWS CodeDeploy Agent (1) - 1. CodeDeploy 요즘 AWS CodeDeploy Agent 오픈소스 커미터되기 스터디를 하고 있다. AWS CodeDeploy Agent 코드를 분석하면서 알게 된 내용들을 틈틈이 정리해보고자 한다 👩‍🎓 1. CodeDeploy CodeDeploy의 기본적인 구동 방식 ( 참고 링크 ) 1. AWS CodeDeploy Agent 코드를 다운받아서, AWS EC2에 실행시켜두기 2. AWS CodeDeploy 에서 배포하기 3. AWS CodeDeploy에서 배포되었다는걸, Agent가 감지하면 코드를 EC2에 복사시켜준다. EC2에 CodeDeploy 세팅하는 방법 https://jojoldu.tistory.com/281 CodeDeploy에서 배포할 코드를 가져오는 방법 1. S3에 배포할 파일 압축해서 올려두기 압..
(Django) Django로 e-commerce 개발할 때 참고하기 좋은 오픈소스 e-commerce Django 오픈소스 shuup django-rest-framework를 사용하고 있다면 강력추천한다. 가장 현실적이고, 참고하기 좋은 오픈소스다 ! https://github.com/shuup/shuup https://github.com/shuup/shuup-project-template saleor 가이드문서 - https://docs.getsaleor.com/en/latest/gettingstarted/installation-macos.html 데모 사이트 - https://demo.getsaleor.com/en/ django-oscar 메인 github - https://github.com/django-oscar/django-oscar/ 데모 사이트 - https://lates..
제럴드 와인버그 <Quality Software Book : How Software Is Built > - 9장 요약 Chapter 9: Why It's Always Hard to Steer9.2.2 The history of software engineeringThe Size/Complexity Dynamic 은 문제의 크기가 커질수록 복잡도가 제곱으로 높아지는 문제 유형을 말한다.소프트웨어 역사를 보면, 성공하는 경험을 할 수록, 조직은 점점 더 어려운 문제를 찾고, 도전해왔다. 그러면서 소프트웨어가 발전해왔다. 위의 그림은 소프트웨어 개발에 대한 effect diagram이다.소프트웨어 조직이 성공을 경험하면 -> 도전적인 과제를 찾아서 -> 문제의 크기가 커져서 -> 솔루션의 복잡도가 높아진다.문제의 난이도가 높아지면, 처음에는 개발자수를 늘리고, 고급인력을 채용하면서 리니어하게 문제를 해결할 수 있다. 그런데 ..
(Pytest) mongoengine + factoryboy 조합으로 사용할 때, 데이터 리셋시키기 mongoengine + factory boy 조합 문제점 원래 factoryboy를 쓰면, 테스트 데이터가 롤백된다. 그런데 mongoengine을 factory boy로 매핑해서 사용하면, 데이터가 롤백되지 않는다. mongo에 테스트 데이터가 계속 쌓인다. 해결방법 테스트코드가 돌때마다 몽고 디비를 drop 시키면 된다. ( 이렇게하면 몹시 느리다 ㅋ ) A. 몽고 DB Drop fixture 만들기 ### FILE: fixtures.py import pytest import mongoengine as me @pytest.fixture(scope=’function’) def mongo(request): db = me.connect(‘testdb’, host=’mongodb://localhost’) ..
(Draw.io) 온라인 다이어그램 툴 https://www.draw.io/여기 들어가서 그리면 된다 ㅎㅅㅎ XML으로 저장해두고, 나중에 재수정해서 쓸 수도 있다. 요런식으로 그려다가 쓰면 된다 ㅎㅅㅎ
(ElasticSearch) 엘라스틱서치에 데이터 싱크하기 ( 4 ) - 안티패턴과 멱등성 관리 이 글은 [elastic] Keeping Elasticsearch in Sync 문서를 정리한 글 입니다 ㅎㅅㅎ 엘라스틱서치에 원본 데이터를 싱크할 때, 주의해야하는 점이 있다. Why Marking Source Records is an Anti-Pattern엘라스틱서치 인덱싱 필요 여부를 체크하는 방법 중, 원본 테이블에 필드를 하나 추가하는 방법이 있다. 그런데 이건 안티패턴이다. 하면 안된다. 안티패턴인 이유 1. 엘라스틱서치 데이터 복제와 원본 데이터 간의 커플링이 높아진다. 그러면 유지보수가 어렵다. - 장애로 실제 인덱싱 여부와 원본 데이터에 저장된 인덱싱 여부가 달라질 수도 있다. 2. 전체 테이블을 재인덱싱해야하는 경우, 전체 테이블을 업데이트해줘야한다. UPDATE SET reindex=..