////
Search
2️⃣

스프린트 회고 2022.10.17

1. 첫번째 스프린트 이후로 1달간 일어난 일에 대한 회고 ~9:15

첫번째 스프린트 이후로 나에게 의미 있었던 지점 2~3가지를 작성해볼게요. 이 때 좋았던 부분, 성장한 부분뿐만 아니라, 고민할 지점을 줘서 의미있다고 생각한 부분도 좋아요.
이름
1달간 일어난 일 중에 나에게 의미 있었던 지점 2~3가지
이름1
이름2
이름3
이름4
이름5
다른 사람들과 함께 스터디하고, 복습
이론이나 개념 부분이 재밌는 부분,
루즈하거나 지루하게 느꼈던 분들
어려움

2. 진도, 실력 차이가 날 때 똑똑하게 개선해나가는 방법

이럴때 어떻게 똑똑한 시도를 해볼 수 있을까요?
승준: 잘하는 분들에게 요청을 드리거나, 참고할만한 자료 요청
성필: 얼마나 못따라 갔는지 파악하기 위해 여러가지 질문을 하고, 어디까지 모르는지 하나부터 열까지 알려줄것 같다. 사수가 있다면, 사수한테 붙어서 배우거나, 사수가 없다면 서비스에 대해 잘 아는 사람에게 어떻게 하는지 도움을 요청하면서 하지 않을까

3. 페어 프로그래밍이란

승준: 전 회사에서 개발자분들과 이야기할 떄 원하는데 시간이 안나서 잘 못하고 있다.
페어 프로그래밍은 최소 '2명'이서 짝이 되어 같이 프로그래밍을 하는 과정이에요.

2명의 역할

드라이버
운전하는 사람
키보드를 잡고 입력하는 사람
드라이버가 주도적으로 키보드를 잡고 실제 입력을 다 하는 사람이에요.
내비게이터
자동차 운전할 때 핸드폰 네비게이션을 보면서 가잖아요. 네비게이션 자체가 운전을 해주는건 아니지만, 운전을 '잘'할 수 있게 옆에서 도움을 주는 역할이잖아요. 그리고 내 위치가 지금 어디에 있는지, 어느 방향으로 가야하는지 조언을 해주는 역할이에요.
내비게이터는 옆에서 그 입력하는거를 한 발자국 떨어져서 같이 보고, 조언과 피드백을 주는 역할이거든요.

페어 프로그래밍의 장점

서로 의견을 내면서 하는거니까 누구는 구조체, 클래스를 만든다 하면 서로 이야기할 수 있으니까 같이 잡아간다
코드를 쓰는 의도가 더 명확해질 것 같다
한 코드를 쓰기 위해서 대화를 나눠서 적절한 코드
최소한 버그가 50%이상 감소함
2명이서 나 || 페어
실제로 하나의 앱을 만들고 통합하는데 걸리는 시간이 30%이상 감소하는 효과도
전문가의 암묵지를 효과적으로 배울 수 있는 장점
수학 잘하는 친구한테 수학 어떻게 잘해?
페어 프로그래밍을 하면 그 결과를 도출해내는 과정을 함께하기 때문에 말로 설명하기 어려운 '암묵지'를 배우는데 굉장히 도움이 많이 되요
디버깅 하는 방법, 구글링 하는 방법, 코드를 쓸 때 단축키 사용하는 방법
HTML 마크업을 굉장히 잘하는 분이랑 페어 프로그래밍. 의식적으로 가장 적은 수의 마크업으로 유동적인 레이아웃을 만들려고 노력하더라.
같이 하기 때문에 각자 코드 짜고 합치는 것보다, ‘통합’이라는 관점에서 빨라지는 장점
같이 하기 때문에 혼자서 해결 하기 어려운 문제를 접근하는데 있어서 좀 더 쉽게 다가갈 수 있는 ‘짝용기’가 생겨요.
팀워크를 향상시키는 과정이 되기도 함. 짝 프로그래밍을 하면 사람과 사람이 하는거여서 안맞을수도 있고, 갈등이 생길수 있어요. 우리는 협업을 잘하는 방법을 배워본적이 잘 없고, 협얼 잘하는 사람이 많지가 않거든요.
이 갈등이 작은 단위로 자주 일어나고, 작은 단위일떄 빠르게 자주 해소하는게 팀원관의 관계에서 굉장히 중요함

질문

한 번 페어프로그래밍 하면 프로젝트나 제품 단계에서 끝까지 한다?
어렵거나, 막연하거나, 지겨운거
하나의 기능 단위나, 버그 픽스, 리팩터링 하는 단위
아예 모르는 사람 2명이서 페어
우리가 알고 있는 지식으로 이 문제를 어떻게 작게 쪼개고 해결해나갈 수 있는 과정을 학습해
혼자서만으로는 절대 못푸는 거를 2명이 같이 하기 떄문에 서로의 지식이 합쳐져서 해결되는 경우가 생각보다 많음
한 명이 더 잘 아는 경우
팀에서 많이 일어남. 신규 입사자(주니어로 신입, 2~3년차)
교육생, 학생들 사이에서도 많이 일어나지만
페어 프로그래밍을 하면 어쨌든 2명의 생산성이 한 작업에 들어간다는 느낌이 드는데, 그럼에도 불구하고 회사에서 필요에 따라 권장하거나 저희가 자발적으로 할 수 있는 느낌인지 궁금합니다!
회사의 개발 문화 연결
소프트웨어는 만드는거에서 끝나는게 아니고
소프트웨어를 만들고, 유지보수하고 개선해 나가는 과정이
버그를 수정하고
성능을 개선하고
의도를 드러내게, 읽기 좋은 코드를 만들고
페어 프로그래밍을 하는 인원이 많아질 수록 효과가 있는 지 궁금합니다. 어느정도의 인원 수가 적절할까요?
페어프로그래밍, 협업에 익숙하지 않다 2명으로 시작하는게 좋다고 생각함
3~4명 혹은 그 이상이서도 할 수 있는데

