Infra
-
Monorepo에서 다른 패키지를 참조하여 빌드할 때 GitHub Actions 작성 방법Infra/Git 2025. 3. 30. 13:10
최근 포스팅에서 여러 project에서 사용할 모듈을 따로 package로 구성하여 개발하는 작업이 끝나 해당 모듈이 필요한 project에 적용하였습니다. Monorepo 구조를 가지는 repo의 project가 build 시 모듈도 같이 build가 되어야 하여 Github Actions에 해당 내용을 추가하게 되었습니다. Github Actions 작성예시를 위해 이전에 작성했던 CI/CD 관련 포스팅에서 예제를 가져오겠습니다.name: on: push: branches: - jobs: run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 ..
-
Monorepo vs MultirepoInfra/Architecture 2025. 1. 20. 22:12
현재 회사에서 운영중인 여러 서비스를 과거에 monorepo로 구성하며 겪은 과정과 내용을 정리하게 되었습니다. 서비스 운영시 repository 관리에 참고하면 좋을것 같습니다. Monorepo vs Multirepo개발 시 여러 모듈 또는 서비스를 하나의 repository에서 관리할 것인지 여러 repository에서 관리할 것인지에 따라 monorepo와 multirepo로 나누어집니다. MonorepoMonorepo 방식은 하나의 repository에서 두 개 이상의 모듈 또는 서비스를 개발 및 관리하는 방식입니다. 각각의 모듈과 서비스를 구성하는 package는 서로 의존성을 가지며 구성됩니다. 따라서 package들끼리 의존성을 가지지 않으면 monorepo라고 하긴 어렵습니다. Monore..
-
Git Repository copyInfra/Git 2024. 12. 8. 14:56
monorepo로 구성되어 있던 특정 package를 분리하기 위해 repositroy의 형상을 다른 repositroy로 이관하는 작업을 하게 되었습니다. 기존 repositroy의 commit 이력과 브랜치들도 다 같이 옮겨가는 니즈가 있어 해당 작업 내용을 남기게 되었습니다. Git clone mirror option기존 repositroy의 commit 이력과 브랜치들도 복사하기 위해 git clone mirror option을 사용합니다. Git clone mirror vs baregit clone에는 mirror와 bare option이 있습니다. mirror option은 기본적으로 bare option을 포함하고 있으며 bare option 과는 달리 기존 repositroy의 local ..
-
GitHub Actions Auto taggingInfra/Git 2024. 11. 17. 14:40
서비스를 운영하며 배포 시 Release와 Tag를 직접 만들었습니다. 매번 Release와 Tag를 수동으로 생성하다 보니 불편함을 느끼게 되었고 이를 자동화하기 위해 GitHub Actions를 활용해 보았습니다. GitHub Actions workflow 작성운영 중인 서비스의 구조는 monorepo 구조로 하나의 repository에서 3개의 서비스를 운영 중입니다. 해당 구조에 맞게 자동으로 Release와 Tag를 각각 생성을 해야 되므로 아래와 같은 조건이 필요했습니다.1. 각 서비스 배포 시 사용하기 위해 재사용이 가능2. commit message를 통해 versioning (but commit message에 version에 대한 내용이 없더라도 동작) 3. 배포 완료 시 Release..
-
GitHub 2FA(2단계 인증) 설정Infra/Git 2024. 7. 28. 15:15
사내에서 형상관리를 위해 GitHub을 사용 중인데 보안 이슈로 GitHub 2FA을 설정하게 되었습니다. 설정하면서 해당 내용을 간단히 정리하게 되었습니다. 2FA?2FA(2단계 인증)은 기존 비밀번호로 인증하는 방식 외에 다른 방식을 추가로 인증하여 접근하는 방식으로 GitHub에서는 23년 이후로 사용자들에게 2FA 설정을 권고하고 있습니다. GitHub의 경우 모바일 디바이스의 애플리케이션에서 생성하거나 문자 메시지(SMS)로 전송되는 코드를 이용하여 2FA 인증 형식을 사용합니다. 설정 순서GitHub에 로그인후 계정 Settings 메뉴에서 Password and authentication 메뉴로 들어갑니다. 해당 메뉴에서 2FA 항목에서 Enable two-factor authenticati..
-
AWS Lambda로 SPA SEO 설정하기Infra/AWS 2024. 6. 23. 17:05
현재 AWS S3와 CloudFront로 구성된 Serverless 인프라로 올라간 SPA에 SEO의 정보가 담긴 데이터를 가져와 적용하는 작업을 맡게 되었습니다. 람다 함수로 어떻게 SPA에 SEO를 적용했는지 팀 내부에 공유를 위해 문서 작성 겸 포스팅하게 되었습니다. AWS Lambda?AWS Lambda는 Serverless computing service로 별도의 서버 구성 및 관리의 필요성 없이 실행 시킬 코드를 람다 함수로 구성하여 필요할 때 함수를 실행시키는 서비스입니다. Lambda를 통해 따로 서버를 띄우지 않고 필요할 때만 함수를 실행시켜 사용한 컴퓨팅 시간만큼만 비용이 차징 되기 때문에 함수가 실행되지 않을 때는 차징 되지 않습니다. 작업 플로우변경할 SEO의 정보를 API를 통해..
-
AWS Serverless 인프라 및 GitHub Actions CI/CD 구축Infra/AWS 2024. 5. 11. 22:27
FE 개발 배포 시 따로 웹서버를 띄우지 않고 인프라에 대한 관리 리소스를 줄이기 위해 serverless 인프라 구축을 하여 사용 중입니다. 이번에 개발팀 내에 공유하는 자리와 가이드 역할을 맡게 되어 해당 내용을 정리하게 되었습니다. 인프라 구성도 기술 스텍사용하는 기술 스텍을 간단하게 알아보고 인프라 구축 내용으로 넘어가도록 하겠습니다.AWS S3Amazon S3는 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스객체는 해당 파일을 설명하는 모든 메타데이터버킷은 객체에 대한 컨테이너(디렉토리)⇒ FE에서 build를 통해 만들어내는 산출물(bundle)을 올려두는 용도로 사용합니다.AWS CloudFrontAmazon CloudFront는 CDN 서비스콘텐츠 요청이 발생한 곳과 가까운 Edg..
-
Github PR Reviewer 자동 추가하기Infra/Git 2024. 1. 27. 22:02
팀 문화 중 코드 리뷰 문화를 개선하면서 코드 리뷰의 활성화를 위해 PR 진행 시 팀의 모든 인원을 Reviewer로 추가하기로 했습니다. 기존에는 팀장에게만 리뷰가 걸렸지만 코드 리뷰의 방식이 바뀌어 팀의 모든 인원을 계속 걸어줘야 하다 보니 번거로움이 생겼습니다. 그래서 PR 생성 시 자동으로 Reviewer가 걸리도록 Github Code owners에 대해 알아보고 적용하게 되어 해당 내용을 정리하게 되었습니다. Code owners?Github Code owners는 repository에 owner로 지정하여 PR 생성 시 지정된 owner들이 자동으로 Reviewer로 걸리게 합니다. Github Code owners 관리는 CODEOWNERS 파일로 하며 개인 또는 팀을 지정할 수 있습니다..