전체 글66 CI/CD: GitHub Actions vs Jenkins 요즘은 대부분의 프로젝트에서 CI/CD가 기본이다. 코드 푸시와 동시에 테스트, 빌드, 배포까지 자동으로 흘러가야 개발 흐름이 끊기지 않는다. 그런데 CI/CD 도구도 워낙 많다 보니, 어떤 걸 써야 할지 애매할 때가 많다.이번 글에서는 많이 쓰이는 GitHub Actions와 Jenkins를 중심으로, 어떤 상황에서 어떤 도구가 더 적합한지 정리해보고, 개인적으로 경험했던 사례도 함께 공유해보려 한다.✅ 도구 선택 기준 요약설정 및 설치가 쉬운가?유지보수가 편한가?프로젝트 규모에 따라 확장 가능한가?보안 및 인프라 통제가 필요한가?GitHub Actions – 간단하고 빠르게 시작할 수 있는 CI/CD👍 이런 경우에 적합빠르게 CI/CD를 구축하고 싶을 때별도 서버 없이 GitHub만으로 운영하고 싶.. 2025. 4. 14. 서비스 아키텍처 설계를 위한 데이터베이스 선택 기준 데이터베이스, 어떻게 선택해야 할까?서비스를 처음 설계할 때 가장 많이 하는 고민 중 하나가 바로 데이터베이스 선택이다. 관계형(RDBMS)으로 충분할까? NoSQL도 같이 써야 할까? 처음엔 단순하게 시작하더라도, 서비스가 커질수록 데이터 구조나 성능 요구가 달라지기 마련이다.이번 글에서는 서비스 아키텍처에서 데이터베이스를 선택할 때 고려해야 할 요소들과, RDBMS 단독 사용 vs RDBMS + NoSQL 혼합 사용에 대한 판단 기준을 정리해본다.1. 일관성 vs 성능일관성이 중요한 데이터예를 들어 결제 정보, 사용자 계정, 인증 데이터처럼 실수가 생기면 안 되는 정보들은 강한 일관성이 보장돼야 한다.이런 경우에는 트랜잭션을 안정적으로 처리할 수 있는 RDBMS가 안정적인 선택이다.성능이 중요한 데이.. 2025. 4. 14. DDD(Domain Driven Design) in Nest.js express만 사용하다 nest.js를 도입하기로 한 후 수박 겉핥기 식으로 공부해서 프로젝트에 적용시켰는데, 그러다보니 이렇다 할 구조도, 체계도 없이 중구난방인 프로젝트가 되어버려서 프로젝트 리뉴얼 하는 김에 도메인 주도 개발(이하 DDD)를 도입하기로 했다. DDD는 복잡한 도메인을 효과적으로 이해하고, 비즈니스 로직과 도메인을 효율적으로 분리할 수 있게 하는 아키텍쳐이다. 데이터베이스에서 내 정보를 찾는 간단한 플로우로 예시를 들면서 알아보자 DDD의 구조를 요약하면 다음과 같다.프레젠테이션 계층 (Presentation Layer)- Controller- DTO (Data Transfer Object)애플리케이션 계층 (Application Layer)- UseCase Class / Ser.. 2024. 6. 25. Closure(클로저) Closure 함수가 실행되었을 때의 렉시컬 환경 function outer() { const x = 10 const inner = function () { console.log(x) } return inner } const closure = outer() closure() 외부함수 outer 에서 선언한 변수 x와, x를 출력하는 함수 내부함수 inner outer 함수는 inner 함수를 반환하고 life-cycle 종료 변수 closure 에 outer 함수를 할당하고 실행 10 출력 outer 함수는 변수 x와 내부함수 inner 를 선언하고, inner 함수를 반환하고 수명을 다한다. 하지만 outer 함수를 closure 변수에 할당하고 실행하니 이미 수명을 다한 outer 함수에서 선언한 x.. 2023. 7. 31. 이전 1 2 3 4 ··· 17 다음 반응형