Wecode(46)
-
TIL55 | Docker 주요 명령어와 Dockfile
1. 설치 우분투에서 도커 설치하기 sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce 2. docker를 실행하기 위해 필요한 명령어 :: 컨테..
2021.12.03 -
TIL54 | Docker란
가상화? 가상화 개념이 나온 이유 현대의 컴퓨터는 많은 발전을 거듭해 성능이 좋아졌다. 현대의 컴퓨터에 한가지 일만 시키기에는 남는 자원이 아깝다. 서버를 늘릴 때 마다 서버에 비용투자를 하기에는 부담이 크다. 완전히 격리된 환경을 제공하기 위해서 Docker와 기존 가상화의 차이점 VMs AWS의 EC2 OS위에 guest OS를 띄우는 방식 시간이 오래걸리고 무거움 (부하가 많이 걸린다.) 하이퍼바이저와 같은 지나친 간섭의 유무 Linux Container MSA : 서비스를 micro 단위로 나누는 것 하나의 서버에 user, products, 등등 모든 API를 두면 product의 트래픽이 증가했을 때 다른 API에도 영향을 줄 수 있다. Docker engine이 컨테이너(프로세스)를 띄워줌 ..
2021.12.03 -
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