카테고리 없음

[CS/기술면접] 개발 방법론 (Development Methodology)

보리시스템 2023. 4. 19.
개발 방법론 (Development Methodology)에 대해 설명해보세요.

 

1. 한마디 정리

소프트웨어를 개발하고 유지보수하는데 사용되는 일련의 절차와 프로세스로
대표적으로 폭포수 모델, 프로토타입 모델, 애자일, 스크럼 등이 있습니다.

소프트웨어 개발 방법론은 개발 프로세스를 구조화하고 팀 간의 협력을 촉진하며, 소프트웨어의 품질을 향상시키는 데 중요한 역할을 합니다.


이 외에도 다양한 소프트웨어 개발 방법론이 존재합니다. 각각의 방법론은 특정한 상황에 적합하며, 팀의 역량과 프로젝트의 특성을 고려하여 선택하는 것이 중요합니다.

 

2. 내가 생각한 꼬리질문

1) 해당 방법들에 대해 설명해주세요

폭포수 모델(Waterfall Model)
일련의 단계를 순차적으로 진행하며, 이전 단계의 결과물이 다음 단계의 입력으로 사용됩니다.단계적인 진행으로 전체 개발 과정을 예측 가능하게 하지만, 변경 사항을 수용하기 어렵습니다.

프로토타입 모델(Prototype Model)
초기 개발 단계에서 사용자의 요구 사항을 파악하고 이를 바탕으로 프로토타입을 제작하는 방식입니다.사용자의 요구 사항을 빠르게 파악하고 이에 따른 개발을 진행할 수 있지만, 추가 개발이 필요한 경우 프로토타입을 수정해야 하는 단점이 있습니다.

애자일(Agile)
변화하는 환경에서 유연하게 대처하기 위해 탄생한 방법론으로, 작은 주기로 개발을 진행하며, 빠른 개발과 출시를 지향합니다.사용자와의 상호작용을 강조하며, 지속적인 개선과 변경에 대응하기 쉽습니다.

스크럼(Scrum)
애자일 방법론 중 하나로, 작은 개발팀을 구성하고 일정한 주기로 개발을 진행하는 방식입니다.일정한 주기로 개발하며, 이를 위한 계획과 회의를 통해 프로젝트를 진행합니다.

 

2) 각 모델별 장점과 단점을 설명해주세요.

방법론 장점 단점
폭포수 모델 - 개발 과정을 체계적으로 계획하고 추적할 수 있음
- 전체 개발 프로세스를 미리 예측하고 계획 가능
- 변경 사항을 수용하기 어려움
- 사용자의 요구 사항을 변경하기 어려움
프로토타입 모델 - 초기 요구 사항 파악이 용이함
- 사용자의 요구 사항을 빠르게 파악할 수 있음
- 수정 및 변경이 쉬움
- 프로토타입 수정 및 관리에 대한 추가 비용 발생 가능
- 기능 변경으로 인한 통합 테스트 필요
애자일 - 빠른 개발 및 출시 가능
- 사용자의 요구 사항에 신속히 대응 가능
- 지속적인 개선 및 변경에 대응하기 쉬움
- 일정 관리가 어려울 수 있음
- 팀 구성원의 역량에 따라 품질에 차이가 있을 수 있음
스크럼 - 일정한 주기로 개발을 진행함으로써 개발 프로세스 예측이 가능함
- 팀 내부 협력 및 커뮤니케이션 강화
- 변경에 대한 대응이 용이함
- 팀 구성원이 효율적으로 동작하지 않으면 개발이 지연될 수 있음
- 적극적인 참여와 자기조직화가 필요함

 

3) 소프트웨어 개발 방법론이 필요한 이유는 무엇인가요?

소프트웨어 개발 방법론은 소프트웨어 개발 프로세스를 체계화하고 개발 과정을 효율적으로 관리하며, 품질을 향상시키고 비즈니스 목표를 달성하는 데 큰 역할을 합니다.

1. 개발 프로세스의 체계화
개발 방법론은 소프트웨어 개발을 단계적이고 체계적인 방법으로 수행하도록 도와줍니다. 이를 통해 개발 과정에서 필요한 작업들을 순서대로 수행하고 관리할 수 있습니다.

2. 품질 향상
개발 방법론은 소프트웨어 개발 과정에서 품질을 향상시키는 방법을 제공합니다. 예를 들어, 테스트와 코드 리뷰를 통해 버그를 미리 발견하고 수정하여 소프트웨어의 품질을 향상시킬 수 있습니다.

3. 프로젝트 관리의 용이성
개발 방법론을 사용하면 개발 과정을 관리하고 모니터링하기 쉬워집니다. 일정, 예산, 인력 등을 효율적으로 관리하여 프로젝트를 성공적으로 완료할 수 있습니다.

4. 비즈니스 목표 달성
개발 방법론은 비즈니스 목표를 달성하는 데 필요한 소프트웨어 개발 과정을 최적화하는 데 도움을 줍니다. 비즈니스 목표에 맞게 소프트웨어를 개발하면서, 시장에서 경쟁력 있는 제품을 출시할 수 있습니다.

5. 효율적인 개발
개발 방법론을 사용하면 개발자들은 보다 효율적으로 개발을 수행할 수 있습니다. 일관된 개발 프로세스와 작업 방법을 사용함으로써 생산성을 높일 수 있습니다.