Search
3️⃣

회고 스프린트3 2022.10.24

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

두번째 스프린트 이후로 나에게 의미 있었던 지점 2~3가지를 작성해볼게요. 이 때 좋았던 부분, 성장한 부분뿐만 아니라, 고민할 지점을 줘서 의미있다고 생각한 부분도 좋아요.
이름
1달간 일어난 일 중에 나에게 의미 있었던 지점 2~3가지
이름1
이름2
이름3
이름4
이름5
정해진 회고 타임
이력서 특강
자율적인 학습과 나만의 효과적인 학습법
오프라인 스터디
서로의 고민을 진심으로 들어주고 걱정하며 도와줌
오늘 뭐해를 통해 그날 계획을 설정하며 컨디션 조절
피크닉
아무 생각 없이 TIL만 적었는데, 시간이 지나면서 더 좋은 글을 작성하기 위한 고민으로 확장됨
타입스크립트 책 집필
자바스크립트 학습
평온함을 가지게 됨
최근에서야 내 공부 방법을 찾은것 같다.

2. 가장 작은 단위의 협업부터 잘해 나가는 방법

페어 프로그래밍/페어 워크

두 명이 같이 하나의 프로그래밍이나 하나의 일을 같이 해나가는 것
페어 프로그래밍은 최소 '2명'이서 짝이 되어 같이 프로그래밍을 하는 과정이에요.
1개의 컴퓨터, 1개의 키보드를 가지고 시작

2명의 역할

드라이버
운전하는 사람
키보드를 잡고 입력하는 사람
드라이버가 주도적으로 키보드를 잡고 실제 입력을 다 함
내비게이터
자동차 운전할 때, 드라이버가 프로그래밍할 때 내비게이션 자체가 운전을 해주는건 아니지만 운전을 ‘잘’ 할 수 있게 옆에서 도움을 주는 역할. 내 위치가 지금 어디에 있는지, 혹시 내가 잘못된 방향으로 가고 있는건 아닌지 조언을 해주는 역할.
옆에서 한발자국 떨어져서 같이 보고, 조언과 피드백을 주는 역할

페어프로그래밍의 장점

소프트스킬과 코딩 실력을 같이 키울 수 있다.
쉬는 텀이 있다.
아이디어가 다양해질것 같다
다른 사람의 코드 작성 흐름과 그 이유를 알 수 있다. ⇒ 코드를 쓰는 의도가 명확해지는 효과
팀으로서 동반 성장할 수 있다
혼자 코드를 짤 때보다 더 좋은 코드를 짤 수 있다.
최소한 버그가 50%이상 감소하는 효과 ⇒ 실제 우리가 현업에서는 내가 작성한 코드, 우리가 작성한 코드를
2명이서 나 || 짝
실제로는 하나의 애플리케이션을 만들고 통합하는데 걸리는 시간이 30%이상 감소하는 효과
작고 즉각적인 피드백을 바로 받을 수 있다
상대의 사고 과정을 생생하게 들을 수 있다
실시간 코드 리뷰 가능
코딩하다가 딴짓을 덜할 것 같다
같이 하기 때문에 각자 코드 짜고 합치는 것보다, ‘통합’이라는 관점에서 빨라지는 장점
전문가의 암묵지를 효과적으로 배울 수 있는 엄청난 장점
그림 잘그리는 친구한테 그림 어떻게 잘그려?
수학 잘하는 친구한테 수학 어떻게 잘해?
김연아 짤
스트레칭하는데 스트레칭 할때 무슨 생각하세요?
생각하긴 뭘 해 그냥 하는거지
페어프로그래밍을 하게 되면 전문가의 암묵지가 어떤 과정을 통해서 드러나는지 알 수 있게 되는거거든요
디버깅 하는 방법, 구글링에서 문제를 해결해 나가는 과정이라든가, 코드를 쓸 때 단축키를 사용하는 방법이라던가, 네이밍을 잘하는 방버이라던가
HTML 마크업
가장 적은 수의 마크업으로 유동적인 레이아웃을 만들 수 있게끔 노력하는게 습관으로 스며들어있더라고요.
같이 하기 때문에 혼자서 해결 하기 어려운 문제를 접근하는데 있어서 좀 더 쉽게 다가갈 수 있는 ‘짝용기’가 생기는게 있어요.
팀워크를 향상하는데 굉장히 도움이 되요. 갈등이 더 빨리 드러나기 떄문이거든요. 갈등이 쌓이고 쌓여서 마지막에 드러나서 터지는게 가장 안좋은 케이스임. 페어 프로그래밍을 하면 서로 다름을 작은 단위로 발견하게 됨. 작은단위일때 갈등이 생기면 작기 떄문에 빠르게 우리가 해소를 할 수가 있음, 서로 간의 신뢰 관계 향상

