카카오x구름 풀스택/특강

[250106] 이슈 트래커 협업 생산성 도구

꾸주니=^= 2025. 1. 7. 15:01

소프트웨어 개발 방법론에 의한 이슈 트래커, 협업 도구, 생산성 도구 기초

목차
> 소프트웨어 개발 방법론
> 애자일(Agile), 스크럼(Scrum), 칸반(Kanban)
> 익스트림 프로그래밍(XP), 데브옵스(DevOps)
> 칸반과 데브옵스 결합

 


소프트웨어 개발 방법론

- 소프트웨어를 생산하는 데에 필요한 프로그래밍 개발 과정들을 표준화하여 프로그래머들이 프로그래밍 개발 과정에서 각 개인이 개발 과정에서 일관성을 유지하고 프로그래머들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론

- 소프트웨어를 어떻게 만들지에 대해 관심을 가지며 단계별 산출물 뿐만 아니라 산출물은 누가 어떤 순서로 어떻게 만들어야 하는지 그리고 어떤 도구를 사용해야 하는지 구체적으로 정의

- 소프트웨어 개발에 필요한 반복적인 과정(절차, 방법, 산출물, 기법, 도구)들을 체계적으로 정리

 

SW 개발 방법론의 주요 구성

 

SW 개발 방법론 상세 주요 항목

 

용어 설명

  • R&R(Roles And Responsibilities) : 역할 
  • 요구사항정의서 : 고객의 요구사항을 정리한 내용(요구사항 명세서, 요구사항 기술서 등)
  • QA(Quality Assurance) : 품질 보증 : 테스트를 통해 검증 
  • QC(Quality Control) : 품질 관리 : 불량품 찾기
  • ERD(Entity Relationship Diagram) : 데이터베이스 내의 개체와 관계를 시각화
  • DFD(Data Flow Diagram) : 데이터 흐름도(소프트웨어 내의 각 프로세스)
  • CD(Continuous Delivery, Deployment) : 지속적 배포  
  • CI(Continuous Integration) : 지속적 통합 -> CI/CD : 지속적 통합 배포, DevOps 엔지니어링의 핵심업무
  • CASE tool(Computer Aided Software Engineering tool) : 소프트웨어를 개발하는데 사용하는 자동화 도구 
  • UML(Unified Modeling Language) : 소프트웨어 공학에서 사용되는 표준 범용 모델링 언어   

 


주요 소프트웨어 개발 방법론 유형

1. 구조적 방법론(~1970s) – Top-Down 방식

  • 폭포수 모형이 대표적이며, 단계별 문서화와 검증을 강조합니다
  • 요구사항 분석 - 설계 - 프로그래밍 - 검증 및 유지보수
  • NASA의 아폴로 우주선 프로젝트, IBM의 OS/360 운영체제, 미국 국방부 소프트웨어 개발 프로젝트

 

2. 정보공학 방법론(~1980s) – 기업 전체, 주요부분을 계획, 분석, 설계, 구축

  • 데이터 중심적 관점에서 설계를 강조하며, 데이터의 일관성과 효율성을 높입니다.
  • 정보시스템에서 경영정보 시스템MID(Management Information System)으로 전환
  • IBM의 BSP(Business Systems Planning), ERP(Enterprise Resource Planning)시스템 프로젝트

 

3. 객체지향 방법론(~1990s) – ‘객체’ 라는 기본 단위 시스템 분석

  • 객체들의 상호작용과 협력에 중점을 둔 방법론으로, 
  • 코드 재사용성이 높고 시스템 확장에 유연합니다.
  • CASE Tools을 사용한 UML사용 소프트웨어 개발과정의 일부 또는 전체를 자동화
  • Smalltack 시스템, C++ 로 개발된 CAD 시스템, Java 기반의 EJB(Java Enterprise Edition) 프로젝트 

 

4. 컴포넌트 기반 개발(CBD)(~1990s) – MSA 로 발전

  • 시스템을 독립적인 컴포넌트로 분할하여 개발하는 방식으로, 
  • 재사용성과 유지보수성이 향상됩니다.
  • 이전의 monolithic 방식에서 Component Based Development 전환
  • Microsoft OS, Microsoft Office, EJB, SAP ERP, .NET Framework


5. 애자일 방법론(~2000s) – 절차보다 사람 중심

  • 변화에 유연하게 대응하고 고객의 요구를 우선시하는 방법론으로, 
  • 빠른 피드백과 적응이 가능합니다.
  • 기존과는 다르게 작은 주기(4 ~ 5주)로 프로토 타입을 만들어 지속적 피드백
  • Netflix 추천 알고리즘, IBM DevOps Transformation, Facebook 기능 개발, Zara의 인벤토리 관리 시스템 



6. 데브옵스(DevOps)(~2010s) - 개발문화의 변화

  • 개발(Development)과 운영(Operations)의 통합을 강조하며, 
  • CI/CD 자동화를 통해 빠른 배포와 협업 강화를 실현합니다
  • Netflix 플랫폼, AWS(Amazon Web Services), Google Kubernetes 프로젝트, Facebook 애플리케이션 배포 시스템, 
  • Microsoft Azure DevOps Services, GitHub Actions

 


칸반(Kanban)

  • 비즈니스 프로세스를 시각화와 병목 현상을 해결하여 프로세스 효울성을 극대화하는 방법론으로 소프트웨어 개발 외에도 다양한 분야에서 활용
  • 작업의 시각화
    • 작업 항목을 칸반 보드에 표시
    • 각 작업 상태(예 : To Do, Doing, Done)를 한눈에 확인
  • WIP 제한(Work In Process Limit)
    • 동시에 진행할 수 있는 작업 수를 제한(한 사람이 동시에 처리할 작업은 1~2개로 설정)
    • 팀이 여러 작업을 동시에 진행하며 겪는 비효율성을 줄임 (칸반 보드 단계별로 작업량이 다르므로 단계별 WIP 제한을 다르게 설정한다.)
  • 흐름 관리
    • 작업이 칸반 보드에서 원활히 진행되도록 최적화
    • 작업 주기 시간(Cycle Time)을 줄이고 낭비를 제거
  • 지속적인 개선
    • 팀 프로세스를 지속적으로 모니터링하고 개선
  • 칸반 보드의 구성
    • 열 : 작업의 상태를 나타냄 (예 : backlog, in process, review, done)
    • 카드 : 특정 작업이나 기능을 나타내는 단위
    • 수평선(Swimlane) : 작업을 분류하는 기준
  • 칸반의 장점
    • 작업 흐름을 쉽게 시각화
    • 병목 현상을 빠르게 식별하고 해결
    • 팀의 작업 속도 개선
    • 유연성과 투명성 제공
  • 칸반 보드 예시

 


애자일, 스크럼, 칸반, XP, DevOps 비교

 

각 방법론 선택 시 고려 사항

  • 스크럼 : 정해진 팀 구조와 반복 주기를 따를 수 있는 환경에서 적합.
  • 칸반 : 작업 흐름 최적화가 중요한 환경(예: 지속적 작업 흐름 유지)
  • XP : 개발 품질이 매우 중요한 팀(특히 코드 중심 개발)
  • DevOps : 빠른 배포 및 지속적 피드백 루프가 중요한 조직 
  • 애자일 : 철학적인 유연성이 필요한 모든 상황에서 시작점.
  • 각 접근법을 상호보완적으로 사용할 수도 있음. 

 

칸반 실습 해보기

https://trello.com/u/user80535122/boards