본문 바로가기

SW/DevOps

DevOps : Docker 환경 정리 : 방법, 명령어 이 튜토리얼에서는 더 이상 사용하지 않는 docker 이미지의 로컬 환경을 정리하는 방법을 살펴 보겠습니다. Docker는 훌륭하지만 다운로드 한 이미지 및 컨테이너 중 일부는 컴퓨터에서 많은 공간을 차지할 수 있습니다. 이러한 이미지 중 일부는 더 이상 개발하지 않는 오래된 프로젝트에 대한 것일 수 있으므로 이미지를 로컬로 가질 필요가 없습니다. 어떤 이유로든 프로젝트가 도커로 돌아 가야하는 경우 로컬에서 찾을 수 없는 이미지를 쉽게 다운로드 할 수 있습니다. 도커 사용량 보기 명령어 사용하기 $ docker system df 이미지, 컨테이너 및 볼륨이 얼마나 많은 공간을 사용하고 있는지 확인할 수 있습니다. $ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMAB..
DevOps : Docker 이미지를 푸시하는 Github Action Github 액션을 사용하여 마스터로의 병합에서 라벨 애플리케이션에서 PHPUnit 테스트를 실행하는 방법을 살펴 보았습니다. 테스트가 성공한 다음 단계는 도커 이미지를 빌드하고이를 저장소에 푸시하는 것입니다. 테스트가 성공적으로 완료되고 도커 이미지를 리포지토리에 푸시 한 후에 실행할 새 워크 플로 파일을 만들어야합니다. 먼저 워크 플로 폴더 .github/workflows/docker.yml에 새 파일을 만들고 해당 파일에 다음을 붙여 넣습니다. name: Docker on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - name: 'Checkout GitHub Action' uses: actions/checkout@v..
DevOps : MacOS에서 도커 성능 향상 방법 Docker를 사용하도록 개발 프로세스를 옮겼다면 기본 인프라에서 실행하는 것보다 성능 차이가 있음을 알 수 있습니다. 다음은 특히 MacOS를 사용하는 개발자에게 로컬 컴퓨터의 도커 속도를 높이는 데 사용할 수 있는 몇 가지 팁입니다. 볼륨 최적화 이것은 로컬 컴퓨터의 도커 성능에 가장 큰 영향을 미칩니다. 볼륨 캐싱을 향상시킬 수 있으면 응용 프로그램의 로딩 속도가 크게 향상됩니다. Docker 17.04부터 두 개의 새로운 옵션이 Docker 볼륨의 cached 및 delegated에 추가되었습니다. 경우에 따라 컨테이너의 파일과 로컬 컴퓨터의 파일간에 정확한 동기화가 필요합니다. 올바른 파일 시스템 캐시를 선택하면 개발 환경의 성능을 향상시키는 데 도움이됩니다. consistent : 완벽한 일관..
DevOps : Docker의 모든 컨테이너 나열하기 : 명령어 Docker는 컨테이너를 사용하여 환경을 마무리함으로써 가상 머신 구매와 같은 자체 환경에서 완전한 파일 시스템을 실행할 수있는 소프트웨어입니다. 여기에는 코드, 런타임, 시스템 도구 및 시스템 라이브러리를 실행하기 위해 이 모든 것이 포함되며, 이는 자체 서버를 실행하는 데 필요한 모든 것입니다. 모든 컨테이너가 다른 컨테이너와 동일한 커널을 공유하기 때문에 가상 머신의 아키텍처는 다릅니다. 그러나 다른 모든 종속성은 독립적으로 실행될 수 있습니다. 이것은 구성 파일을 사용하여 응용 프로그램이 올바르게 실행되도록 서버에 필요한 모든 종속성을 추가합니다. 예를 들어 응용 프로그램을 실행하려면 특정 버전의 PHP가 필요한 경우 도커 환경을 만들면 동일한 환경을 쉽게 공유 할 수 있습니다. 프로젝트의 모든 ..
K-MOOC 강좌 후기 : 오픈소스를 활용한 DevOps 환경 이해 최근 업무를 진행하면서 종종 DevOps에 대해 듣고는 하였습니다. 그 과정에서, 정확히 DevOps가 무엇인 지, 이해하지 못하고 있었고, Docker와 같은 하나의 신기술 정도로만 생각을 하였습니다. 하지만 이번 강좌를 통해서, 그 생각이 매우 틀렸다는 것을 알게 되었습니다. SW 개발해나가는 과정 역시 진화하고 있고, 떠오르는 개발 방법론이라는 것을 이해하게 되었습니다. 저도 모르게 평소에 실천했던 사례 중에 DevOps와 유사한 경험도 있다는 것을 알게 되었고, 또 잘못된 접근을 하고 있는 사례도 생각나게 되었습니다. 이 강좌는 오픈 소스를 통한 DevOps 환경을 이해할 수 있습니다. 또한, 가장 많이 활용되는 도구와 툴에 대해 공부할 수 있고, 그러한 툴을 활용해 개발,통합, 테스트, 배포, ..
DevOps : End-to-End Test 개념, 종류, 방법 End to End Test 엔드-투-엔드 테스트는 시스템이 외부 요구 사항을 충족시키고 전체 시스템을 끝까지 테스트하여 목표를 달성하는지 확인합니다. 다른 테스트와 달리 사용 중인 컴포넌트나 아키텍처와 관계없이 시스템이 전체적으로 비즈니스 목표를 충족하는지 확인하는 데 집중합니다. 이를 달성하기 위해 시스템은 블랙박스로 취급하여 GUI 및 서비스 API와 같은 공개 인터페이스를 통해 가능한 한 완벽하게 배포 된 시스템을 테스트합니다. 이런 종단 간 테스트를 통해 문제 영역에 대해 더 많이 알게 되면 서비스는 분할되거나 병합될 가능성이 있으며, 마이크로 서비스 아키텍처는 시간이 지남에 따라 발전할 수 있습니다. 하지만 테스트 범위가 훨씬 넓어 실패할 가능성이 매우 높습니다. UI 테스트 UI 테스트를 엔..
DevOps : Service Test 종류 및 방법 서비스 테스트 ‘서비스’라는 용어는 사람에 따라 의미가 모호할 수 있지만, 일반적으로 서비스 테스트라는 것은 UI 등 사용자 인터페이스를 우회해서 서비스들을 직접 테스트하는 것을 말합니다. 여러 서비스로 구성된 시스템 대상으로 단일 서비스만 테스트할 경우, 독립적으로 문제를 검증하기 위해 다른 서비스는 스텁으로 만들어서 테스트할 서비스의 범위를 제한하게 됩니다. 일부 작은 서비스 테스트는 빠르게 끝나겠지만, 실제 DB 또는 네트워크를 통해 테스트한다면 테스트 시간은 늘어날 것입니다. 단위 테스트보다 더 많은 범위를 다루므로 테스트 실패 시 문제의 원인을 찾기가 더 어려울 것입니다. 통합 테스트 서비스 테스트 중 하나인 통합 테스트는 화면의 박스 부분처럼 구성 요소 간의 네트워크 경로 및 상호 작용을 검증..
DevOps : UnitTest와 JUnit 개념 및 사용법 단위 테스트 트렌드 예전에는 UI 화면이나 장비 등의 필요한 기능을 조작하여 내용을 확인해서 테스트했으나, 현재는 작성한 프로그램을 테스트하기 위한 테스트용 프로그램을 작성후 실행시켜 확인합니다. 테스트용 프로그램을 만들기 보다는 UI 화면으로 테스트하는 것이 빠를 것 같지만, 테스트용 프로그램을 작성하게 되면 같은 내용의 테스트를 반복해서 자동으로 테스트할 수 있는 장점이 있습니다. JUnit 많이 사용 되는 JUnit은 단위 테스트 작성을 지원하는 xUnit 계열의 오픈소스 자바 프레임워크입니다. 여기서 xUnit은 단위 테스트 작성을 지원하는 여러 언어별 오픈소스 프레임워크를 말합니다. TDD 개념을 정립하고 애자일 방법론의 한 형태인 XP를 만든 켄트 벡과 GoF 패턴을 집대성한 에릭 감마에 의해..