본문 바로가기
Python

[Term] Agile Programming Language : Agile Development (=Programming)

by ds31x 2024. 1. 6.

Agile Programming Languages

Agile Development Approach에 적합한 프로그래밍 언어를 가르킴.

 

빠르게 시작품을 만들어서 사용자의 피드백을 받을 수 있는 개발 방식에 적합해야하기 때문에 다음의 특징을 가짐.

  • High-Level Abstraction (높은 수준의 추상화)
    • 높은 수준의 abstractionconcise code writingrapid development cycle을 가능하게 함.
    • oop 를 지원하는 프로그래밍 언어의 경우, object를 통해 복잡한 문제를 abstraction이 가능함.
  • concise code writing (간결한 코드 작성)
    • Concise code writing 은 code 의 가독성(readability)과 유지보수성(easy maintain)을 높임.
    • Python은 concise syntax와 다양한 built-in function을 제공하여 이를 지원함.
  • rapid development cycles (빠른 개발 주기)
    • 빠른 개발 주기는 agile development approach의 핵심임.
    • 빠른 시제품 개발과 테스트가 반드시 가능해야함.

대표적으로는 PythonRuby 가 Agile Programming Language로 알려져 있음.

 

일반적으로 Agile programming languages는 다음과 같은 native data structures 를 제공함.

  • List or Array
    • 순서가 있는 데이터 집합을 저장.
  • Dictionary or Hash Table
    • 키-값 쌍으로 데이터를 저장하는 구조.

Agile Development Approach

Agile Development Approach (애자일 개발 방식)은

flexibility(유연성) 와 rapid response(빠른 피드백)를 강조하는 일종의 methodology로서

  • 프로젝트 요구사항과 환경 변화에 유연하게 대응할 수 있는 개발 방식
  • 프로젝트를 작은 단위의 작업(smaller stages or tasks)으로 나누고,
  • 각 작업을 반복적으로 수행하면서 점진적으로 완성해 나가는 방식.

예 : 새로운 웹사이트를 만드는 프로젝트

전통적인 개발 방식(= Waterfall model)의 경우,

모든 기능을 완벽하게 계획(=설계)한 뒤에 개발에 착수함.

  • Waterfall model에서는 초기 설계 단계에선 변경이 어렵고,
  • 모든 것이 완성될 때까지 사용자의 피드백을 받기 어려움.

Agile development approach 의 경우,

작은 기능부터 시작해서 웹사이트를 조금씩 점진적으로 구축해 나감.

  • 처음에는 기본 홈페이지만 만들고,
  • 그 다음에 사용자 로그인 기능을 추가하고,
  • 이후에 다른 기능들을 차례로 추가함.
  • 각 단계에서 사용자의 피드백을 받으며,
  • 각 피드백에 대한필요한 변경을 빠르게 적용할 수 있음.

Pros of Agile Development Approach

  1. 프로젝트가 더 유연하게 진행될 수 있고,
  2. 중간에 요구사항이 변경되더라도 이에 빠르게 대응할 수 있음.
  3. 또한, 작은 단계마다 성과를 볼 수 있어 프로젝트 진행에 대한 동기 부여도 됨.