(바보같은) 질문

페어프로그래밍 단점은 어떤게 있나요?
초반에는 시간이 걸릴 수 밖에 없음
페어 프로그래밍을 처음 알게 된 사람은 어떻게 시작하면 좋을까요?
페어는 친한 사람끼리 맺으면 될까여...?
같은 목적을 가진 사람과 할 때 가장 효과가 좋은 것 같음
페어 프로밍하기에 가장 좋은 각자의 레벨이 어느 정도 일까요?
입문자, 중급자, 현업에서
회사에서도 실제 쓰이는 방법인지 궁금합니다!
버그와 결함이 50%이 감소
페어 프로그래밍/워크, 문서 작성 슬라이드, 글을 쓴다거나, 기획
제가 있는 팀에서도 많이하고
주니어분이 새로 입사, 기존에 있던 분들이랑 페어 프로그래밍
협업을 잘하는데 페어 프로그래밍을 안하는 회사는 거의 못봄
중급자와 중급자 동등한 레벨에서 진행하는 것이 효과적인지 초급자와 중급자 다른 레벨에서 진행하는 것이 효과적인지 궁금합니다!
중급자, 중급자 ⇒ 속도가 빠르게 진행이 되고, 버그나 결함을 감소하는 측면에서 서로 큰 효과를 많이 보게 되고요
초급자, 중급자 ⇒ 초급자는 중급자한테 엄청 많이 배울 수 있음, 중급자의 경우에는 초급자랑 함께 하기 때문에 본인이 알고 있는게 내가 잘 알고 있는건지 이걸 메타인지할 수 있음
내가 알고 있는게 알고서 쓰는건지, 그냥 쓰는건지 메타인지
본인의 코드 자체에 대한 메타인지
중급자인경우에는 리더쉽 향상에 도움이 많이 되요
원격으로 진행시 주의할 점
드라이버와 내비게이터의 역할을 자주 바꿔줘야 한다는 것
갈등 상황에서 원만하게 합의하려면 어떻게 해야할까요?

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

피보나치 수는 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. 인자로 값을 받아오는데, 인자로 0 이상의 정수를 받아온다. 2. 피보나치 함수에 인자를 넣으면, 피보나치 점화식에 따른 결과값을 리턴해준다. */ const checkValid = (number) => { if (number !== 0 && !number) { throw new Error("값을 넣어주세요") } if (!Number.isInteger(number)) { throw new Error("0 이상의 정수를 입력해주세요") } if (number < 0) { throw new Error("0 이상의 정수를 입력해주세요") } } function getFibo(number) { checkValid(number) if (number < 2) { return number } return getFibo(number - 1) + getFibo(number - 2) } console.log("getFibo(0)", getFibo(0)) // 0 console.log("getFibo(1)", getFibo(1)) // 1 console.log("getFibo(2)", getFibo(2)) // 1 console.log("getFibo(3)", getFibo(3)) // 2 console.log("getFibo(4)", getFibo(4)) // 3 /* F(n) = F(n-1) + F(n-2) F(0) = 0 F(1) = 1 F(2) = f(0) + f(1) = 1 F(3) = f(2) + f(1) = 2 f(4) = 현재 인덱스의 값 = (index - 1) + (index - 2)
JavaScript
복사

(바보같은) 질문

