CI/CD
CI : Continuous Integration
CI는 지속적인 통합을 의미하는 용어이다.
- 개발자들이 자신이 작성한 코드를 주기적으로 빌드하고 테스트하는 과정을 자동화 하는 것을 의미한다.
- 즉 코드를 우리가 작성할때마다 -> 해당 코드가 자동으로 테스트되고 빌드되어서 지속적으로 "통합" 하는 것이다.
- 결국 코드 품질을 유지하고, 버그를 최대한 빨리 찾아내서 해결할 수 있는 장점이 있다.
CD : Continuous Deployment/Delivery
CD는 지속적인 통합을 의미하는 용어이다.
- 지속적인 배포는 CI를 통해서 테스트 및 빌드된 코드를 자동으로 배포하는 것을 의미한다.
- 개발자들은 이를 통해서 Release Process를 자동화하여 빠르게 소프트웨어를 배포할 수 있다.
어떤식으로 구현할까?
- 일반적으로 젠킨스, 팀시티, 깃랩과 같은 도구를 통해서 구현하는 방법이 있다.
스프링부트를 사용할때 CI/CD 를 적용하는 방법.
- 소스 코드 관리 시스템(Git)을 사용하여 소스 코드를 관리한다.
- 빌드 도구(Maven, Gradle 등)를 사용하여 소스 코드를 빌드한다.
- 테스트를 자동화하고, 빌드된 어플리케이션을 실행할 수 있는 환경을 구성한다.
- 이를 위해 테스트 프레임워크(JUnit 등)를 사용하고, Docker와 같은 가상화 기술을 사용하여 실행 환경을 구성할 수 있다.
- CI 도구 (깃랩) 를 사용하여 지속적 통합 환경을 구성합니다. 이를 위해 CI 도구에 소스 코드를 연결하고, 빌드 및 테스트를 자동화한다.
- 빌드 및 테스트가 성공적으로 완료되면, 배포 자동화 도구를 사용하여 서버에 자동으로 배포한다.
오픈소스 모니터링
- 오늘 기술매니저님과의 이야기에서 나왔던 이야기이다 추후에 더 작성하겠다.
.gitignore 가 안먹을때
참고: https://jojoldu.tistory.com/307
이때 문제가 되는 것은 ignore 처리된 파일이 캐시값을 가지고 있기 때문이다.
이때 캐시를 지워주면 된다.
git rm -r --cached .
git add .
git commit -m "fixed untracked files"