데브코스 TIL

3주차 - 4 [특강] 소프트웨어 개발 방법론 1

터칭 데이터 2023. 11. 2. 14:01

개발 단위의 사이클이 짧아지며(스프린트) 애자일 개발(Agile Development) 방법론이 부상

 

급변하는 시장 상황과 빈발하는 서비스 문제에 유연하고 빠른 대처가 가능하고

회의로 소요되는 시간을 최소화할 수 있다.

단 팀을 이끄는 누군가가 해당 서비스의 성공을 위한 작업, 과제가 무엇인지 정리를 해두어야 한다.

이를 (Backlog) Grooming이라 한다.

 

 

 

스프린트 시, 전체적인 과정 조망

 

JIRA, TRELLO, 경우에 따라서는 화이트보드 등의 도움을 받아

할 일(To do), 진행중(In progress), 테스팅(Testing), 리뷰(Review)로 나누어 관리

 

 

플래닝

 

백로그,

포인트: 일의 경중과 복잡도를 명확하게 표시하는 숫자,

어떤 경우가 성공인지 정의 등이 필요

 

 

포인트 제도

특정 업무를 완료하는데 얼마나 시간이 소요될지를 숫자로 표현

예를 들어 포인트 1의 업무를 개발자 한명이 하루를 투자해야 할 수 있는 업무라고 가정한다.

팀원들이 모여 업무 A가 얼마의 포인트일지 포커와 같이 제시하도록 한다.

제시된 포인트가 1~20 등 극단적으로 의견이 나뉘었다면 서로 의견을 나누어 방법론을

공유하고 사고를 확장할 수 있다.

포인트 제도와 포인트 포커는 팀원들 간의 아이디어 공유에 크게 도움이 되므로 강권

 

스탠드업 미팅

 

쓸데없는 시간 소요를 최소화하는 것이 핵심

간결하고 명확하게

 

 

소스 버전 컨트롤

 

개발의 핵심인 백업과 안정성 확보를 개인 단위에서 팀 단위로도 손쉽게 할 수 있도록하여 안정성을 높일 수 있다.

대표적인 것이 그 유명한 Git/Github

 

 

좋은 코드 리뷰 방법

 

코드 리뷰를 요청하는 경우

코드를 모두 작성한 뒤 한번에 리뷰할 것을 요청하기 보다는 조금씩 나누어 자주 요청할 것

코드가 어떤 이유로 작성되었는지 문맥(Context)를 주석 등으로 설명하는 것 역시 중요

코드에 대한 수정 요청과 지적을 너무 개인적으로 받아들이지 말자

 

코드 리뷰를 하는 경우

코딩 스타일(ex. 변수를 통일해라) 보다는 코드 그 자체에 대한 리뷰를 제공할 것

리뷰를 요청한 이에 대해 기본적인 예는 갖추고 조언하자

 

 

 

Test Driven Development

 

unit test

모듈의 특정 기능(함수) 테스트

일반적으로 가장 많이 진행되는 테스트

 

integration test

여러 모듈을 통합하여 진행하는 한 차원 위의 테스트

 

 

빌드

개발한 소프트웨어를 최종적으로 출시하기 위해 변환시키는 과정

 

CI(Continuous Integration)

매 코드 변경시 테스트를 진행

 

빌드 실패시?

더 이상의 코드 변경을 멈추고 어느 시점에 누군가에 의해 문제가 생겼는지 확인해야 한다.

덕분에 규모가 큰 조직일수록 막대한 손해

 

Jenkins

CI와 관련된 모든 기능을 제공