들어가며
페어프로그래밍 중 스프린트를 느껴보는 경험을 했습니다. 간단한 알고리즘인 자바 선 정렬을 팀원과 함께 5분씩 번갈아가며 설명하고 나머지 사람은 그에 따라 코드를 작성하는 방식이었습니다.
결과물
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
// 배열의 각 원소를 순회하면서 가장 작은 원소를 찾아서 해당 인덱스와 현재 인덱스의 값을 교환
for (int i = 0; i < n - 1; i++) {
int minIndex = i; // 현재까지의 최솟값이 있는 인덱스
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 최솟값이랑 현재 인덱스랑 교환 (한 줄로 처리)
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
public static void main(String[] args) {
int[] arr = {64, 25, 12, 22, 11};
selectionSort(arr);
System.out.println("Sorted array:");
for (int i : arr) {
System.out.print(i + " ");
}
}
}
이번 페어프로그래밍 경험을 통해 자바 선 정렬을 구현하는 과정에서 여러 가지를 느꼈습니다.
먼저, 팀원과의 협업을 통해 코드를 작성하는 것은 개발 과정에서 매우 중요하다는 것을 깨달았습니다. 서로의 생각을 공유하고 의견을 조율하며 문제를 해결하는 과정에서 더 나은 코드를 작성할 수 있었습니다.
개선한 점
업무 분배에 있어서 명확한 역할 분담을 실현했습니다!
이로 인해 일부 작업이 중복되거나 일부 기능이 누락되는 등의 문제가 발생하지 않았습니다. 각자의 역할과 책임을 명확히 정의하고 업무를 분배하는 것이 중요하다는 것을 배웠습니다.
개선할 점
시간 관리 역시 중요한 문제였습니다. 이번에는 코드 작성에 너무 집중하여 정해진 시간 동안 휴식을 취하지 않았습니다. 효율적인 시간 관리를 위해 페어프로그래밍 세션에서는 작업 시간과 휴식 시간을 명확히 구분하고 계획을 세우는 것이 필요하다는 것을 느꼈습니다.
마지막으로, 페어프로그래밍의 가치에 대해 다시 한번 생각해보게 되었습니다. 진정한 스크럼의 가치는 서로 협력하여 공동의 목표를 달성하는 것이라고 생각합니다. 따라서 페어프로그래밍을 통해 서로의 발전을 도모하는 것 뿐만 아니라, 팀 내 협력과 신뢰를 증진시키는 것이 중요하다고 생각합니다.
이번 경험을 통해 더 나은 페어프로그래밍을 위해 노력하고자 합니다. 좋은 개발 관행을 준수하여 페어프로그래밍을 더욱 효과적으로 수행하고, 팀원 간의 신뢰와 유대감을 더욱 강화하고자 합니다.
'BackEnd' 카테고리의 다른 글
클라우드 기반 백엔드 기초 : 로그 레벨( Logging Level ) 이란? (2) | 2024.05.09 |
---|---|
클라우드 기반 백엔드 기초 : Build.Gradle 키워드 (0) | 2024.04.30 |
클라우드 기반 백엔드 기초 : 웹 개요 및 MVC (0) | 2024.04.26 |
미니 프로젝트 회고 (0) | 2024.04.17 |
클라우드 기반 백엔드 기초: 애자일과 설계 (0) | 2024.04.15 |