2024.07.08
학습
● 1. Pagination 사용 방법과 사용 이유
CI/CD
Continuous Integration/Continuous Deployment(Delivery)의 약자로, 지속적인 통합과 지속적인 제공을 의미
지속적인 통합, 지속적인 서비스 제공, 지속적인 배포
지속적인 통합( Continuous Integration )
코드의 지속적인 통합
자동화된 빌드와 자동화된 테스트를 제공
안정적인 코드를 빠르게 제공할 수 있는 밑거름이 된다.
// 브랜치별로 merge하는 과정을 ci라함.
지속적인 배포( Continuous Deployment )
소스 변경분을 빠르게 테스트하고, 자동화된 테스트를 진행하며 자동으로 운영환경까지 배포하는 시스템을 의미한다.
배포를 자동화하여 배포 시간을 단축하고 코드 결과물을 빠르게 지속적으로 제공
// 특정 브랜치에서 푸시나 머지가 수행되었을 때 현재 브랜치에 배포하는 곳에 버전으로 자동 배포하는 시스템.
머지가 완료된 순간 자동으로 배포까지 가능하게 하는것이 CD
- 단계
- 코드 작성: 개발자들은 소스 코드를 작성하고 저장소(repository)에 업로드
- 빌드: 저장소에서 최신 소스 코드를 가져와 빌드를 수행. 빌드는 소스 코드를 컴파일하고, 라이브러리를 추가하고, 필요한 파일을 생성하는 과정.
- 테스트: 빌드된 결과물을 대상으로 테스트를 수행. 테스트는 기능이 정상적으로 작동하는지 확인하고, 버그를 발견하고 수정하는 과정.
- 배포: 테스트를 통과한 결과물을 배포. 배포는 서버에 업로드하거나, 사용자에게 제공하는 과정
Docker를 사용하는 이유
애플리케이션 개발과 배포가 편해진다.
1. Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향을 주지 않는다.
2. CI/CD에서 지속적인 통합 과정의 테스트에서 Docker를 활용한다.
3. 어떤 서버에 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있다.
4. 여러 애플리케이션의 독립성과 확장성이 높아진다.
리눅스에 의존하는 Docker
Docker를 사용하려면 리눅스 환경이 필요하다. 이유는, Docker는 리눅스 커널의 두 가지 주요 기능인 cgroups와 namespaces를 사용하여 컨테이너를 생성하고 관리하기 때문이다. 즉, Windows 운영체제는 리눅스의 커널이 없기 일반적인 방법으로는 도커 실행이 불가능하다.
윈도우에서 Docker를 사용하려면 "WSL2" 또는 "Hyper-V 기반 가상화"를 이용해 Docker Engine을 사용할 수 있다.
여기서 또, Windows Home 에디션이냐 Pro 에디션이냐에 따라 Docker Engine을 사용하는 방법이 달라진다.
Windows Home 인경우 반드시 WSL2를 설치후 리눅스 환경에서 도커를 설치 후 실행을 시켜줘야 하며, Pro일 경우에는 WSL2 또는 Hyper-V 기반 가상화를 통한 두 가지 방법이 존재한다.
WSL2( Windows Subsystem for Linux 2 )
윈도우에서 리눅스를 사용할 수 있게 해주는 기능이며, 해당 기능에는 리눅스의 커널을 포함한 경량 가상 머신이 들어가 있으며, 도커 컨테이너를 실행할 수 있게 도와준다. WSL2는 리눅스 커널을 직접 실행하기 때문에 리눅스 기반의 도커 컨테이너를 완벽하게 지원을 해준다.
Hyper-V
WSL 2 외에도 윈도우에서 도커를 실행할 때 사용되는 또 다른 기술은 Hyper-V입니다. 이는 윈도우에서 리눅스 가상 머신을 실행하여 그 안에서 도커를 사용할 수 있게 합니다.
Docker Image
가상 머신 환경 내부에 사용자가 필요한 라이브러리들을 도커 허브에서 받아서 이용할 수 있다. 예시로 들면 MySql이나 Java의 OpenJDK와 같은 패키지들을 라이브러리 형태로 받을 수 있다는 의미이다. 이러한 라이브러리들을 도커 이미지라고 부른다. 즉, 도커 이미지는 특정 소프트웨어와 그 환경을 미리 패키지화한 파일이며, 이를 통해 사용자는 복잡한 설정 없이도 필요한 소프트웨어를 도커 가상 머신 내부에서 신속하게 실행을 할 수 있게 되며, 다양한 소프트웨어 환경을 손쉽게 구축하고 사용할 수 있게 된다.
Docker Contaiiner
회고
ㅇㅇㅇㅇㅇ
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 59일차 TIL - 심화 프로젝트 설계 (0) | 2024.07.10 |
---|---|
내일배움캠프 58일차 TIL - Redis (0) | 2024.07.09 |
내일배움캠프 56일차 TIL - AWS(3) RDS (0) | 2024.07.04 |
내일배움캠프 55일차 TIL - QueryDSL Pagination (0) | 2024.07.04 |
내일배움캠프 54일차 TIL - QueryDSL 사용하는 방법 (0) | 2024.07.02 |