3월 26일 항해99 실전 프로젝트가 시작됐다. 벌써 시간이 이렇게 지난 게 놀랍다... 나는 서비스팀과, 대용량 트래픽을 경험할 수 있는 챌린팀 사이에서 많은 고민 끝에 챌린지팀을 선택하게 되었다. 쉽진 않을 것 같았지만 새로운 경험을 바탕으로 개발에 대한 시야를 넓히기 위해 선택하게 됐다! 앞으로 어떤 방향으로 프로젝트를 진행하면 좋을지, 생각을 정리하는 느낌으로 글을 작성해 본다.
주제 선정
우리 팀의 주제는 대규모 트래픽이 몰릴 상황을 대비한 '수강 신청' 서비스를 진행하기로 했다. 대규모 트래픽을 가정한 좋은 프로젝트 주제이지 않은가 싶다.
보통 선착순 쿠폰이나 이벤트 등 과 같이 대량의 트래픽이 한 번에 몰리는 상황을 가정하며 이러한 상황일 때 아키텍처는 어떻게 설계할지, 트래픽을 어떻게 분산시킬지 결정하게 된다. 우리는 5명이 한 팀으로, 대용량 트래픽에 관한 아키텍처 설계 경험은 모두 없다! 하지만 모두 실력 있는 분들 이기에 함께 고민하며 프로젝트를 진행하면 어려운 부분들도 잘 이겨낼 수 있지 않을까 싶다!
기술적 의사 결정
기술적 의사 결정이 중요한 것 같다. 어떠한 기술을 선택할 때, 이 기술을 '왜' 선택했는지 설명하고 설득할 수 있어야 한다.선택한 기술을 도입함으로써 어떠한 성능 개선이 있을지, 장점이 무엇인지, 단점이 무엇인지 생각하며 기술을 선택하다 보면 아키텍처를 설계함에 있어서 도움이 될 것 같다. 항상 '왜' 라는 질문을 던지며 기술을 선택하자.
아키텍처 설계
우리는 아직 대규모 트래픽엔 어떠한 아키텍처를 설계해야 하는지 잘 모른다. 초기엔 NoSQL, Auto Scailing, 로드 밸런서 등과 같은 것을 사용하지 않고, 부하 테스트를 진행해 보며 서버가 얼마나 버텨주는지 확인하는 과정이 필요할 것 같다. 추후에 대규모 트래픽을 버틸 수 있도록 하기 위해서 어떤 기술들이 필요할지 팀원들과 상의하며 하나씩 추가해 보는 방식으로 진행하면 좋지 않을까 싶다.
성능 개선에 관한 기록을 남기자
최소한의 기능을 먼저 구현한 후 우리의 서버가 초기에 얼마만큼의 트래픽을 버틸 수 있는지 기록하고, 성능이 개선되어 가는 우리의 프로젝트를 보면 어떤 성능 개선이 있었는지 한눈에 파악하기도 쉽고, 추후에 보면 뿌듯하지 않을까 싶다. 기록을 꼭 남기도록 하자!
팀과 자주 소통하자
혼자서는 해결할 수 없는 일도 팀과 함께라면 이겨낼 수 있다. 자주 소통하며 프로젝트를 진행하는 게 목표다. 힘들 때는 서로 의지하며 프로젝트를 진행하면 좋겠다!
좋았던 점과 부족했던 점
- 좋았던 점
- Github Actions + Docker를 이용한 CI/CD 구축에 성공하여, 개발 생산성을 높일 수 있었다.
2024/03/30 블로그 작성
[CI/CD] Spring boot 프로젝트 Github Actions + Docker를 활용하여 EC2에 배포하기
spring boot 프로젝트를 github actions, docker를 활용하여 EC2에 배포하는 과정을 담았다. AWS EC2 인스턴스 생성(Ubuntu 22.04), EC2에 docker설치, Docker hub 계정이 있다는 가정하에 진행한다. 기존 배포 방법의
hsuzzang.tistory.com
- 부족했던 점
- 실전 프로젝트에 너무 과도한 시간을 투자하여 컨디션 조절을 못 했던 것 같다. 할 땐 하고, 쉴 때는 쉬며 컨디션 조절에 힘쓰자.
- 프로젝트 외에 CS 공부, 알고리즘 공부도 신경 써야 한다. 하루 1시간 정도는 알고리즘 및 CS 공부에 투자하도록 하자.
- 너무 급하게 생각하여 스스로 힘들었던 날이 있었다. 급하게 생각하지 말고 긍정적인 마음으로 천천히 나아가자!