DIP
1. DIP 적용 전 2. DIP 적용 후 3. 효과 order_food 모듈을 테스트하기 훨씬 쉽다 order_food는 KakaoPayHander에 의존하게 됐다 (실제 카카오페이와 결제를 처리하는 저수준 로직은 ) KakaoPayHander에 의존하고 있다.
출처: Dependency Injection in Python 1. 상황 설명 입력한 텍스트를 보여주는 윈도우 창 클래스를 설계해야 한다. 2. 초기 설계 ` 3. 문제점 텍스트를 나타내는 창과 텍스트 로직이 Window클래스에 강하게 결합되어 있다. 디커
AAS
30분 마다, 중의적인 표현, cron
최적값을 찾는다는 것 모회사 CTO 분께 서버 스케일 아웃 조건에 대해서 물어본 적이 있다. 솔루션을 빨리 찾고 싶은 마음에서 그랬나보다. 어쨌든 돌아온 답변은 "회사 상황에 맞게 찾아가야 한다" 였다. 우문현답이었다. 그 알림톡은 왜 발송이 안됐을까 timeout이 명시되어 있지 않은 상태에서 개선되고 있었다. 참고로 timeout 설정을 하지 않거...
stream
logging 모듈
Logging to Files, Setting Levels, and Formatting
creating Auto Scaling group failed Reason: API: autoscaling:CreateAutoScalingGroup This action has been administratively disabled. 표면적인 1차 에러 메시지는 아래와 같았다. Deployment completed, but with errors: Fail...
Failed to terminate an instance: This action has been administratively disabled.
CloudTrail
AWS Support - Business
📚 해커와 화가 p.120 "비아웹은 단 3명이 개발했었다. 우리는 회사가 팔리기 원했는데, 단지 3명으로 이루어진 회사에 많은 비용을 지불할 투자자가 있을 리는 없으므로 나는 계속해서 더 많은 사람을 고용해야 한다는 압박을 느끼고 있었다. (해결책으로 우리는 실제로 더 많은 사람을 고용했는데, 그들이 할 일을 찾기 위해서 새로운 프로젝트에 착수해야 했...
📚 해커와 화가 p.p 42 ~ 43 "하지만 해커에게는 이와 같은 딱지가 문제를 일으킨다. 그들이 수행하는 일이 과학이라고 불린다면, 그들의 행동 역시 과학적이어야 한다는 부담감이 생기기 때문이다. 그래서 대학과 연구소에서 일하는 해커들은 아름다운 소프트웨어를 설계하는 것처럼 진심으로 원하는 일에 몰두하는 대신, 연구 논문 같은 것을 작성해야 한다고 ...
📚 해커와 화가 p.55 "이와 마찬가지로 위대한 소프트웨어는 아름다움을 향해서 뜨겁게 타올라야 한다. 좋은 소프트웨어의 내부를 들여다보면 아무도 들여다볼 것이라고 생각되지 않는 곳조차 아름답다는 사실을 알게 될 것이다. 코딩을 할 때마다 매일 똑같은 일을 되풀이해야 한다면 마치 병에 걸린 것 같은 기분이 들 것이다. 또 형편없이 정렬(인덴트)되었거나 ...
파이프라인
문제 프로덕션 환경에서의 Elasticache(Redis) 문제로 외부 메시지 발송 작업이 작동되지 않았다. 진단 AWS 공식문서를 보면 아래와 같이 조치하라고 하고 있다. 메모리, CPU 상태를 점검해 봤다. 메모리 사용률 🥺 와우...... CPU 사용률 튀는 값이 보이지만, 10%에 불과하다. 캐시 적중률 ![]
로컬에서 개발 완료됐고 깃헙 오리진 브랜치에서 머지된 경우, 오리진의 브랜치를 제거할 필요가 있다. 수동으로 제거하는 방법보단, 깃헙 설정에서 자동으로 이를 적용하는 것이 좋다.
AWS의 정의 Build and run applications without thinking about servers Google Cloud 정의 Develop and deploy highly scalable applications and functions on a fully managed serverless platform. Our serverles...
https://stackoverflow.com/questions/17803829/how-to-customize-a-requirements-txt-for-multiple-environments
가상환경에 black 패키지를 설치하고 settings.json을 조작해봐도 자동 포맷팅이 적용되지 않았다. 수동으로 `black 모듈명.py` 를 하면 잘 작동하는데, on save마다 black 이 자동 적용이 안될까. vscode에서 제공하는 익스텐션으로 해결하기로 했다. 1. black 패키지 삭제하기 2. 익스텐션 설치 vscode IDE...
터미널에서 code . 사용하려면
1. 멀티 스테이지 빌드 적용 1) 적용 전 2) 적용 후 3) 결과 이미지 크기에 차이가 없었다.
ECR에 저장된 이미지에 tag에 버전정보와 버전 이름을 기입하지 않아 도커허브에서 어떤 이미지를 pull 받았는지 알 수 없었다. inspect 활용하기 >(생략)sha256:751457e90487d629c51edac28817ce05687251f56d8babb7e148c0253494af7d 위와 같이 도커 이미지의 ID를 찾았다. 이제 버전 정보를...
전 후
도커 이미지 옵트인 빌드 엔진인다. 특히, 여러 도커파일 내 멀티 스테이지 빌드가 진행될 때 , 병렬 빌드를 지원하여 도커 이미지 빌드 속도가 개선된다. 또한, COPY --chmod 와 같은 도커파일 명령어를 지원한다. 즉, 레이어 수가 줄어 도커 이미지 사이즈 감소 효과가 있다. 기본적으로 도커 데스크탑에서 buildkit은 활성화 되어 있다. 즉...
빈스톡 배포 에러 .sh 파일 수정 activatedockerbuildkit.sh 수정 파일
경로 : 프로젝트 루트 디렉터리에 .platform/hooks/prebuild/ 생성 파일 : activatedockerbuildkit.sh 생성
git switch
ELB 4XX 또는 ELB 5XX 접두사 ELB로 시작하는 모든 것들은 로드밸러서로부터의 응답이다. 우리가 익히 아는 HTTP 응답 에러(400, 401, 403, 405, 408, 413, 414, 460, …500, 501, 502, 503, 504, …)모두 로드밸런서에 의해 발생한다. 로드밸런서는 클라이언트에 위 HTTP 응답을 리턴하고, 해당...
멀티스테이지 빌드
--preload 추가 출처 : https://18vs1004.tistory.com/11
redis 환경키 수정 변경 전 변경 후 최종
코드(애플리케이션) 레벨에서 막는건지, 미들웨어 단계에서 막는건지 이해할 필요가 있다. https://stackoverflow.com/questions/38529424/django-forbidden-csrf-cookie-not-set
클린 코드, 포매팅, PEP-8
--force-with-lease
유닛 테스트
pyproject.toml