본문 바로가기
CS(Computer Science)/소프트웨어공학

1.SW development models

by 동욷 2023. 2. 6.

<1> Waterfall model(폭포수 모형)

Requirement( + Analysis) (요구분석)

Design (설계)

Implement (구현)

Test (시험)

Deploy (배포)

 

Maintenance (유지보수)

문제점

1) High Risk

2) Uncertainty(불확실성)

3) 최종 단계에 가서야 동작하는 SW가 생성됨

4) 테스트 단계에서 단점이 발견되어도 수정하기 어려움

5) Requirement 자주 변경되는 SW에 적용하기 어려움

6) 복잡한 SW 개발에 부적절

7) Object Oriented 프로젝트에 부적절

<2> Agile Methodology (애자일 모형)

Waterfall 모델을 개선하려고 전체 개발 프로젝트를 여러 단계의 iteration으로 나눈 것

각 iteration의 소요시간은 동일해야 하고, 보통 2~8주이다.

각 iteration마다 정해진 기능이 동작하는 SW가 생성된다

하지만 Agile 모델 역시 완전히 이상적인 Methodology는 아님,

사실은 이상적인 methodology를 찾지 못하는 것이 아니라 당시의 개발 기술의 수준에

맞추어 적용할 수 있는 개발 방법론을 갖춘것이다.

-> 구현 기술을 근거로 개발 방법론을 만드는 것은 피해야 한다.

2005~2015년 개발 방법론

CI/CD : continuous integration / continuous delivery(deploy)

더 자주 더 신뢰성 높은 수정된 코드를 deploy 할 수 있도록

DevOps 팀이 SW를 구현하는 방법론

Dev : Development Team

Ops : Operations Team

Plan -> CODING -> BUILD -> TEST -> RELEASE -> DEPLOY -> OPERATE -> MONITOR -

| (DEV) | | (OPS) |

<----------------------------------------------------------------------------------------------------------------------- 

DevOps 팀

PLAN , CODING : GIT

BUILD : Maven

TEST : Selenium

CI ( Continuous Integration) : Jenkins

DEPLOY, OPERATE

: Docker ( Containerization)

Puppet, Ansible (Configuration manager)

kubernetes : Docker container orchestration manager

MONITOR : Nagios

일하는 방식

1) Continuous Development

  • Version Control : Git, SVN
  • Automatic builder/packager to executable : Maven, Ant, Gradle

2) Continuous Testing

  • Selenium

3) Continuous Deployment

  • 실행 파일을 특정 서버(테스팅 서버, production 서버)에 배포
  • Containerization( vs VM) - Docker + Docker Swarm , kubernetes
  • Configuration management(형상관리) - Puppet, Ansible

4) Continunous Monitoring - 네트워크 모니터링과 배포된 소프트웨어의

버그 및 사용자로부터의 feedback 수집 - Naigos

5) Continous Integration - 위 모든 SW lifecycle의 도구들을 연합하고 연속적이고 자동적으로

각 작업이 수행되도록 함, 모든 위 도구들과 연동

  • Jenkins - 300개 이상의 plug-ins
  • cf) Kubernetes - Docker container orchestration manager (vs docker swarm)
728x90

'CS(Computer Science) > 소프트웨어공학' 카테고리의 다른 글

6. Network Virtualization  (0) 2023.02.06
5. Docker3  (4) 2023.02.06
4. Docker2  (0) 2023.02.06
3. Docker  (0) 2023.02.06
2.Git/Github  (0) 2023.02.06