[SW설계] SW 개발을 성공하기 위한 Best Practices 작성

CS·2025년 6월 14일

SW설계

목록 보기
2/13

1️⃣ CI/CD 파이프라인과 정적분석 자동화 관리

핵심 개념 :
빌드, 테스트, 배포 과정을 자동화하고, 코드 품질을 사전에 검증해 지속 가능한 소프트웨어 개발을 실현하는 전략

필요성 :

  1. 반복적인 빌드·배포 작업과 수동 테스트는 비효율적이고 오류 발생 가능성이 높음.
  2. 정적분석을 수작업으로 진행하면 품질 검증이 불규칙하며, 잠재적 버그를 놓칠 수 있음.
  3. CI/CD와 정적분석 자동화를 통해 코드 품질 확보, 배포 속도 향상, 빠른 피드백 루프를 제공할 수 있음.

실행 방법 :

  • Jenkins로 CI/CD 파이프라인 구축 (빌드, 테스트, 배포 자동화)

  • GitHub Push 이벤트, Merge 트리거 설정

  • SonarQube, MISRA C 등 정적분석 도구 연동

  • Slack, 이메일 알림 시스템 연계

  • Jenkinsfile로 단계별 작업 정의


2️⃣ 스크럼(Scrum)

핵심 개념 :
짧은 반복 주기(Sprint)를 통해 제품을 점진적으로 개발하며, 피드백과 협업 중심으로 운영하는 개발 프레임워크

필요성 :
1. 요구사항 변경과 불확실성에 유연하게 대응
2. 진행 상황 공유 부족으로 인한 혼선 예방
3. 개발 완료 전 결과물 부재로 인한 일정 지연 방지

실행 방법 :

역할 구성: Product Owner, Scrum Master, 개발팀
주요 이벤트: Sprint Planning, Daily Scrum, Sprint Review, Retrospective
백로그 관리: Product/Sprint Backlog 작성 및 우선순위 정리
협업 도구: Jira, Trello 등 활용


3️⃣ 시작 전 계획 수립(Planning)

핵심 개념 :
명확한 요구사항 정의와 프로젝트 진행을 위한 정보·계획 수립

필요성 :
요구사항 정의를 통해 고객과의 소통 용이, 프로젝트 방향성 확보, 효율적인 진행 가능

실행 방법 :

  • 고객과의 적극적인 소통을 통해 요구사항 파악
  • 프로젝트 일정 수립
  • 유사 프로젝트 조사 및 비교, 사전 자료 조사

4️⃣ 기능 분리 기반 Git Branch 전략과 Pull Request 협업
핵심 개념 :
기능 단위로 브랜치를 나누고, Pull Request(PR) 기반으로 코드 통합과 리뷰를 진행해 코드 품질과 협업 효율성을 높이는 전략

필요성 :
1. 하나의 브랜치에서 동시에 작업 시 충돌과 오류 발생 위험 증가
2. 리뷰 없는 병합은 성능 저하, 버그 발생, 신뢰도 저하 위험
3. 체계적인 브랜치 전략과 PR 협업은 코드 품질 유지, 팀워크 향상, 작업 투명성 확보

실행 방법 :

  • main 브랜치는 항상 안정 상태 유지
  • 기능별로 feature/..., fix/... 브랜치 생성
  • 작업 완료 후 PR 생성 → 코드 리뷰 → 병합
  • GitHub PR 기능과 코멘트 활용, 리뷰 기준 명확화 (성능, 품질, 재현성)

추가적인 Best Practice :

  1. Class Diagram, Sequence Diagram, Module 관계 Diagram 작성
  2. 요구사항 기반으로 시스템 구조, 인터페이스까지 가시화하여 명확한 구조 이해와 소통 용이성 확보
  3. 블랙박스/화이트박스 테스트 수행
  • 블랙박스: 경계값 분석, 동등 분할 테스트
  • 화이트박스: 코드 커버리지 분석
    → 테스트로 오류 조기 발견 및 품질 강화
  • 모듈의 높은 응집도, 낮은 결합도 유지
    → 유지보수성 향상, 데이터 무결성 보장
  • 아키텍처 및 코드 표준 준수
    → 플랫폼/언어의 표준 가이드에 맞춘 개발 습관화, 코드 품질과 유지보수성 향상
profile
학습

0개의 댓글