Roslyn과 CI를 활용한 단위 테스트 품질 관리 및 제품 출시 제어
이전 글에서는 Roslyn을 사용하여 코드 분석을 수행하고, 사용자 정의 규칙을 통해 문제 있는 코드나 코딩 표준에 맞지 않는 코드를 식별하여 커밋을 차단함으로써 팀의 코드 품질을 향상시키는 방법을 다뤘습니다.
이번에는 Roslyn 기술을 활용하여 단위 테스트 코드를 분석하고, 단위 테스트 커버리지와 실행 성공률을 기반으로 제품 출시 품질을 엄격히 관리하는 방법 ...
5월 31일 03:30에 게시됨
Docker를 사용한 GitLab 설치 및 CI/CD 통합 (GitLab-Runner)
GitLab 및 GitLab-Runner 설정
먼저 GITLAB_HOME 환경 변수를 설정합니다.
export GITLAB_HOME=/srv/gitlab
BASH 환경을 사용하는 경우, 위 설정을 ~/.bash_profile 파일에 추가하여 source ~/.bash_profile 명령으로 영구적으로 적용할 수 있습니다.
docker run --detach \
--hostname 192.168.1.205 \
--publish 9443:443 --publish 9080:9080 --publish 9022:22 ...
5월 30일 19:50에 게시됨
Jenkins, Docker, Nginx를 활용한 프론트엔드 자동화 배포 파이프라인 구축
시스템 아키텍처 개요
지속적 통합 및 지속적 배포(CI/CD) 환경을 구축하기 위해 소스 코드 저장소부터 실제 서비스 환경까지의 흐름을 다음과 같이 설계합니다.
소스 코드 저장소 (Git Push)
↓
Jenkins (웹훅 트리거 및 파이프라인 실행)
↓
Docker (멀티 스테이지 빌드 및 이미지 생성)
↓
Nginx (컨테이너 기반 정적 파일 서빙)
인프라 환경 설정
1. 도커 엔진 설 ...
5월 29일 14:42에 게시됨
Jenkins 설치 및 운영 시작하기
Jenkins 개요 및 설치 시작하기
Jenkins는 소프트웨어 개발 프로세스에서 지속적 통합(CI) 및 지속적 배포(CD)를 지원하는 강력한 자동화 서버입니다. 빌드, 테스트, 배포와 같은 다양한 작업을 파이프라인 형태로 정의하고 자동화하여 개발 워크플로우를 효율적으로 관리할 수 있도록 돕습니다.
프로젝트 단위로 작업을 구성하여 관리 및 실행의 편의성 제공
수동 작 ...
5월 27일 04:48에 게시됨
레거시 코드의 잠재적 위험: 테스트 관점에서의 식별과 방어 전략
1. 레거시 코드: 악성 로직의 자연스러운 은신처
특징과 위험 연결 메커니즘
문서 부족 및 논리의 은폐성: 레거시 코드는 주석 부족과 문서의 과도한 낡음(발생률 > 78%)이 일반적입니다. 복잡한 명명 규칙(예: DeviceController와 AdminManager 사이의 순환 호출)은 악성 로직을 숨기는 데 이상적인 환경을 제공합니다.
기술 부채의 증폭 효과: 오래된 기술 스택(PH ...
5월 21일 10:12에 게시됨