고속 응용 프로그램 개발
소프트웨어 개발 프로세스 | |
---|---|
활동과 단계 | |
요구사항 분석 · 기능 명세 구조 · 설계 구현 · 테스팅 배치 · 유지보수 | |
개발 모형 | |
애자일 소프트웨어 개발 · 클린룸 DSDM · 순차점증적 개발 · 반복형 개발 RAD · RUP · 나선 모형 폭포수 모델 · 익스트림 프로그래밍 스크럼 · V 모델 · TDD | |
지원 활동 | |
구성 관리 · 문서화 품질보증 · 프로젝트 관리 사용자 경험 설계 | |
도구 | |
컴파일러 · 디버거 · 프로파일러 GUI 디자이너 · 통합 개발 환경 | |
고속 응용 프로그램 개발(高速 應用 프로그램 開發, 영어: Rapid Application Developement, RAD) 또는 고속 응용 프로그램 개발 도구(Rapid Application Development Tool)는 소프트웨어 개발 방식의 하나로, 빠르고 쉽게 응용 프로그램을 만들 수 있는 시각적 도구이다. 통합 개발 환경과 같은 높은 기능의 개발 환경을 사용하는 프로그래밍의 자동화나, 시각적인 사용자 인터페이스의 설계, 모듈개발 등의 기능을 포함하고 있다.
GUI를 사용하는 일반 소프트웨어 개발의 경우, 고속 개발 도구가 아닌 개발 도구를 이용하여 개발할 경우 창 하나를 보여 주는 것만으로도 상당한 양의 원시 코드가 필요하다. 그러나 고속 개발 도구, 이를테면 델파이 나 비주얼 베이직, C++빌더 등을 이용하면 원시 코드를 프로그래머가 짜지 않아도 창을 만들어 낼 수 있다.
또, 창에 단추나 문자열 상자를 삽입하고 처리할 때, 핸들을 얻는 것부터 속성의 설정, 창 메시지의 처리까지 모두 프로그래머가 하나 하나 소스를 짜야 하지만, 고속 개발 도구와 같은 소프트웨어를 사용하면 이러한 처리를 개발 도구가 자동적으로 추가해 준다. 다시 말해, 많은 소프트웨어에 공통으로 처리하는 소스를 직접 짜지 않아도 자동으로 기능을 추가해 주는 것이 고속 개발 도구이며, 프로그래머는 각 소프트웨어에 필요한 저만의 기능에 대한 소스만을 짜면 된다. 그 결과, 프로그램의 개발이 쉬워진다.
이러한 고속 개발 도구에도 단점은 존재한다. 이를테면, 개발된 소프트웨어의 동작 속도가 느려지거나 실행 파일의 크기가 커질 수 있다는 점이다. 그러나 이러한 단점들은 어떠한 개발 소프트웨어를 사용하냐에 따라 달라질 수 있으며, 모든 프로그램에 해당되는 단점은 아니다. 또한, 그래픽 사용자 인터페이스의 설계 이외의 작업이 많은 소프트웨어를 개발하는 경우 고속 개발 도구가 갖는 장점을 충분히 발휘할 수 없다.
역사
[편집]고속 응용 프로그램 개발은 SSADM, 폭포수 모델과 같이 1970년대~1980년대에 개발된 프로세스에 대한 반응의 하나이다. 이러한 방식들의 문제들 가운데 하나는 이들이 다리와 건물과 같은 물체들을 설계하고 만드는 전통적인 공학 모델에 기반을 두고 있다는 것이다. 소프트웨어는 본질적으로 다른 종류의 인공물이다. 소프트웨어는 문제 해결에 사용되는 모든 프로세스를 빠르게 바꿀 수 있다. 그 결과, 개발 프로세스 그 자체로부터 얻은 지식은 해결책의 요구사항 및 설계에 의견을 반영할 수 있다.[1] 이에 대한 폭포수 해결책은 이것들을 구현하기 위한 요구사항과 계획을 엄격하게 정의하고 시도하는 것으로, 어느 족이든 변화를 주는 것이 난해한 프로세스를 가지고 있다. 한편, 새로운 RAD 접근은 소프트웨어 개발이 지식 중점 프로세스라는 것을 인지시켜 주었으며 프로젝트의 수명에 대한 지식을 이용하고 이 지식을 해결책 재발명을 위해 사용할 수 있는 유연한 프로세스 개발을 추구할 수 있게 하였다.
최초의 RAD의 대안은 Barry Boehm이 개발하였으며 스파이럴 모델로 알려져 있다. Boehm과 다른 차기 RAD 접근들은 엄격한 설계 사양 대신에 프로토타입 개발을 강조하였다. 프로토타입들은 전통 사양에 비해 여러 이점이 있다:
- 위험 감소
- 사용자는 사양을 작성하는 일 보다 이용 및 반응을 더 잘 할 수 있다.
- 프로토타입들을 사용할 수 있으며 완전한 제품으로 발전시킬 수 있다.
고속 개발 도구
[편집]대표적으로 다음과 같은 도구를 사용한다.
추가 문헌
[편집]- Kerr, James M.; Hunter, Richard (1993). 《Inside RAD: How to Build a Fully-Functional System in 90 Days or Less》. McGraw-Hill. ISBN 0070342237.
- Steve McConnell (1996년). Rapid Development: Taming Wild Software Schedules, Microsoft Press Books, ISBN 978-1-55615-900-8
- Ken Schwaber (1996년). Agile Project Management with Scrum, Microsoft Press Books, ISBN 978-0-7356-1993-7
- Steve McConnell (2003년). Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers, Microsoft Press Books, ISBN 978-0-321-19367-4
- Dean Leffingwell (2007년). Scaling Software Agility: Best Practices for Large Enterprises, Addison-Wesley Professional, ISBN 978-0-321-45819-3
같이 보기
[편집]각주
[편집]- ↑ Brooks, Fred (1986). Kugler, H.J., 편집. 《No Silver Bullet Essence and Accidents of Software Engineering》 (PDF). Information Processing '86. Elsevier Science Publishers B.V (North-Holland). ISBN 0-444-70077-3. 2014년 7월 2일에 확인함.