Close

소프트웨어 개발

소프트웨어 개발의 필수 요소 알아보기


소프트웨어는 세상을 점령했습니다. Marc Andreessen이 2011년에 "소프트웨어가 세상을 점령하고 있다"는 유명한 말을 한지 얼마 지나지 않아, 정말로 현실이 되었습니다. 오늘날의 디지털 경제에서 모든 회사는 소프트웨어 집약적입니다. Amazon은 세계 최대 규모의 소매 업체일 수 있지만 사실상 소매 회사는 아니며, 전 Amazon CEO인 Jeff Bezos는 소프트웨어 회사라고 칭했습니다. "우리 비즈니스의 핵심은 택배 상자 안에 들어있는 내용물에 관한 것이 아닙니다"라고 그는 말했습니다. "중요한 것은 바로 택배 상자를 보내는 소프트웨어입니다."

DevOps 인피니티 루프

소프트웨어 개발이란 무엇입니까?

소프트웨어 개발이란 설계, 문서화, 프로그래밍, 테스트 및 소프트웨어 결과물의 지속적인 유지 관리를 말합니다. 이와 같이 다양한 단계는 적합하게 따르는 경우 고품질 소프트웨어 결과물을 생산할 수 있는, 일련의 단계인 워크플로 파이프라인을 만드는 데 사용됩니다. 이 파이프라인을 소프트웨어 개발 수명 주기라고 합니다.

소프트웨어 개발 수명 주기에는 미묘한 차이가 있지만 일반적으로 아래에 명시된 공통적인 요소를 포함합니다.


소프트웨어 개발 수명 주기의 단계


전구와 궤도

개념

프로젝트를 구상하고, 설계하고, 우선 순위를 지정합니다. 애자일과 같은 방법론은 프로젝트의 작업 프로세스를 추진하는 데 도움이 됩니다. DevOps와 같은 관행은 개발 및 운영 과정에서 관행을 이끌어 줍니다. Confluence는 이 단계에서 제품 연구 문서를 개발하고 설계 파일을 공유할 수 있는 훌륭한 도구입니다.

간단한 워크플로

계획 + 로드맵

이해 관계자를 식별하고 예산을 설정하고 인프라를 요청합니다. 개념 단계의 설계 문서를 실행 가능한 작업으로 분류합니다. Jira SoftwareTrello는 이 작업 목록을 관리, 추적 및 구성합니다.

코드 저장

코드, 검토 및 테스트

개발 팀이 요구 사항 및 피드백을 충족하는 프로덕션에 준비된 소프트웨어를 구축하기 위해 노력합니다. CI/CD 파이프라인은 효율적인 개발자 경험을 보장합니다. Bitbucket은 공동 작업 코드 검토 도구와 코드 검토 프로세스에 플러그인 방식으로 연결하는 CI/CD 파이프라인을 제공합니다.

코드 릴리즈

배포, 릴리스 및 호스팅

코드를 승인되고 병합했으므로 이제 코드를 배포할 차례입니다. Bitbucket CI/CD 파이프라인을 사용하면 버튼을 클릭하는 것만큼 쉽게 배포할 수 있습니다. 라이브 프로덕션 코드를 실행할 곳이 필요합니다. Amazon AWS, Google Cloud Platform 또는 Microsoft Azure에서 제공하는 클라우드 호스팅을 사용해 보세요.

기어

지원, 운영 및 유지 관리

활성 소프트웨어 프로젝트에는 지원 및 유지 관리가 필요합니다. Jira Service Management는 고객 지원 요청을 캡처, 심사 및 해결할 수 있는 강력한 도구를 제공합니다.

error

인시던트 관리

인시던트 관리는 DevOps 및 IT 운영 팀이 예기치 않은 이벤트 또는 서비스 중단에 대응하고 서비스를 운영 상태로 복원하는 프로세스입니다. 팀에는 인시던트의 우선 순위를 정하고 더 빠르게 해결하며 사용자에게 더 나은 서비스를 제공하기 위한 신뢰할 수 있는 방법이 필요합니다.

소프트웨어 개발 수명 주기 전반에 걸친 관행

CI/CD

지속적인 피드백

팀은 각 릴리스를 평가하고 보고서를 만들어 향후 릴리스를 개선하고, 고객에게 제품 기능의 가치와 영향에 대한 의견을 요청하고, 이해 관계자와 비즈니스 관련 결과를 공유해야 합니다. 팀은 지속적인 피드백을 수집하여 프로세스를 개선하고 고객에게 제공하는 가치를 높일 수 있습니다.

보안

보안

소프트웨어 애플리케이션의 복잡성과 규모가 커짐에 따라 릴리스 주기 끝날 때 "통합"되는 기존 보안으로는 더 이상 소프트웨어를 안전하게 유지할 수 없습니다. 그 대신 소프트웨어 코드의 취약성을 최소화하기 위해 소프트웨어 개발 수명 주기 전반에 걸쳐 보안을 포함해야 합니다.

효과적인 소프트웨어 개발의 주요 기능


애자일

애자일은 프로젝트 관리 및 소프트웨어 개발에 대한 반복적인 접근 방식으로, 팀은 고객에게 가치를 더 빠르게 덜 복잡한 방법으로 제공할 수 있습니다. 애자일 방법론은 팀이 본질적으로 유연하고 체계적이며 변화에 대응할 수 있도록 지원하므로 소프트웨어 업계에서 매우 인기가 많습니다.

DevOps

