Soma 7

[ECS->EC2] 1. GitHub Organization 레포를 개인 계정으로 복제

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 기록을 그대로..

Soma 2025.02.23

ECR를 사용해서 EC2에 Spring server 배포하기

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 사양에서 ..

Soma 2024.12.23

EC2 생성과 연결

기존 구조는 MAS 구조로 아래와 같았다. 백엔드 서버만 총 6개로 스프링 서버 4개, FastApi 서버 2개로 이루어졌다.하지만 이제 프리티어 계정만으로 축소해서 배포해야한다! 그래서 아래와 같이 게이트웨이 서버를 없애고 스프링 서버는 하나로 통합하고, FastApi 서버는 2개뿐이라서 하나의 EC2로도 충분히 돌아갈 것 같아서 냅두기로 했다. 구조를 못 살리는 것이 아쉽워서 서버를 유지한 채 AWS 계정을 여러 개 만들어서 EC2에 배포하기로 변경했다. Docker로 EC2에 배포하기제일 먼저 FastApi 서버를 EC2에 배포하기로 했다. 코드는 변경할 것이 거의 없었다. 초반에 잘못 설정한 포트 번호만 8001 -> 8000으로 바꿔주고, 8000 -> 8001로 바꿔줬다. EC2에서 도커 이미..

Soma 2024.12.23

pytest.fixture를 이용한 테스트

클래스내에 있는 함수를 테스트하기로 했다. 이때 고민된 것은 테스트 함수를 실행할 때마다 클래스 인스턴스를 만드는 것이었다.테스트 하려는 클래스는 생성자될 때 파싱해야 할 노드를 인자로 받는다. 그러면 매 테스트마다 다른 노드를 인자로 클래스를 만들어야 했다 이때 `fixture`를 사용하면 중복 코드를 줄이고 원하는 객체를 제공할 수 있다. 'pytest.fixture' 데코레이터를 작성하면 매 테스트 함수 호출 때마다 데코레이터를 붙인 함수를 실행한다. 이때 DB와 같은 클래스를 정의하거나 사전 준비 코드를 작성하면 테스트 함수마다 작성해야하는 코드 중복을 줄일 수 있다. @pytest.fixturedef call_parser(elem_manager): # CallParser 인스턴스를 생성하는..

Soma 2024.06.14

#1 별찍기 시각화 시도

소마 프로젝트로 코드의 진행과정을 시각화 해주는 서비스를 만들기로 했다!우선 간단한 별찍기 로직을 시각화 먼저 해보기 했다.  목표 코드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..

Soma 2024.05.18

2024년 소프트웨어 마에스트로 15기 합격 후기

지원하기우테코, 싸피 다 떨어지고 막막해서 뭘 해야될지도 몰랐을 때 소마 공고가 딱 올라왔다. 소마는 1학년 때부터 알았던 프로그램이지만 코테 때문에 당최 지원할 엄두도 안나서 지원도 안했다가 이번에 처음 지원해봤다. 서류 기간이 한달이나 돼서 맨날 써야지 써야지..하다가 일주일 전에 썼다. 문항이 2개뿐이라서 금방 썼다! 이때도 내가 반드시 소마가 되고 말겠어..!라는 마음보단 도전 해본다! 마음이였다. 소마 뿐이었지만 선발 단계부터가 무려 3단계라서 우선 1차 합격이나하고 생각하기로 했다. 서류 과정우선 서류로 합격, 불합격을 나누지 않는 것 같다. 그래도 면접 때를 대비해 성심성의껏 써야한다.  1차 코딩 테스트11월부터 본격적인 취준을 하기 시작했는데, 무엇을 해야될지 몰라서 꾸준히 했던 것이 알..

Soma 2024.03.30

2024년 소프트웨어 마에스트로 15기 면접 후기

분위기가 삼엄했다 ㄷㄷ 먼저 1번 참가부터 차례로 포폴 발표를 했다. 타이머는 본인이 맞추고 시작했다. 1번님이 하다가 중간에 프로젝트 창이 안 나타나는 문제가 있었다. 그때는 그냥 넘어가고 면접 후반부에 다시 발표기회를 주어 다시하셨다. 나 나갈 때는 바로 앞에 노트북이 있어서 거의 보면서 발표했다. 눈이 저절로 갔다. 근데 면접관분들도 발표자를 보고 듣는 것을 아니라서 괜찮았던 것 같다. 씩씩하게 하려고 노력했지만 ㅎㅎ 꽤 긴장했다. 그래도 무사히 마쳤었다! 먼저 공통 질문 2개로 모든 지원자에게 물어봤다.첫 번째 공통 질문은 소마에 온 목적이 무엇이고, 예상되는 문제와 그에 따른 해결책은? 이었다.나는 5번째로 답했는데 먼저 소마에 온 목적은 내가 하고 싶은 프로젝트는 제약 없이 하고 싶어서 왔다했..

Soma 2024.03.16