반응형

SW/DevOps 16

DevOps 공부가 오래 걸리는 이유: 초보자가 피해야 할 8가지 실수

DevOps 공부가 오래 걸리는 이유는 도구가 많아서만은 아닙니다. 더 큰 문제는 Docker, Kubernetes, Terraform, CI/CD를 따로 배우고도 하나의 배포 흐름으로 연결하지 못하는 데 있습니다. 이 글은 공부 시간을 줄이는 요령보다, 배운 내용을 실무형 프로젝트와 면접 답변으로 바꾸는 기준을 정리합니다.처음 DevOps를 공부하면 해야 할 것이 끝없이 늘어나는 느낌이 듭니다. Docker도 해야 하고, Kubernetes도 해야 하고, Terraform도 해야 하고, Jenkins나 GitHub Actions도 봐야 합니다. 여기에 AWS, Azure, Linux, 네트워크, 모니터링까지 붙으면 로드맵 자체가 부담이 됩니다.하지만 실제로 막히는 지점은 대개 도구 이름이 하나 부족한 ..

SW/DevOps 2026.06.18

DevOps : AIOps 및 MLOps에 대한 심층 분석

DevOps 환경을 모니터링하고 관리하는 것은 복잡합니다. 새로운 분산 아키텍처(예: Kubernetes)에서 생성되는 데이터의 양 때문에 DevOps 팀은 고객 요청에 효과적으로 대응하기 어렵습니다. 따라서 DevOps의 미래는 지능형 관리 시스템을 기반으로 해야 합니다. 인간은 일상적인 운영에서 방대한 양의 데이터와 컴퓨팅을 처리할 수 없기 때문에 인공지능(AI)은 팀이 애플리케이션을 개발, 제공, 배포 및 관리하는 방법을 계산, 분석 및 변환하는 데 중요한 도구가 될 것입니다. 기계 학습 운영 기계 학습 운영(MLops)은 기계 학습(ML) 프로젝트의 라이프사이클 관리를 말합니다. 이것은 현대 기계 학습 응용 프로그램 개발의 핵심 개념이며, 그 목적은 기계 학습 응용 프로그램의 교육, 배치 및 유지..

SW/DevOps 2023.07.02

DevOps : Docker 환경 정리 : 방법, 명령어

이 튜토리얼에서는 더 이상 사용하지 않는 docker 이미지의 로컬 환경을 정리하는 방법을 살펴 보겠습니다. Docker는 훌륭하지만 다운로드 한 이미지 및 컨테이너 중 일부는 컴퓨터에서 많은 공간을 차지할 수 있습니다. 이러한 이미지 중 일부는 더 이상 개발하지 않는 오래된 프로젝트에 대한 것일 수 있으므로 이미지를 로컬로 가질 필요가 없습니다. 어떤 이유로든 프로젝트가 도커로 돌아 가야하는 경우 로컬에서 찾을 수 없는 이미지를 쉽게 다운로드 할 수 있습니다. 도커 사용량 보기 명령어 사용하기 $ docker system df 이미지, 컨테이너 및 볼륨이 얼마나 많은 공간을 사용하고 있는지 확인할 수 있습니다. $ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMAB..

SW/DevOps 2020.08.12

DevOps : MacOS에서 도커 성능 향상 방법

Docker를 사용하도록 개발 프로세스를 옮겼다면 기본 인프라에서 실행하는 것보다 성능 차이가 있음을 알 수 있습니다. 다음은 특히 MacOS를 사용하는 개발자에게 로컬 컴퓨터의 도커 속도를 높이는 데 사용할 수 있는 몇 가지 팁입니다. 볼륨 최적화 이것은 로컬 컴퓨터의 도커 성능에 가장 큰 영향을 미칩니다. 볼륨 캐싱을 향상시킬 수 있으면 응용 프로그램의 로딩 속도가 크게 향상됩니다. Docker 17.04부터 두 개의 새로운 옵션이 Docker 볼륨의 cached 및 delegated에 추가되었습니다. 경우에 따라 컨테이너의 파일과 로컬 컴퓨터의 파일간에 정확한 동기화가 필요합니다. 올바른 파일 시스템 캐시를 선택하면 개발 환경의 성능을 향상시키는 데 도움이됩니다. consistent : 완벽한 일관..

SW/DevOps 2020.08.10

DevOps : End-to-End Test 개념, 종류, 방법