4. 페어 프로그래밍 라이브

피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요. 예를 들어 n = 3이라면 2를 반환해주면 됩니다. 최종 결과는 F(10)의 결과값을 print로 출력해주세요. ex_ F(4)인 경우 0 1 1 2 '3' 이므로 F(4) = 3 입니다. /* 의사코드 1. 인자로 값을 받아온다. 2. 인자값에 대한 유효성을 검사한다. (0이나 1인 경우 바로 return 해준다.) 3. fibonacci(number: 인자 -1) 과 fibonacci(number: 인자 -2)를 호출하고 그 결과값을 더하여 return 한다. */ 작성 후 https://www.onlinegdb.com/online_swift_compiler 에서 실행시켜 주세요
/* 의사코드 1. 인자로 값을 받아온다. 2. 인자값에 대한 유효성을 검사한다. (0이나 1인 경우 바로 return 해준다.) 3. fibonacci(number: 인자 -1) 과 fibonacci(number: 인자 -2)를 호출하고 그 결과값을 더하여 return 한다. */ var result = 0 guard number >= 0 else { print("0을 포함한 양의 정수만 입력할 수 있습니다.") return } func fibonacci(number: Int) -> Int { if (number < 0) { print("0을 포함한 양의 정수만 입력할 수 있습니다.") return -1 } if (number < 2) { return number } return fibonacci(number: number - 1) + fibonacci(number: number - 2) }
Swift
복사
0 1 1 2 3 5 8 13 21
fibonacci(0) ⇒ 0
fibonacci(1) ⇒ 1
fibonacci(2) ⇒ 1
fibonacci(3) ⇒ 2
fibonacci(4) ⇒ 3
fibonacci(5) ⇒ 5
fibonacci(6) ⇒ 8

페어 프로그래밍할때 주의사항

빈번하게 역할을 교환해주세요
만약 이게 어렵다면 타이머를 사용하는것도 좋습니다.
한 사람이 오래 키보드를 오래 붙잡고 있으면 안됩니다.
서로 왔다 갔다 하는 과정에서의 '발견'이 페어 프로그래밍에서 중요한 부분입니다.
한 사람이 다른 사람에게 '강의'를 하지 마세요.
페어 프로그래밍은 수평적인 관계로 진행하는게 중요합니다.
드라이버가 어떻게 리드해야할지 모르겠다면, 네비게이터가 쳐야할 코드를 불러주세요.

질문

1.
3- 4명이서 코딩을 같이하게된다면 계속 돌아가면서 드라이버역할을 하면 효율적으로 할 수 있나요??
시간을 짧게 가져가면서 교대하면서 우리가 배워나가는게 중요함
2.
드라이버와 네비게이터가 둘 다 해결하지 못하는 상황일 때는 어떻게 하면 좋을까요?
다른 내비게이터를 찾아서 도움을 요청해야죠.
나 혼자서 할 떄보다 더 효과적으로 문제 해결을 위한 과정인거지 반드시 둘이서만 모든걸 해야된다는 아님
3.
혹시 코드 리뷰하기를 페어로 하면 3자가 작성한 코드를 둘이 같이보면서 교대로 하나의 리뷰 내용을 같이 작성하는 느낌일까요?
글쓰기를 페어로 한다
file changes를 가서 같이 한 파일씩 보고
어떤 부분 리뷰를 남기면 좋을까요?
return 타입에 대한 부분을 리뷰 남기면 좋을것 같아요
코멘트 작성하는 창을 띄우고, 드라이버와 네비게이터로 글을 작성해보면

3. 그룹별로 나눌 이야기

오늘 서로의 지식과 경험이 녹아들 수 있는 페어 프로그래밍에 대해 이야기하고 라이브까지 진행해보았는데요. 나의 학습 과정에서 프로그래밍 뿐만 아니라 다른 영역도 얼마든지 시도해볼 수 있고 효과도 얻을 수 있어요. 그래서 내가 페어 워크를 해보고 싶은게 있다면 어떤게 있는지 나눠보고, 실제 페어도 구해보는 시간을 가져볼게요! 만약 빠르게 다 구해졌다면 남은 시간 동안 실제 페어 워크를 진행해보는것도 좋을 것 같아요 :) 페어 워크의 예) 슬라이드 만들기, 회의 기록 남기기, 글쓰기, 코드 리뷰하기 기준: 지겹거나, 어렵거나, 막연한거 2~3개 이상 적어보고, 여러 페어와 같이 시도해보는거 너무 큰 단위 말고 같이 해서 2~3시간 안에 끝낼 수 있는거, 과제를 하는거다하면 과제의 일부 기능 하나만을 일단 페어프로그래밍 하는 식으로, 작게 쪼개서 둘이서 2~3시간안에 끝낼 수 있는 단위로 시도해보기 2~3시간 해보고 나면 우리의 페어프로그래밍에 대해서 간단하게 회고까지 해보면 더 좋음 - 페어 프로그래밍 어땠는지 - 어떻게 하면 다음에 더 효과적으로 할 수 있을 것 같은지 - 우리만의 더 좋은 페어 프로그래밍 방법은 없을지
이름
이번주/다음주에 페어 워크/프로그래밍 시도해보고 싶은 것
페어
이름1
이름2
이름3
이름4
이름5