Skip to content

BAEKER 의 API Gateway 소스코드 저장소 입니다. ✏️ BAEKER 서버의 소개와 wiki 를 확인할 수 있습니다.

Notifications You must be signed in to change notification settings

BAEKER-230522/Gateway

Repository files navigation

bk - info


- 개요 -
BAEKER 는 취업 준비 중인 상황에서 시작된 프로젝트입니다.

소득이 없는 상황에서 진행된 프로젝트인 만큼 비용 문제를 무시할 수 없었고
과금이 발생되지 않는 방향으로 개발이 진행되었습니다.

BAEKER 는 처음부터 MSA 로 개발되지 않았습니다.
백엔드 개발자 2명이 SSR 방식의 모놀리식 아키택처로 시작되어
다양한 시행착오 해결과 더 나은 서비스를 구현하기 위해
고난과 역경을 견디며 지금의 형태가 되었습니다.



- 서비스 중 -
1. Gateway Server

- 서비스 종료 -

기술 스택

bk skill


마이크로 서버 관계도

🔗 Member server ERD

🔗 Study server ERD

🔗 Community server Data model

스크린샷 2023-10-13 오후 2 25 49

MSA

bk-msa


핵사고날 아키텍처

hex


Test case 아키텍처

test


트러블 슈팅

01 서론


02 민감정보 관리와 CI / CD

  • 어떻게 공개되면 안되는 민감 정보를 보호했는가?
  • CI / CD 를 적용할 때 어떻게 환경변수를 전달했는가

03 Solved 서버의 분리

  • 모놀리식 아키텍처 내의 도메인중 하나인 Solved 를 왜 분리하게 되었는가?

04 SSR 방식의 모노레포

  • 왜 모노레포로 전환하게 되었는가?
  • 왜 CSR 방식이 아닌 SSR 방식을 유지했는가?
  • 어떻게 모노레포를 구축했는가?

05 본격적인 MSA 시작

  • 왜 MSA 로 전환하게 되었는가?
  • 어떻게 MSA 로 구축했는가?

06 GCP 의 GKE 로 정착 그리고 Solved 서버의 분리

  • 왜 EC2 와 NCP 를 계속 사용할 수 없었는가?
  • 왜 GCP 를 선택했는가?
  • 왜 GKE 를 선택했는가?
  • 왜 다시 Solved 서버를 분리했는가?

07 GKE 계정 이동시 세팅의 간소화

  • 왜 주기적으로 Google 계정을 바꿔야 했는가?
  • 어떻게 최소한의 리소스 투입으로 계정을 바꿔 인프라를 세팅했는가?

08 핵사고날 아키텍처로 리팩토링 시작

  • 왜 레이어드 아키텍처에서 핵사고날 아키텍처로 리팩토링을 하는가?
  • 어떻게 패키지 구조를 변경했는가?
  • 리팩토링을 할동안 어떤 브랜치 전략을 사용했는가?
  • 테스트는 어떻게 개선했는가?

09 GCP 할당량 초과 문제

  • 할당량이 무엇인가?
  • 왜 할당량 초과 문제가 발생했는가?
  • 어떻게 문제를 해결했는가?

10 마치며


팀원

박우영 최대국
@PARKPARKWOO @choideakook

About

BAEKER 의 API Gateway 소스코드 저장소 입니다. ✏️ BAEKER 서버의 소개와 wiki 를 확인할 수 있습니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •