위코드(44)
-
Amazon Virtual Private Cloud (VPC)
Public subnet Internet Gatewary : Internet과 EC2가 서로 통신이 가능하도록 해주는 것 개발서버는 위의 구성으로 배포하면 안된다. Public subnet이기 때문에 인터넷에서 접근이 가능하지만 개발 서버는 Public으로 설정하면 안됨. => DB같은 중요한 서비스들은 개발자들만 접근가능하도록 해야하기 때문에 프론트엔드 서버는 모든 사용자들이 접근 가능해야하기 때문에 Public subnet으로 설정되어야 한다. subnet : VPC를 좀 더 작은 네트워크 단위로 나눠주는 것(subneting) Public subnet + Private subnet Public subnet에는 Front, Backend API Server(EC2) Private subnet에는 RD..
2021.11.24 -
TIL52 | Unit Test
TODO 면접에 자주 등장하는 TDD(Test Driven Development) 개념 찾아보고 장점, 단점 정리하기 (TDD를 실제 서비스 개발시 적용하기 어려운 이유) 1. Software Testing 사전에 문제가 생기지 않게 방지하는 것 테스트를 하는 이유 결함 확인 사전 방지 시간 절약 구조 개선 품질 개선 확장성 2. Manual Test vs Automation Testing :: Manual Testing 사람이 직접 손으로 하는 것 단점 불안정성 ⬆️ 인력소모 ⬆️ 비용 ⬆️ 테스트 실행 속도 ⬇️ :: Automation Testing 컴퓨터가 직접 하는 것 장점 안정성 ⬆️ 인력소모 ⬇️ 비용 ⬇️ 테스트 실행 속도 ⬆️ 확장성 ⬆️ 3. 시스템 테스트 전략 3가지 1. End-To..
2021.11.20 -
TIL51 | Django ORM 최적화(Lazy Loading, Caching, N+1 Problems)
Lazy Loading(지연 로딩) 필요할 때만 함수를 호출하는 개념 파이썬에서는 generator 함수 Django에서는 QuerySetAPI에서 지연로딩 특징을 가지고 있다. # DB 호출되지 않음. queryset = Publisher.objects.filter(id=20).exclude(id=2).annotate(count=Count('book')) 함수를 호출할 때 DB쪽에 실행되는 것이 아니라, queryset이 평가 될 때 DB를 호출한다. QuerySet이 평가 될 때 == 실제로 db를 호출하는 시점 Slicing, Iteration, repr() print, len(), list(), bool(), ... queryset = Publisher.objects.filter(i..
2021.11.18 -
TIL50 | Git Workflow & Rebase
Git Workflow Git-flow 전략 5가지 종류의 브랜치가 존재한다. 항상 유지되는 메인 브랜치 : master, develop 일정 기간 동안만 유지되는 브랜치 : feature, release, hotfix master : 제품으로 출시될 수 있는 브랜치 develop : 다음 출시 버전을 개발하는 브랜치 feature : 기능을 개발하는 브랜치 release : 이번 출시 버전을 준비하는 브랜치 hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치 📍️ 우아한 형제들 Git-flow 참고하기 Git Rebase Merge 불필요한 merge commit이 생성된다. 모든 feature branch마다 "merge commit"이 남기 때문에 branch history가 지저분해지기..
2021.11.17 -
AWS
Traditional IT server : 요청한 정보를 제공해주는 컴퓨터 server 확장을 하려면 물리적으로 서버 컴퓨터를 사서 확장 / 관리 Data Center : 서버를 모아놓은 공간 (server 가 7000~8000천개씩 모여있는 센터) 회사에서는 Datacenter와 계약해서 서버를 확보하기도 했다. 문제점 Datacenter 렌트 비용을 지불해야 한다. Power supply, cooling, maintenance 비용을 지불해야한다. 새로운 서버를 추가하거나 교체할 대 시간이 많이 소모되고 공수가 많이 든다. 확장하는데 제한사항이 많다. 현재 유지되고 있는 인프라를 24/7 모니터링 할 인원을 고용해야 한다. 천재지변에 대응하기 어렵다. Cloud Computing cloud : 구름 ..
2021.11.17 -
TIL47 | Django Exceptions
자주 사용하는 예외 처리 ObjectDoesNotExist MultipleObjectsReturned KeyError JSONDecodeError ObjectDoesNotExist 🚩️ get() get() 함수를 사용할 때 반환되는 객체가 없으면, Model.DoesNotExist exception을 일으킨다. MultipleObjectsReturned 🚩️ get() get() 함수를 사용할 때 둘 이상의 객체를 반환하면, Model.MultipleObjectsReturned exception이 발생된다. KeyError Dictionary Key가 발견되지 않을 때 exception이 발생된다. JSONDecodeError POST method로 데이터를 생성해야 할 때, request.body 값..
2021.11.10