
AWS 비용을 낮추기 위해 ECS에서 EC2로 배포하기로 했다. 프리티어 계정을 이용해야 되기 때문에 서버를 다 올릴려면 최소 AWS 계정 3개는 만들어야 하기에 다소 난관이 예상 된다. 첫 번째 목표는 기존 Repo는 유지한 채, 새로운 Repo를 파는 것이다. 기존 Repo를 건들이기 보다는 아무래도 혼자 하다보니 새로운 Repo를 파기로 했다. GitHub Organization 레포를 개인 계정으로 복제 및 업로드📌 1) Organization 레포를 로컬로 Clonegit clone --bare https://github.com/organization/repo-name.git* --bare 옵션을 사용하면 Git의 메타데이터만 복사되고, 작업 디렉토리는 제외됨.* 기존의 Git 기록을 그대로..

1. ECR이란? amazon Elastic Container Registry(Amazon ECR) 컨테이너 이미지 레지스트리 서비스AWS의 IAM 기반으로 리소스 기반 권한이 있는 개인/ 퍼블릭 저장소 지원 private 저장소와 public 저장소가 존재하는데 권한 부여하는게 더 까다로워 질까봐 public 저장소를 택했다. public ECRAWS 계정마다 public registry가 제공됨 public resitry에 image respository를 만들고 이미지를 저장image respository에 이미지를 푸시하기 전에 AWS 사용자로 public registry에 인증해야함.푸시한 이미지를 개발 시스템에서 로컬로 사용하거나 Amazon ECS 작정 정의 및 Amazon EKS 사양에서 ..

기존 구조는 MAS 구조로 아래와 같았다. 백엔드 서버만 총 6개로 스프링 서버 4개, FastApi 서버 2개로 이루어졌다.하지만 이제 프리티어 계정만으로 축소해서 배포해야한다! 그래서 아래와 같이 게이트웨이 서버를 없애고 스프링 서버는 하나로 통합하고, FastApi 서버는 2개뿐이라서 하나의 EC2로도 충분히 돌아갈 것 같아서 냅두기로 했다. 구조를 못 살리는 것이 아쉽워서 서버를 유지한 채 AWS 계정을 여러 개 만들어서 EC2에 배포하기로 변경했다. Docker로 EC2에 배포하기제일 먼저 FastApi 서버를 EC2에 배포하기로 했다. 코드는 변경할 것이 거의 없었다. 초반에 잘못 설정한 포트 번호만 8001 -> 8000으로 바꿔주고, 8000 -> 8001로 바꿔줬다. EC2에서 도커 이미..
클래스내에 있는 함수를 테스트하기로 했다. 이때 고민된 것은 테스트 함수를 실행할 때마다 클래스 인스턴스를 만드는 것이었다.테스트 하려는 클래스는 생성자될 때 파싱해야 할 노드를 인자로 받는다. 그러면 매 테스트마다 다른 노드를 인자로 클래스를 만들어야 했다 이때 `fixture`를 사용하면 중복 코드를 줄이고 원하는 객체를 제공할 수 있다. 'pytest.fixture' 데코레이터를 작성하면 매 테스트 함수 호출 때마다 데코레이터를 붙인 함수를 실행한다. 이때 DB와 같은 클래스를 정의하거나 사전 준비 코드를 작성하면 테스트 함수마다 작성해야하는 코드 중복을 줄일 수 있다. @pytest.fixturedef call_parser(elem_manager): # CallParser 인스턴스를 생성하는..
소마 프로젝트로 코드의 진행과정을 시각화 해주는 서비스를 만들기로 했다!우선 간단한 별찍기 로직을 시각화 먼저 해보기 했다. 목표 코드a = 8for i in range(a): print('*' * (i+1)) a = 8를 AST 트리로 변환 후 트리 출력하기import ast# 분석할 소스 코드source_code = """a = 8"""# 소스 코드를 AST로 파싱parsed_ast = ast.parse(source_code)# AST 트리를 출력def print_ast(node, level=0): print(' ' * level + ast.dump(node)) for child in ast.iter_child_nodes(node): print_ast(child, le..