[한화시스템 BEYOND SW캠프 7기] #13. SW 공학 / 폭포수 모델 / 애자일

아로롱·2024년 5월 28일

BEYOND SW CAMP 7

목록 보기
13/30
post-thumbnail

🍦 SW 공학

  • 소프트웨어 공학은 소프트웨어와 관련된 원리, 지식, 도구 등을 활용해 새로운 제품, 도구 등을 만드는 것.

🌊 폭포수 모델 (전통적인 소프트웨어 공학의 개발 과정)


계획 > 요구사항 분석 > 설계 > 구현 > 시험 및 유지 보수

  • 높은 추상화 단계에서 낮은(구체적인) 추상화 단계로 이동하는 모델.
  • man/month(해야하는 일 대비 한 달에 필요한 사람) 기반의 비용 산정
    ⇒ 일정 산정의 용이가 있으나, 비용 산정 불합리성 및 부정확함을 가짐.

1) 프로젝트 계획 : 문제 정의, 일정 계획

  • WBS(Work Breakdown Structure)가 대표적. 작업 분할 구조도.

2) 요구사항 정의 : 사용자의 요구사항 및 시스템의 기능을 문서화하는 단계.

3) 설계 : 시스템 아키텍쳐 및 소프트웨어 아키텍쳐 설계.

4) 구현 : 실질적인 프로그래밍 단계. 전체 개발 기간의 20% 정도 차지.

5) 테스팅 : 요구사항과 설계에 맞는지 점검. 전체 개발 기간의 40% 정도 차지.

6) 유지보수 : 사용 중 발생하는 여러 변동사항에 적응하며 프로그램 추가 / 수정.

  • 폭포수 개발방법론에서 나오는 아키텍처는 모놀리식

    단일 대규모 애플리케이션.
    애플리케이션의 모든 기능이 하나의 큰 시스템으로 구축되는 방식.
    • 통합된 개발 접근 : 모든 구성 요소가 하나의 코드 베이스에 통합되어 있으며, 이로 인해 소스코드가 서로 영향을 받고 배포 및 테스트가 복잡하고 어려워짐.

🤝🏻 애자일 방법론

  • 폭포수 모델 방법론 ↔ 애자일 방법론

  • 개발자들이 좋은 것을 빠르고 낭비 없이 만들기 위해 경량화된 가벼운 방법이 애자일.

  • 분석, 설계, 구현, 시험이 끊임없이 진행되는 반복 되는 순환적 개발과정.

  • 요구사항의 변화가 자주 일어나거나 개발자가 소규모인 소형 ~ 중간 사이즈의 비즈니스 시스템, 게임 소프트웨어 개발이 적합.

  • 애자일 방법론 중 하나로 스크럼(Scrum) 방식이 주로 사용. ⇒ 대표적 툴인 JIRA

    • 스크럼 : 특정 이슈를 bottom up 방식을 통해 문제를 짧은 스텝으로 해결해 나가는 과정.
    • PO(Product Owner. 전체 프로젝트 총괄), PM(Project Manager. 전체 프로젝트)(PL(Project Leader. 각 팀의 리더)), 기획자, 개발자, 디자이너 등이 스크럼의 참여자.
  • 애자일에서 나오는 아키텍처는 MSA

    독립적이고 작은 서비스들로 구성된 시스템.
    서비스는 저마다 데이터베이스를 가지며, 각 서비스마다 더 적합한 기술이 사용
    ⇒ 서비스의 수정이 발생하여도 다른 서비스로의 영향이 없거나 적기 때문에, 독립적인 개발 및 배포가 가능

    • 특정 이벤트로 대량의 트래픽이 몰릴 경우, 해당 서비스에만 컴퓨팅 리소스를 더 투입하는 스케일 아웃 전략을 적용
      • ex)
        • 스케일 업 : 컴퓨터의 스펙 UP
        • 스케일 아웃 : 컴퓨터를 한 대 더.

📌 today

대표적인 애자일 방법론인 스크럼을 JIRA 툴로 실습해보았다.
데이터베이스 프로젝트 팀원들과 함께 작성해보았는데, 혼자 정리해서 작성하는 것이 아닌
팀원들과 의견을 나눔과 동시에 작성하다보니 생각보다 정신이 없고 정리가 어려웠다🫠
실습해보면서 오프라인 부트캠프의 장점을 한 번 더 몸소 느꼈다..!
실무에서 아무 개념없이 마주쳤다면 얼렁뚱땅 익혔을 것 같다.
프로젝트를 진행하면서 이런 저런 기능들을 살펴보며 더 잘 활용할 수 있도록 해야겠다.

profile
Dilige, et fac quod vis

0개의 댓글