전체 글

행복한띠용이의 코딩 블로그입니다.
·Programming/Coding
실제 졸업 프로젝트에서도 MSA 관련 프로젝트를 진행했었고, 다수의 컨퍼런스, 테크톡에서 흔히 찾아볼 수 있는 주제가 MSA 이다. 새로운 개인 프로젝트를 MSA 구조를 사용해보려 하다가 좋은 영상이 있어 정리하고자 한다.API Gateway Framework 나를 포함해 대부분이 API Gateway 라고 여길만한 구조이다. 하나의 엔드포인트를 가지며 게이트웨이에서 다양한 마이크로서비스에 접근하는 것처럼 보인다. 하지만 안타깝게도 해당 구조는 API Gateway Pattern 이라 말할 수 없다. API Gateway Pattern 정의마이크로서비스 패턴 책에 나오는 예시는 위와 같다.앞선 그림과 차이점이 무엇일까??가장 쉽게 찾아볼 수 있는 것은 호출 메서드의 차이이다. 위에서는 클라이언트가 마이..
·etc/Review
예선은 7월 8일(월)부터 7월 19일(금)까지 주말을 제외한 평일 오전 10시부터 자정까지 진행되었다.이 기간 동안 소프티어 부트캠프를 병행하고 있었기 때문에 2주간 평일에 한 문제씩 문제를 풀었다.  6일차까지는 블로그에도 포스팅도 해놨다.   예선 중에는 위와 같은 이슈도 있었다..    실제 본선은 10문항을 푼 전원을 대상으로 이루어졌다.  나 역시 10문항을 모두 풀었기에 본선 대상자로 한 번 다녀와봤다.   장소는 성수동 앨리스 LAB. 다녀와본적은 없지만 IT 동아리들이나 해커톤할 때 자주 사용되는 장소인 것 같다 총 4문제가 나왔고, 나에게는 다 어려웠다. 하지만 이번 대회의 취지 자체가 나 처럼 PS 에 진심이지 않더라도 본선까지 올라와서 문제를 풀어볼 수 있는 것이라 나에게는 매우 좋..
·Programming/Spring
개발 방향성현재 t3.small 인스턴스를 사용하여 서버를 배포하고 있다. 현 서비스는 이벤트 서비스로 선착순 당첨 이벤트가 포함되어있다. 또한 사용하는 EC2 는 외부적인 요인으로 t3.small 을 사용 중이다.인스턴스 사양의 한계로, 가장 간단한 API 에 대해 최대 RPS 700 정도를 가진다.이를 높이기 위한 방법으로는 두 가지 방법을 고려할 수 있다.Scale OutScale UpScale Out 같은 경우, t3.small 인스턴스를 사용하고 있는 상황에서는 Scale Out 이 아닌 Scale Up 이 적용되어야할 상황이라 생각한다. 또한 트래픽이 몰리는 시간대가 정해져 있기에 Scale Out 할 시점이 정해져 있지만, 해당 시간이 너무나도 짧으며 Scale Out 에 사용되는 비용이 과..
·Programming/Spring
개요랭킹 서비스를 구현하기 위해 DB 와 Redis 를 사용한 로직 중 선택하고자 한다. 이를 위해 두 로직의 성능을 테스트할 예정이며, 테스트할 API 는 아래와 같다.성능 테스트는 Locust 를 사용하였으며, EC2 는 모두 t3.small 인스턴스를 사용하였다.테스트 API 종류상위 20명 랭킹 조회특정 인원 게임 점수 갱신API 로직DB 사용 로직랭킹 조회EventUsers 테이블에 GameScore 필드로 Index 가 생성되어있다.SELECT (...) FROM EventUsers ORDER BY game_score DESC LIMIT 20해당 쿼리는 20 개의 row 만 검사하기에 매우 빠른 실행 속도를 가진다.게임 점수 갱신EventUser 테이블의 특정 row 의 GameScore 를 ..
·Programming/Coding
CI/CD 과정은 총 7 단계로 이루어져 있다.(현재 레포지터리 기준) User 가 Master(Main) Branch 에 Pull Request 발생시킨다.Github 는 Pull Request 를 기준으로 Github Actions 를 실행시킨다.Github Actions 내부에서 CI 과정이 진행되며, Build 결과 파일 (Jar) 이 생성된다.Github Actions 는 S3 에 해당 파일을 업로드한다.Github Actions 가 CodeDeploy 에 Deployment 를 생성한다.CodeDeploy 는 S3 로 부터 빌드 파일을 가져온다.CodeDeploy 가 Ec2 에 해당 빌드 파일을 전달하며 스크립트를 실행시킨다.Github Actions, AWS 를 사용한 전형적인 CI/CD 과..
행복한띠용이
행복한띠용이의 코딩