본문 바로가기

DevOps

[팀Meowro] github branch 관리 전략 안녕하세요, 팀 meowro의 chablis 입니다. meowro 프로젝트 관리를 위한 branch 네이밍 규칙 공유가 필요하여 다음과 같이 관리하게 되었습니다.개발 시작 단계에서 간소화 하여 가져갈 관리 유형만을 정하고, 차후 필요 시 확장하는 것으로 합니다. ✅ 브랜치 유형유형용도main/주 브랜치feature/새로운 기능 개발bugfix/버그 및 개발 중 발생한 문제 수정 ✅ 기능 개발 브랜치의 경우 다음과 같이 표기한다.feature/{이슈번호}-{기능} 예시 -> feature/102-user-profile-edit bugfix/203-login-error-on-mobile 이슈 102번 사용자 프로필 편.. 더보기
Spring Boot 개발 환경을 위한 도커 세팅, 그리고 실전 팁들 🐳 MeowRo 프로젝트에 Docker를 적용해 보고 있는데,Spring Boot + MariaDB + Docker + GitHub Actions로 꽤 탄탄하게 세팅하고 있다.중간중간 마주쳤던 문제들이 꽤 실무에서도 유용할 것 같아서 기록으로 남겨본다.📦 도커 컴포즈, 서비스는 뭘 의미할까?services: meowro-db-dev: meowro-api-dev:처음에 이걸 보고 "하나의 컨테이너 안에 두 서비스가 들어가는 건가?" 싶었는데,그게 아니라 services는 "컨테이너 단위로 실행할 애플리케이션"을 말한다.즉, 이건 컨테이너가 2개 생긴다는 뜻이다.각 서비스 = 하나의 컨테이너.하나의 API, 하나의 DB 이렇게 나눠진다고 보면 된다.⚙️ depends_on, 진짜 의존이 아니더라처음엔 de.. 더보기
🛠 Spring Boot 서버 GitHub Actions 자동 배포 정리 (Self-hosted runner) 실제 운영 중인 리눅스 서버에 GitHub Actions를 사용한 자동 배포를 구축하면서 발생했던 이슈와 해결 방법을 정리합니다.✅ 목표dev 브랜치에 코드 푸시 시, 리눅스 서버에서 Spring Boot 프로젝트 자동 빌드 & 배포Docker + docker-compose 환경에서 실행 중인 API 서버를 자동 재배포📁 서버 디렉토리 구조 (예시)/home/service/┣ meowro/┃ ┣ api/┃ ┃ ┗ dev/┃ ┃ ┣ docker-compose.yml┃ ┃ ┣ Dockerfile┃ ┃ ┣ meowapi-0.0.X.jar ← 최신 버전 자동 복사됨⚙ GitHub Actions 워크플로우 (.github/workflows/deploy-dev.yml)name: Deploy to .. 더보기
MSA로 인증과 회원을 분리하고 JWT 연동 구조 설계하기 길고양이 기록 관리 플랫폼(MeowRo)을 개발하면서, 점점 늘어나는 기능과 사용자 요구에 대응하기 위해 MSA 구조로 전환을 고려하게 되었습니다. 이 글에서는 인증과 회원을 분리하고, JWT 기반 인증 구조를 어떻게 설계하고 연동하는지, 그리고 함께 띄워야 할 서비스들을 무엇으로 구성할지에 대해 정리합니다. ✨ 목표 구조auth-service: 로그인, 로그아웃, JWT 발급 및 검증user-service: 회원 정보 CRUD, 프로필 수정 등meow-service: 고양이 일지, 급식소 등 도메인 기능 (기존 모놀로식에서 유지) 1. 인증과 회원 서비스는 왜 분리해야 할까?이유설명보안 강화인증 로직과 비밀번호는 auth-service에만 존재하게 함책임 분리인증과 회원 기능의 변경 주기가 다름확장.. 더보기
모놀리식에서 MSA로, 우리 서비스의 변화 1. 왜 MSA로 전환했을까?우리 서비스는 처음부터 모놀리식 아키텍처로 개발되었습니다. 모놀리식 구조는 초기 개발과 배포가 빠르다는 장점이 있었지만, 서비스가 성장하면서 몇 가지 문제점이 나타났습니다.🚨 모놀리식의 한계배포와 유지보수의 어려움: 서비스의 한 부분만 수정해도 전체 애플리케이션을 다시 빌드하고 배포해야 했습니다.확장성 문제: 특정 기능(예: 인증 서비스)에 트래픽이 집중될 경우, 전체 애플리케이션의 성능이 저하되었습니다.팀별 독립 개발의 어려움: 모든 팀이 하나의 코드베이스에서 작업해야 했기 때문에, 병목 현상이 발생했습니다.기술 스택 변경의 어려움: 새로운 기술을 적용하려면 전체 애플리케이션을 수정해야 했습니다.이러한 문제를 해결하기 위해 MSA (Microservices Architec.. 더보기