갈등 상황에서 원만하게 합의하려면 어떻게 해야할까요?
같은 상황에서 갈등이 일어나지 않을지 서로 간의 규칙이나 약속을 만들어 나가는 연습
큰 갈등이 아닌 작은 갈등부터 약속이나 규칙을 만들어 나가는 연습
2분은 너무 짧지만 굉장히 스피디하다는 느낌을 받았는데 일반적으로 몇분씩 진행하나요?
처음에는 짧게 가져가다가 3~4분으로
지금 같은 방법으로 셋 이상도 협업 가능할까요?
드라이버 1명, 네비게이터 2명
드라이버 2명, 네비게이터 1명
준근님은 협엽하실수 있는 실력을 보유하고 계서서 지금 이렇게 드라이버 네비게이터가 완만하게 이루어 진거 같은데 이렇게 어려운 알고리즘을 초보자와 중급자가 같이 해야한다면 어떤 방식으로 진행을 해야할까요?
페어프로그래밍 컨벤션은 페어프로그래밍를 하면서 정하는 편인가요? 아니면 시작 전에 다 정하고 하는 것이 좋나요?
숙련될 수록 초반에 정하고 진행하는 경우도 많은데
페어 프로그래밍을 하다가 드라이버도 모르고 내비게이터도 모르는 상황에서, 구글링을 해도 이해가 안 된다면 어떻게 해야할까요?
도움을 요청해주세요!
초급자 - 초급자
초급자일수록 결함이나 버그를 만들 확률이 높음
실력차이가 너무 많이 나는경우는 잘하는 쪽에서 많이 답답하고 혼자하는게 빠를 수도 있는데 이런경우는 잘하는사람에게 도움이 안되지않을까 걱정이에요!
회사 ⇒ 주니어분이 앞으로 회사에서 성장해서 더 많이 기여해주는 걸 기대하기 때문에 실력차이가 많이 나시는 분이라도, 리더십 성격으로 같이 끌고 가는게 많은데
교육생 입장에서는 이런 고민이 들수 있는데
실력 차이가 많이 나서 잘하는 사람 같은 경우에는, 내가 다른 사람과 함께 협업하는 역량 자체에 대해서 한번 되돌아 보는
개발 자체는 잘하는 사람이 잘할 수 있는데, 다른게 부족할 수 있음. 기획, 디자인, 회의 역량 ~
내가 개발을 남들보다 좀 더 진도가 더 잘한다고 해서, 이걸 잘 숙련하지 못한 사람이랑 하는거에 대해서 답답해 한다면, 다른 역량 들을 배워 나가는건 쉽지
잘하는 사람이 다른 사람을 잘할 수 있게 도와주면서 본인의 역량이 성장하는 경우를 더 많이 보게 됨.

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

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

2. 가장 작은 단위의 협업부터 잘해 나가는 방법

페어 프로그래밍/페어 워크

두 명이 같이 하나의 프로그래밍이나 하나의 일을 같이 해나가는 것
페어 프로그래밍은 최소 '2명'이서 짝이 되어 같이 프로그래밍을 하는 과정이에요.
1개의 컴퓨터, 1개의 키보드를 가지고 시작

2명의 역할

드라이버
운전하는 사람
키보드를 잡고 입력하는 사람
드라이버가 주도적으로 키보드를 잡고 실제 입력을 다 함
내비게이터
자동차 운전할 때, 드라이버가 프로그래밍할 때 내비게이션 자체가 운전을 해주는건 아니지만 운전을 ‘잘’ 할 수 있게 옆에서 도움을 주는 역할. 내 위치가 지금 어디에 있는지, 혹시 내가 잘못된 방향으로 가고 있는건 아닌지 조언을 해주는 역할.
옆에서 한발자국 떨어져서 같이 보고, 조언과 피드백을 주는 역할

페어프로그래밍의 장점

