소프트웨어 개발

소프트웨어 개발(Software development)은 소프트웨어의 기능과 동작을 기획·설계하고 이를 구현·검증하여 사용 가능한 프로그램이나 시스템으로 제공하는 활동이다. 소프트웨어 공학이 소프트웨어 시스템의 개발과 운영에 공학적인 원칙을 적용하는 분야라면, 소프트웨어 개발은 요구사항...

영문명Software development
분류소프트웨어 공학, 기술 활동
주요 활동요구사항 분석, 설계, 구현, 검증, 배포, 유지보수
관련 개념소프트웨어 생명주기, 프로그래밍, DevOps
대상시스템 소프트웨어, 응용 소프트웨어, 서비스

소프트웨어 개발(Software development)은 소프트웨어의 기능과 동작을 기획·설계하고 이를 구현·검증하여 사용 가능한 프로그램이나 시스템으로 제공하는 활동이다. 소프트웨어 공학이 소프트웨어 시스템의 개발과 운영에 공학적인 원칙을 적용하는 분야라면, 소프트웨어 개발은 요구사항에서 실제 구현과 전달에 이르는 기술적·실무적 과정을 가리키는 폭넓은 용어다.

개발 과정에는 프로그래밍, 인터페이스와 데이터 모델 설계, 코드 검토, 테스트, 빌드와 배포가 포함될 수 있다. 제품의 목적에 따라 운영체제나 컴파일러와 같은 시스템 소프트웨어를 개발하거나, 게임 엔진, 그래픽 편집기, 웹 애플리케이션과 같은 응용 소프트웨어를 개발한다.

소프트웨어 개발 활동은 소프트웨어 생명주기 안에서 반복되며, 폭포수 모델, 애자일 소프트웨어 개발, DevOps 등 다양한 개발·운영 접근과 결합된다. 개발에 사용되는 언어, 프레임워크, 라이브러리와 도구를 관련 문서로 연결하면 소프트웨어 제품과 기술 기반 사이의 관계를 추적할 수 있다.

역사

초기 프로그래밍

소프트웨어 개발 도구의 발전

대규모 개발과 협업

현대 소프트웨어 개발

개발 과정

요구사항 분석

아키텍처와 설계

구현과 프로그래밍

테스트와 검증

빌드와 배포

운영과 유지보수

개발 방법

폭포수 모델

반복·점진적 개발

애자일 소프트웨어 개발

DevOps

개발 도구

프로그래밍 언어

통합 개발 환경

버전 관리

컴파일러와 빌드 도구

디버거와 프로파일러

테스트 도구

소프트웨어 구성

라이브러리

프레임워크

API

데이터와 파일 형식

개발 분야

시스템 소프트웨어

응용 소프트웨어

게임 개발

웹 개발

임베디드 개발

프로젝트 관리와 협업

보안과 품질

관련 문서