End to End Test 엔드-투-엔드 테스트는 시스템이 외부 요구 사항을 충족시키고 전체 시스템을 끝까지 테스트하여 목표를 달성하는지 확인합니다. 다른 테스트와 달리 사용 중인 컴포넌트나 아키텍처와 관계없이 시스템이 전체적으로 비즈니스 목표를 충족하는지 확인하는 데 집중합니다. 이를 달성하기 위해 시스템은 블랙박스로 취급하여 GUI 및 서비스 API와 같은 공개 인터페이스를 통해 가능한 한 완벽하게 배포 된 시스템을 테스트합니다. 이런 종단 간 테스트를 통해 문제 영역에 대해 더 많이 알게 되면 서비스는 분할되거나 병합될 가능성이 있으며, 마이크로 서비스 아키텍처는 시간이 지남에 따라 발전할 수 있습니다. 하지만 테스트 범위가 훨씬 넓어 실패할 가능성이 매우 높습니다. UI 테스트 UI 테스트를 엔..

SW/DevOps 2019.12.20

DevOps : SW 테스트 개요

Digital Transforamation & Software Testing 오늘날 기업은 디지털 트랜스포메이션을 통해 초일류 기업으로 도약하려고 하고 있고, 소프트웨어는 그 중 필수적이고 중요한 부분이 되고 있습니다. 혁신의 속도를 빠르게 하려면 고품질의 소프트웨어를 보다 빨리 제공하고 제대로 동작하는지 확인할 수 있는 방법이 필요합니다. 그래서 소프트웨어 테스트가 중요한데, 개발된 소프트웨어가 요구사항대로 되었는지, 기능이 제대로 동작하는지, 안정적인지, 확장 가능한지 등 다양한 면에서 검증되어야 합니다. 테스트 자동화의 중요성 전통적으로 소프트웨어 테스트는 애플리케이션을 테스트 환경에 배포 후 사용자 인터페이스 또는 UI를 클릭해서 문제를 찾는 수동적인 방식으로 진행했습니다. 모든 변경 사항을 수동..

SW/DevOps 2019.12.15

DevOps : SonarQube 사용법

소나큐브 사용 방법 우선 먼저 소나큐브 구동을 살펴보도록 하겠습니다. 소나큐브 사이트에서 배포 파일을 다운로드 후 설정 파일을 개발환경에 맞는 IP, 포트, 콘텍스트 등의 정보를 수정 후 소나 서비스를 실행합니다. 필요에 따라 이클립스 마켓 플레이스에서 제공하는 플러그인을 추가로 설치 가능합니다. 주요 플러그인으로는 파인드버그, 파인드 시큐리티 버그, PMD, 소나 HTML 등이 있습니다. 로그인 후 탑 메뉴를 통해 소나큐브의 기능을 사용할 수 있습니다. 프로젝트 메뉴는 소나큐브에서 관리하는 프로젝트 목록을 확인할 수 있습니다. 개별 프로젝트명을 클릭 후 나오는 오버뷰 화면은 분석 결과의 전체적인 내용을 요약해서 보여줍니다. 이슈 화면은 현재 프로젝트에서 활동 사항을 보여줍니다. 좌측의 필터 기능 사용 ..

SW/DevOps 2019.12.10

DevOps : SW 구조 분석 도구 개념 및 종류

아키텍쳐 개요 소프트웨어 아키텍처는 여러 개의 동시 뷰, 즉 관점에 따른 다양한 형태로 접근해야 합니다. 화면 좌측 상단의 거리가 소스코드 같은 저수준이라면, 화면 우측 상단의 큰 지도가 아키텍처 같은 고수준이라고 할 수 있습니다. 지도를 확대/축소하면서 현재 위치를 확인하듯이 소프트웨어도 다양한 레벨의 관점으로 시스템을 바라보면서 다룰 수 있어야 빈번한 요구사항 변경 및 버그에 대응하기 쉽고 유지보수가 수월해집니다. 기존 개발팀이 개발을 끝낸 후 그 제품 유지보수를 담당하는 개발자에게 산출물 또는 기술문서가 필요한데, 특히 이런 문서들은 프로젝트에 새로운 멤버가 들어왔을 때 기존 개발자들과 개발속도뿐만 아니라 호흡을 맞추는 데 큰 도움이 됩니다. 그러나 훌륭한 산출물이 되기 위해서는 실제 소프트웨어의 ..