DevOps는 소프트웨어 개발 팀과 IT 팀 간의 프로세스를 자동화하고 통합하는 일련의 관행, 도구문화적 철학입니다. 팀 지원, 팀 간 커뮤니케이션 및 공동 작업, 기술 자동화를 강조합니다.

지속적 통합 및 배포(CI/CD)

지속적 통합은 코드 변경을 소프트웨어 프로젝트에 통합하는 작업을 자동화하는 관행입니다. 개발자는 코드 변경 사항을 빌드 및 테스트를 실행하는 중앙 집중식 리포지토리에 자주 병합할 수 있습니다.

지속적 배포는 코드 변경 사항을 테스트/프로덕션 환경에 자동으로 배포하여 지속적 통합을 확대합니다. 자동화된 빌드, 테스트 및 배포를 하나의 릴리스 워크플로로 오케스트레이션하는 지속적 배포 파이프라인을 따릅니다.

마이크로서비스

간단하게 "마이크로서비스"라고도 하는 마이크로서비스 아키텍처는 분산되고 자율적으로 개발되는 독립적으로 배포 가능한 일련의 서비스로 애플리케이션을 구축하는 접근 방식입니다. 이 서비스는 느슨하게 결합되어 있으며 독립적으로 배포 가능하고 유지 관리가 쉽습니다.

개발자는 마이크로서비스 아키텍처를 사용하여 다양한 스택과 분리된 배포를 통해 서로 다른 서비스를 전문으로 하는 소규모 팀을 구성할 수 있습니다.

애자일

애자일은 프로젝트 관리 및 소프트웨어 개발에 대한 반복적인 접근 방식으로, 팀은 고객에게 가치를 더 빠르게 덜 복잡한 방법으로 제공할 수 있습니다. 애자일 방법론은 팀이 본질적으로 유연하고 체계적이며 변화에 대응할 수 있도록 지원하므로 소프트웨어 업계에서 매우 인기가 많습니다.

DevOps

DevOps는 소프트웨어 개발 팀과 IT 팀 간의 프로세스를 자동화하고 통합하는 일련의 관행, 도구문화적 철학입니다. 팀 지원, 팀 간 커뮤니케이션 및 공동 작업, 기술 자동화를 강조합니다.

지속적 통합 및 배포(CI/CD)

지속적 통합은 코드 변경을 소프트웨어 프로젝트에 통합하는 작업을 자동화하는 관행입니다. 개발자는 코드 변경 사항을 빌드 및 테스트를 실행하는 중앙 집중식 리포지토리에 자주 병합할 수 있습니다.

지속적 배포는 코드 변경 사항을 테스트/프로덕션 환경에 자동으로 배포하여 지속적 통합을 확대합니다. 자동화된 빌드, 테스트 및 배포를 하나의 릴리스 워크플로로 오케스트레이션하는 지속적 배포 파이프라인을 따릅니다.

마이크로서비스

간단하게 "마이크로서비스"라고도 하는 마이크로서비스 아키텍처는 분산되고 자율적으로 개발되는 독립적으로 배포 가능한 일련의 서비스로 애플리케이션을 구축하는 접근 방식입니다. 이러한 서비스는 느슨하게 결합되어 있으며, 독립적으로 배포 가능하고 유지 관리가 쉽습니다.

개발자는 마이크로서비스 아키텍처를 사용하여 다양한 스택과 분리된 배포를 통해 서로 다른 서비스를 전문으로 하는 소규모 팀을 구성할 수 있습니다.

소프트웨어 개발 도구


소프트웨어 개발 도구는 애자일 및 DevOps 관행 안내, 코드 관리, CI/CD를 통한 자동화 지원, 인시던트 대응, 테스트 등을 포함하여 소프트웨어 개발 수명 주기의 모든 단계를 지원할 수 있습니다.

Jira Software 로고

Jira Software

Jira는 애자일 팀에서 사용하는 최고의 소프트웨어 개발 도구입니다. Jira Software는 애자일 팀이 세계적인 수준의 소프트웨어를 자신 있게 계획, 추적 및 제공할 수 있는 프로젝트 도구입니다.

Bitbucket 로고

Bitbucket

Bitbucket은 Git 코드 관리 그 이상의 기능을 제공합니다. Bitbucket을 사용하면 여러 팀이 한 곳에서 프로젝트를 계획하고 코드를 공동으로 작성한 후 테스트하고 배포할 수 있습니다.

Compass 로고

나침반

Compass는 개발자 경험 플랫폼으로, 분산된 아키텍처를 탐색할 수 있도록 도와주며 엔지니어링 결과물에 대한 단절된 정보와 이러한 정보를 사용하여 공동 작업하는 팀원들을 중앙 집중식의 검색 가능한 위치로 모아줍니다.

Atlassian Open DevOps

Open DevOps에는 팀이 소프트웨어를 만들고 운영하는 데 필요한 모든 것이 이미 갖춰져 있습니다. Open DevOps는 Jira Software, Confluence, Bitbucket 및 Opsgenie로 시작합니다. 팀은 한 번의 클릭으로 GitHub 또는 GitLab 등 원하는 도구를 쉽게 추가할 수 있습니다.

Atlassian Open DevOps

Open DevOps에는 팀이 소프트웨어를 만들고 운영하는 데 필요한 모든 것이 이미 갖춰져 있습니다. Open DevOps는 Jira Software, Confluence, Bitbucket 및 Opsgenie로 시작합니다. 팀은 한 번의 클릭으로 GitHub 또는 GitLab 등 원하는 도구를 쉽게 추가할 수 있습니다.