소프트스킬과 코딩 실력을 같이 키울 수 있다.
쉬는 텀이 있다.
아이디어가 다양해질것 같다
다른 사람의 코드 작성 흐름과 그 이유를 알 수 있다. ⇒ 코드를 쓰는 의도가 명확해지는 효과
팀으로서 동반 성장할 수 있다
혼자 코드를 짤 때보다 더 좋은 코드를 짤 수 있다.
최소한 버그가 50%이상 감소하는 효과 ⇒ 실제 우리가 현업에서는 내가 작성한 코드, 우리가 작성한 코드를
2명이서 나 || 짝
실제로는 하나의 애플리케이션을 만들고 통합하는데 걸리는 시간이 30%이상 감소하는 효과
작고 즉각적인 피드백을 바로 받을 수 있다
상대의 사고 과정을 생생하게 들을 수 있다
실시간 코드 리뷰 가능
코딩하다가 딴짓을 덜할 것 같다
같이 하기 때문에 각자 코드 짜고 합치는 것보다, ‘통합’이라는 관점에서 빨라지는 장점
전문가의 암묵지를 효과적으로 배울 수 있는 엄청난 장점
그림 잘그리는 친구한테 그림 어떻게 잘그려?
수학 잘하는 친구한테 수학 어떻게 잘해?
김연아 짤
스트레칭하는데 스트레칭 할때 무슨 생각하세요?
생각하긴 뭘 해 그냥 하는거지
페어프로그래밍을 하게 되면 전문가의 암묵지가 어떤 과정을 통해서 드러나는지 알 수 있게 되는거거든요
디버깅 하는 방법, 구글링에서 문제를 해결해 나가는 과정이라든가, 코드를 쓸 때 단축키를 사용하는 방법이라던가, 네이밍을 잘하는 방버이라던가
HTML 마크업
가장 적은 수의 마크업으로 유동적인 레이아웃을 만들 수 있게끔 노력하는게 습관으로 스며들어있더라고요.
같이 하기 때문에 혼자서 해결 하기 어려운 문제를 접근하는데 있어서 좀 더 쉽게 다가갈 수 있는 ‘짝용기’가 생기는게 있어요.
팀워크를 향상하는데 굉장히 도움이 되요. 갈등이 더 빨리 드러나기 떄문이거든요. 갈등이 쌓이고 쌓여서 마지막에 드러나서 터지는게 가장 안좋은 케이스임. 페어 프로그래밍을 하면 서로 다름을 작은 단위로 발견하게 됨. 작은단위일때 갈등이 생기면 작기 떄문에 빠르게 우리가 해소를 할 수가 있음, 서로 간의 신뢰 관계 향상

(바보같은) 질문

페어프로그래밍 단점은 어떤게 있나요?
초반에는 시간이 걸릴 수 밖에 없음
페어 프로그래밍을 처음 알게 된 사람은 어떻게 시작하면 좋을까요?
페어는 친한 사람끼리 맺으면 될까여...?
같은 목적을 가진 사람과 할 때 가장 효과가 좋은 것 같음
페어 프로밍하기에 가장 좋은 각자의 레벨이 어느 정도 일까요?
입문자, 중급자, 현업에서
회사에서도 실제 쓰이는 방법인지 궁금합니다!
버그와 결함이 50%이 감소
페어 프로그래밍/워크, 문서 작성 슬라이드, 글을 쓴다거나, 기획
제가 있는 팀에서도 많이하고
주니어분이 새로 입사, 기존에 있던 분들이랑 페어 프로그래밍
협업을 잘하는데 페어 프로그래밍을 안하는 회사는 거의 못봄
중급자와 중급자 동등한 레벨에서 진행하는 것이 효과적인지 초급자와 중급자 다른 레벨에서 진행하는 것이 효과적인지 궁금합니다!
중급자, 중급자 ⇒ 속도가 빠르게 진행이 되고, 버그나 결함을 감소하는 측면에서 서로 큰 효과를 많이 보게 되고요
초급자, 중급자 ⇒ 초급자는 중급자한테 엄청 많이 배울 수 있음, 중급자의 경우에는 초급자랑 함께 하기 때문에 본인이 알고 있는게 내가 잘 알고 있는건지 이걸 메타인지할 수 있음
내가 알고 있는게 알고서 쓰는건지, 그냥 쓰는건지 메타인지
본인의 코드 자체에 대한 메타인지
중급자인경우에는 리더쉽 향상에 도움이 많이 되요
원격으로 진행시 주의할 점
드라이버와 내비게이터의 역할을 자주 바꿔줘야 한다는 것
갈등 상황에서 원만하게 합의하려면 어떻게 해야할까요?

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