SW/DevOps 2019.12.08

DevOps : 정적 분석의 이해와 관련 도구 소개

소스코드 리뷰의 기법을 나누는 방법은 얼마나 정적이고 프로세스적으로 구분하느냐에 따라 화면 상단에 코드 리뷰 스펙트럼으로 구분할 수 있고, 자동화된 도구로 이루어지는 정적분석인 코드 인스펙션과 사람에 의해 수동적으로 수행되는 코드 리뷰 등으로 나눌 수 있습니다. 코드 리뷰 중 정형화된 방법으로는 주로 개발 단계 후반의 결함 발견에 집중하고, 손쉬운 방법의 측면은 결함 발견뿐 만 아니라 아이디어 회의, 팀원 간 지식 공유의 목적도 있습니다. Peer review는 두세 명이 진행하는 형태로 코드 작성자가 자신의 코드를 설명하고, 다른 사람이 아이디어를 제안하거나 결함을 발견하는 방식입니다. 주로 시니어 개발 사수가 주니어 개발자를 멘토링할 때 사용하지만, 시니어 개발자의 역량에 따라 품질이 달라질 수 있고..

SW/DevOps 2019.12.07

DevOps :CI : Docker로 구축하는 방법

지속적 통합환경 구축해야 할 큰 요소는 깃랩, 젠킨스, 소나큐브입니다. 계획 및 일감관리는 웹 인터페이스를 지원하는 설치형 깃을 사용하고, 젠킨스가 소스코드가 커밋되는 것을 감지하거나 스케줄에 따라 소스코드를 통합하고 빌드하면서 정적 분석을 하면 결과는 소나큐브 대시보드에서 확인할 수 있습니다. 이 환경을 도커를 활용하여 구축한다면 기존 방식보다 매우 빠르고 쉽게 구축할 수 있습니다. 이를 Docker-Compose로 진행해 보겠습니다. Docker-Compose.yml을 직접 작성하지 않고 만들어져서 깃허브에 올라와 있는 것을 활용하도록 하겠습니다. 화면에 있는 깃허브 레파지토리를 클론해서 사용하겠습니다. STS의 Git 플러그인 기능을 통해서 조금 전 소개했던 깃 레파지토리를 클론합니다. 다운받은 위..

SW/DevOps 2019.12.05

DevOps : Docker Compose : 기초, 개념

Docker Compose란? Docker-Compose는 여러 개의 컨테이너를 일괄적으로 관리하는 도구입니다. 대부분의 시스템은 여러 대의 서버가 유기적으로 연계되어 마치 하나의 서비스처럼 작동합니다. 이때 다수의 컨테이너 각각을 개별적으로 다루는 것보다 여러 개를 통합적으로 관리하는 것이 효과적입니다. Docker-Compose는 도커와는 별개의 도구이지만 Docker ce for windows에서 기본적으로 제공됩니다. docker-compose.yml Docker-Compose.yml은 Docker-Compose의 구성 파일입니다. 한 파일 안에 여러 컨테이너 설정 내용을 저장합니다. 도커 애플리케이션을 위한 서비스, 네트워크, 볼륨 등을 정의합니다. 버전별로 차이점이 있으며 현재 최신 버전은 버..

SW/DevOps 2019.12.04

DevOps : Docker 실행, 목록 확인, 시작, 정지, 재시작, 삭제 로그 명령어

도커 컨테이너의 기본 명령어들입니다. 컨테이너를 실행하는 Run, 컨테이너를 시작하는 Start, 재시작하는 Restart, 컨테이너를 정지하는 Stop 그리고 컨테이너를 삭제하는 Rm 명령 등이 있습니다. 도커 컨테이너의 실행은 docker container run 명령을 사용합니다. 컨테이너를 대화식으로 실행하느냐 아니면 백그라운드로 실행하느냐에 따라 표준 입력, 출력을 연결하는 옵션을 사용하게 됩니다. 컨테이너 목록 확인 docker container ls 명령을 통해 도커 컨테이너의 가동 상태를 확인할 수 있습니다. -a 옵션을 사용해서 실행 정지 중인 것을 포함하여 모든 컨테이너의 상태를 확인 할 수 있습니다. 결과는 컨테이너 아이디, 이미지, 컨테이너에서 실행되고 있는 명령, 컨테이너 생성 후..

