본문 바로가기

📝 회고/✅ 22년 회고42

[의사결정, 일일회고] 22.06.15 - "백엔드(Spring) 배포와 아키텍처" 📚 배운 것 백엔드(Spring) 배포 방법 고민 어제는 FE 배포를 하였다. 오늘은 BE를 배포한다. 아직 초기 프로젝트 세팅만 하고 구현 코드는 없지만 CI/CD 자동화 배포를 구축한 뒤 프로젝트 기능이 추가될 때 마다 배포하고 싶어서였다. 제약 사항 - 비용(aws 프리티어) 고민한 배포는 아래와 같다. Case 1 : Docker + Docker hub 도커 이미지를 도커 허브에 올려 사용한다. 이전 프로젝트를 이 방법으로 배포했다. 장점 - 간단하다 - DockerFile만 만들면 끝난다. - Docker 환경이라 배포가 자유롭다. - 이미지 저장소 free 단점 - 무료로 사용하면 배포 이미지가 노출된다. - 단순 EC2 오토 스케일링을 한다면 모든 EC2에 도커가 설치된 뒤 그 위에 올라가.. 2022. 6. 16.
[의사결정, 일일회고] 22.06.14 - "프론트엔드(React) 배포와 아키텍처" 📚 배운 것 프론트엔드(React) 배포 방법 고민 (어제 글을 남겼지만) 코드스쿼드에서의 3주간의 마지막 팀 프로젝트를 시작했다. 이번 프로젝트는 FE(2명)/BE(1명)으로 BE를 담당했다. FE - react / BE - Spring를 사용한다. BE가 FE 웹까지 배포를 담당하기로 했다. React는 SPA(Single Page Application), CSR(Client side rendering)으로 build 하면 정적 파일이 생긴다. 이를 배포하면 되겠다 생각했고 3가지가 떠올랐다. Case 1 : Spring + react 묶어 배포하기 react를 빌드하면 /build 정적 리소스 파일을 spring의 src/main/resources/main/static 에 넣어 배포한다. 장점 한 .. 2022. 6. 15.
[일일회고] 22.06.13 - "AWS Auto Scaling, 코드 스쿼드에서의 마지막 프로젝트 시작" 📚 배운 것 AWS Auto Scaling 호눅스 마스터 클래스에서 AWS의 Auto Scaling을 배웠다. 기억에 남는 내용을 정리하고자 한다. 스케일링의 종류 : 수평, 수직 확장 - 수평 확장 : AWS는 수평 확장만 제공한다. - 수직 확장 : AWS 기본 제공되지 않는다. 하고 싶다면 직접 커스텀하여 CloudWatch 모니터링 스크립트를 작성해 사용할 수 있다. 왜 오토 스케일링이 중요하고 사용할까? IT 회사의 서버 사용은 일정하지 않다. 회사마다 유형이 다르다. 클라우드 이전에는 자원을 효과적으로 사용하지 못했다. AWS 오토 스케일링 이후 사용자는 자유롭게 서버를 늘리고 줄일 수 있다. Auto Scaling 구성 요소와 원리 Auto Scaling는 ELB(탄력적 로드 밸런싱) + C.. 2022. 6. 13.
[일일회고] 22.06.02 - "검증문 실패해도 계속하기, 통합테스트를 위한 더미데이터 세팅, 코드스쿼드 선배 기수와 온라인 만남" 📚 배운 것 AssertJ의 assertAll JUnit5나 AssertJ의 검증 메서드(e.g. assertThat() ..)가 여러 개 있을 때 앞의 하나가 실패하면 뒤의 검증문을 실행하지 않는다. 이를 위해 묶어서 한 번에 실행할 수 있다. 글작성 : 2022.06.02 - [✅ 테스트코드] - JUnit5에서 검증문이 중간에 실패해도 멈추지 않고 검증문 모두 실행하기(AssertAll, AssertJ, SoftAssertions) 통합 테스트의 데이터베이스 테스트, 더미데이터 세팅 통합 테스트를 위한 데이터베이스의 초기값, 더미 데이터를 넣어야 하는 상황이 있었다. 생각해본 세팅 방법은 아래와 같다. 1. java 코드로 직접 data 넣기 (하나씩 넣거나 initDB() 와 같은 마더 클래스로 .. 2022. 6. 2.
[일일회고] 22.05.31 - "Github Actions을 활용한 배포 자동화, 빌드(테스트 통과)에 문제 없었지만 런타임에는 에러가 발생한 문제" 📚 배운 것 배포 자동화와 아키텍처 Airbnb 프로젝트 15일 중 7일 차 진행 중이다. 어제, 오늘은 Github Actions을 활용한 배포 자동화를 하였다. 아키텍처는 아래와 같다. AWS를 활용하였다. VPC을 사용하여 public, private subnet을 구분하여 Web Server와 DB를 구분하였다. 특별한 점으론 DB ec2 네트워크를 private subnet으로 설정하여 외부 User에서 곧바로 접속할 수 없도록 하였다. VPC NAT Gateway를 활용하여 아웃바운드만 허용하였는데 VPC NAT Gateway 비용 문제로 ec2를 활용해 NAT을 직접 구현하거나 잠깐 외부 접속이 필요할 때 Elastic IP를 인터넷 게이트웨이에 잠깐 붙여 통신하는 방법을 사용하였다. 자동화.. 2022. 6. 1.