애자일 방법론

Minji·2022년 11월 27일
0

기술면접

목록 보기
9/11

소프트웨어 개발 방법론

소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화 한 것.

  • 목적 ? 생산성, 품질 향상
  • 종류 : 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반(CBD)방법론, 애자일(Agile)방법론

구조적 방법론

🚩point : 구조 중심 분석/설계, 문서화, 모듈화

  • 절차 중심의 개발 방법론
  • 모듈화를 통해 기능적으로 분할하여 하향식으로 개발한다.
  • 절차 : 요구사항 분석 -> 구조적 분석 -> 구조적 설계 -> 구조적 프로그래밍

정보공학 방법론

🚩point : 자료(Data)

  • 정보 시스템의 개발을 위해 계획,분석,설계 ,구축에 정형화된 기법들을 상호 연관성있게 통합 및 적용하는 자료 중심의 방법론

객체지향 방법론

🚩point : 개체(entity) , 객체(Object), 캡슐화, 상속, 다형성

  • 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어서 개발할 때 조립하듯이 객체들을 조립해서 필요한 소프트웨어 구현하는 방법론

컴포넌트 기반(CBD)

🚩point : 컴포넌트. 재사용

  • 기존의 시스템, 소프트웨어를 구성하는 컴포넌트를 조합하여 새로운 어플리케이션을 만드는 방법

애자일 방법론

🚩point : 요구사항

  • Agile = 날렵한, 날쌘
    고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
  • 요구사항이 자주 변화하는 프로젝트에 사용하는 것이 좋다.

잘못된 생각
image

올바른 생각
image

절차

image

요구사항 분석 후 우선순위가 높은 요구사항을 먼저 개발하고 개발된 부분에 대해 피드백을 받고 이를 반영해 다음 요구사항 개발에 참고하는 것을 반복하며 개발한다.

특징

  • 고객과 개발자가 지속적으로 소통해서 변화하는 요구사항을 신속하게 수용함
  • 고객의 의견을 가장 우선시함
  • 팀원들과의 주기적인 회의 및 제품 시현하는 시간을 가진다.

장점

  • 프로젝트 계획 시간이 최소화된다.
  • 점진적으로 테스트할 수 있어서 버그를 빠르게 찾을 수 있다.
  • 계획, 기능 수정에 유연하다.

단점

  • 반복적인 유지보수 작업이 많다.
  • 팀이 중심이 되는 개발방법이라서 공통 작업의 양이 많다.
  • 계획이 확정된 상태로 개발하는 것이 아니라서 이해하지 못하고 진행하는 부분이 많을 수 있다.

종류

칸반

  • 게시판을 구성 방식에 따라 구간을 나누어 작업의 현재 상태와 흐름을 시각적으로 보여주는 방법
  • 프로젝트의 모든 참가자가 프로젝트의 진행상태를 확인 가능
  • 기본적인 구성 방식은 계획, 진행중, 완료
  • 진행 중인 일의 개수를 최소한으로 제한하는 것이 중요

TDD

  • Test Driven Development(테스트 주도 개발)
  • 구현 코드 작성 전에 테스트 코드를 작성한다.
  • 코드의 확장성, 유지보수가 용이해진다.

BDD

  • Behavior Driven Development(행위 주도 개발)
  • 테스트 케이스가 요구항이 되도록 하는 개발 방식
  • 함수단위 테스트보다는 시나리오 기반의 테스트 케이스 작성

스크럼

  • 5~9명으로 구성된 소규모의 팀이 제품 개발을 하기 위해 스프린트(Sprint)를 반복한다.
  • ❓스프린트 : 작업의 단위
  • ❓스프린트 백로그 : 스프린트 각각의 작업 목록
  • 스크럼 회의는 모든 팀원이 참가하고 짧게 진행하고 상황을 점검하는 시간

🙋‍♀️면접 질문

  • 애자일 방법론은 무엇인가?
  • 애자일하게 개발한 경험이 있는가?

출처

기술면접 - 애자일
스크럼과 애자일
회사에서 애자일하게 개발하는 법
애자일이란

profile
매일매일 성장하기 : )

0개의 댓글