SW/DevOps 2019.12.01

DevOps : 오픈소스 소프트웨어 : 오픈소스 라이센스 : 개념

DevOps란? 4차 산업혁명시대 기술 변화 가속화로 새로운 SW기반 서비스들이 등장하고 있습니다. 시장의 변화, 고객의 요구에 빠르게 대응하는 것이 중요한 것입니다. 따라서, 빠른 시도, 빠른 실패를 통한 점진적 서비스 개선만이 현재로 최선의 방법입니다. 결론적으로, 신속한 변경, 검증, 반복, 개선이 가능한 SW 서비스 개발/운영 방식 필요한 것입니다. 결국, DevOps는 이러한 요구에 맞춰 나온 개념입니다. 기술과 시장의 빠른 변화에 대응하기 위한 최신 소프트웨어 개발 운영 트렌드를 뜻합니다. Development + Operations의 합성어입니다. 역할을 나누고 경계를 나누는 것보다 소통, 협업, 통합을 중시하는 사상입니다. 즉, 서비스 중심으로 기술, 도구, 프로세스, 문화, 조직 등을 망..

SW/DevOps 2019.11.28

DevOps : Docker : 설치, 예제, 개념

도커 플랫폼 도커를 설치하기 전에 도커 에디션에 대해서 살펴보겠습니다. 도커는 두 가지 방식의 라이선싱 모델을 제공합니다. 커뮤니티 에디션과 엔터프라이즈 에디션입니다. Community Edition, 줄여서 CE는 오픈 소스 버전으로 누구나 무료로 사용할 수 있습니다. Enterprise Edition, EE는 상용 버전으로 인증이 완료된 플러그인이나 보안 기능 등 추가 기능과 지원을 받을 수 있습니다. 실습에서는 CE 에디션을 사용합니다. 도커 CE가 지원하는 플랫폼입니다. 크게 데스크톱과 서버로 구분할 수 있습니다. 도커는 원래 리눅스 커널을 사용하기 때문에 리눅스 상에서 작동하지만 개발 환경을 제공하기 위하여 데스크톱용 클라이언트 도구를 제공합니다. 도커 설치 Docker Desktop for M..

SW/DevOps 2019.11.22

DevOps : 소스 코드 관리 : 기본 개념

소스코드를 개발할 때는 공동의 작업뿐 아니라 개발자 개인의 작업에서도 버전 관리가 필수적입니다. Git의 저장소는 원격 저장소와 로컬 저장소, 두 가지가 있습니다. 원격 저장소는 다수의 인원이 소스코드를 공유하기 위한 공간입니다. 로컬 저장소는 개발자 개인을 위한 저장 공간입니다. 일반적으로 로컬 저장소에서 개발자들이 작업을 하고 공유를 위해서 원격 저장소로 내용을 업로드합니다. 업로드된 내용은 다른 개발자들이 사용하기 위하여 각자의 로컬 저장소로 복제할 수 있습니다. 먼저 Gitup에 로그인합니다. 화면에서 뉴 레파지토리 버튼을 클릭하고 레파지토리 이름에 ‘First¬Repository’를 넣습니다. 리드미 파일을 초기화하도록 체크하고 Create합니다. 레파지토리가 생성되었고, README.md 내용..

SW/DevOps 2019.11.17

DevOps : 관련 도구 : 종류, 소개

위 그림은 DevOps 수명 주기 전반의 도구 사슬을 표현하였습니다. 도구 사슬의 의미는 각 영역이 별개가 아니라 도구 간 연계를 통해서 시너지를 이룬다는 측면을 강조한 것입니다. 각 영역별로 오픈소스 위주의 도구를 나열하였습니다. 계획 영역에서는 협업, 일감 관리를 위한 도구를 주로 사용합니다. Redmine이 잘 알려진 오픈소스 도구이며, 실제 기업 환경에서는 상용 도구를 주로 사용하기도 합니다. 개발 영역에서는 코드 버전 관리를 위한 도구를 주로 사용합니다. 과거에는 Subversion이라는 전통적인 도구를 많이 사용했지만, 최근에는 분산 환경에 적합한 Git을 많이 사용합니다. 빌드 영역에서는 Compile, Packaging, 단위 Testing을 위한 도구를 사용합니다. Maven은 가장 유명..

SW/DevOps 2019.11.13
반응형