피보나치 수는 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. 인자로 값을 받아오는데, 인자로 0 이상의 정수를 받아온다. 2. 피보나치 함수에 인자를 넣으면, 피보나치 점화식에 따른 결과값을 리턴해준다. */ const checkValid = (number) => { if (number !== 0 && !number) { throw new Error("값을 넣어주세요") } if (!Number.isInteger(number)) { throw new Error("0 이상의 정수를 입력해주세요") } if (number < 0) { throw new Error("0 이상의 정수를 입력해주세요") } } function getFibo(number) { checkValid(number) if (number < 2) { return number } return getFibo(number - 1) + getFibo(number - 2) } console.log("getFibo(0)", getFibo(0)) // 0 console.log("getFibo(1)", getFibo(1)) // 1 console.log("getFibo(2)", getFibo(2)) // 1 console.log("getFibo(3)", getFibo(3)) // 2 console.log("getFibo(4)", getFibo(4)) // 3 /* F(n) = F(n-1) + F(n-2) F(0) = 0 F(1) = 1 F(2) = f(0) + f(1) = 1 F(3) = f(2) + f(1) = 2 f(4) = 현재 인덱스의 값 = (index - 1) + (index - 2)
JavaScript
복사

(바보같은) 질문

갈등 상황에서 원만하게 합의하려면 어떻게 해야할까요?
같은 상황에서 갈등이 일어나지 않을지 서로 간의 규칙이나 약속을 만들어 나가는 연습
큰 갈등이 아닌 작은 갈등부터 약속이나 규칙을 만들어 나가는 연습
2분은 너무 짧지만 굉장히 스피디하다는 느낌을 받았는데 일반적으로 몇분씩 진행하나요?
처음에는 짧게 가져가다가 3~4분으로
지금 같은 방법으로 셋 이상도 협업 가능할까요?
드라이버 1명, 네비게이터 2명
드라이버 2명, 네비게이터 1명
준근님은 협엽하실수 있는 실력을 보유하고 계서서 지금 이렇게 드라이버 네비게이터가 완만하게 이루어 진거 같은데 이렇게 어려운 알고리즘을 초보자와 중급자가 같이 해야한다면 어떤 방식으로 진행을 해야할까요?
페어프로그래밍 컨벤션은 페어프로그래밍를 하면서 정하는 편인가요? 아니면 시작 전에 다 정하고 하는 것이 좋나요?
숙련될 수록 초반에 정하고 진행하는 경우도 많은데
페어 프로그래밍을 하다가 드라이버도 모르고 내비게이터도 모르는 상황에서, 구글링을 해도 이해가 안 된다면 어떻게 해야할까요?
도움을 요청해주세요!
초급자 - 초급자
초급자일수록 결함이나 버그를 만들 확률이 높음
실력차이가 너무 많이 나는경우는 잘하는 쪽에서 많이 답답하고 혼자하는게 빠를 수도 있는데 이런경우는 잘하는사람에게 도움이 안되지않을까 걱정이에요!
회사 ⇒ 주니어분이 앞으로 회사에서 성장해서 더 많이 기여해주는 걸 기대하기 때문에 실력차이가 많이 나시는 분이라도, 리더십 성격으로 같이 끌고 가는게 많은데
교육생 입장에서는 이런 고민이 들수 있는데
실력 차이가 많이 나서 잘하는 사람 같은 경우에는, 내가 다른 사람과 함께 협업하는 역량 자체에 대해서 한번 되돌아 보는
개발 자체는 잘하는 사람이 잘할 수 있는데, 다른게 부족할 수 있음. 기획, 디자인, 회의 역량 ~
내가 개발을 남들보다 좀 더 진도가 더 잘한다고 해서, 이걸 잘 숙련하지 못한 사람이랑 하는거에 대해서 답답해 한다면, 다른 역량 들을 배워 나가는건 쉽지
잘하는 사람이 다른 사람을 잘할 수 있게 도와주면서 본인의 역량이 성장하는 경우를 더 많이 보게 됨.

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

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

4. 그룹별로 나눌 이야기

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