1. 두번째 스프린트 이후로 1달간 일어난 일에 대한 회고 ~9:20
두번째 스프린트 이후로 나에게 의미 있었던 지점 2~3가지를 작성해볼게요.
이 때 좋았던 부분, 성장한 부분뿐만 아니라, 고민할 지점을 줘서 의미있다고 생각한 부분도 좋아요.
더 그레이트 클 대 빛날 엽
이름 | 1달간 일어난 일 중에 나에게 의미 있었던 지점 2~3가지 |
김대엽 | 1. 날이 갈수록 상승하는 js수업난이도 ⇒ 프로그래밍에 대한 겸손함을 가지게 해준 JS
2. 소풍 & 선배와의 대화 ⇒ 사람을 만나지 못하고 컴퓨터와 고립되어있었는데 주변환기도 시키고 마인드를 다잡을 수 있는 계기가 됨 |
김미경 | 1. 모닝 자바스크립트 예습 스터디
- 아침시간에 뇌를 깨우는 시간을 가지고 수업 전 예방주사를 맡는게 생각보다 큰 도움이 되었다! 본 수업에 집중도 더 잘 되어서 좋았다.
2. 프로그래머스 0단계
- 대엽님의 주도로 시작하게된 프로그래머스 0단계 -> 해야지 생각만 하고 하는둥 마는둥 했을텐데 덕분에 꾸준하게 몇문제씩이라도 풀어보게 되었고, 문제를 푸는 과정에서 구글링하며 학습하고 복습하는 부분이 많아 너무 좋았습니다. 앞으로 100문제 완주 화이팅
3. 시간 활용에 대한 고민
- 첫 주때부터 고민하던 부분인데 아직 시간을 운용하는 것이 어렵다. 깨어있는 시간을 최대한 잘 활용하는 것이 목표 |
박선영 | 1. 겉으로 돌기만 하는 회고조가 아닌 서로를 더 생각할 수 있게 된 회고조가 된 것 같다고 생각하게 됨
2. 다시 의지를 다지게 만든 자스 ..
3. 프로그래머스 입문 -> 이거 진짜 완전 나의 머리를 깨우고 이마를 깨버렸습니다 이야 !
4. 상처나지 않을 정도의 채찍질을 위해 버려야 할 것을 고민. -> 아직... 그냥 나 스스로한테만 채찍질 중 … (이게 상처가 되고 있는 상황) |
이지형 | 1. 페이스 조절의 어려움 ⇒ 아직 해결을 못하고 있음 (욕심이 과함)
2. 회고 조원들과의 만남 및 오전 스터디 등을 통해 스스럼 없는 친밀감을 가지게 되었음
3. 프로그래머스 0단계 ⇒ 처음에는 다양한 방법을 고민하였지만, 갈수록 어려워져서 일단 풀고 넘어가는 일이 반복되고 있음 ㅠㅠ |
양지성 | 1. 회고조원과 아침스터디를 시작하고나서
- 본 수업의 집중도가 향상 됐습니다.
- 하루 시작을 부지런히 할 수 있게 됐습니다.
- 알고리즘을 접하고 적용하는 연습을 하면서 부족한 부분을 알 수 있었습니다.
2. 회고조원과 와 스쿨(멋사, 제코베, 동기)과의 대면만남
- 0과 1로(feat.미경님) 이루어진 사이버휴먼이 아님을 확인했고, 더욱 친해질 수 있는 계기가 됐습니다.
- 가까워진 계기로 더 많은 이야기는 물론, 생산성(?)있는 이야기들을 나눌 수 있게 됐습니다.
3. 지역 오프라인 스터디 시작 후
- 공부를 좀 더 깊게 할 수 있는 계기가 되었습니다. 새로운 것들을 배우게 되면 더 나아가기 보단 안주하는 일들이 많았는데, 스터디원 분들의 열정이 저를 더 집중하게 하고 깊게 공부하게 되는 계기가 됐습니다. |
추민희 | 1. JS를 어떤 식으로 공부해야 할지 방향성을 알게 됨
2. 프로그래머스를 통해 코딩테스트에 다소 흥미를 갖게 됨 |
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시간 해보고 나면 우리의 페어프로그래밍에 대해서 간단하게 회고까지 해보면 더 좋음
- 페어 프로그래밍 어땠는지
- 어떻게 하면 다음에 더 효과적으로 할 수 있을 것 같은지
- 우리만의 더 좋은 페어 프로그래밍 방법은 없을지
이름 | 이번주/다음주에 페어 워크/프로그래밍 시도해보고 싶은 것 | 페어 |
김대엽 | 로그인 화면 구현
천하제일 이력서 만들기 (tailwind) | b |
김미경 | 지겹거나, 어렵거나, 막연한거 | a |
박선영 | 기존 과제를 코드리뷰 식으로 페어 프로그래밍 하기 ..?
전에 지형님께서 제시해주신 유투브 영상 접목 시키기
(https://www.youtube.com/watch?v=3PHXvlpOkf4&list=WL&index=4&t=19154s)
프로그래머스 활용하기 | a |
이지형 | - 프로그래머스 코딩테스트 풀이를 각자 10분 정도 고민한 뒤, 페어로 개선시켜 보는 것도 좋을 것 같습니다. | a |
양지성 | - 스쿨에서 진행하는 과제 리팩토링 및 자스구현
(벤딩머신, 1만 시간 등등)
- 프로그래머스(낮은 난이도, 높은 난이도 상관 x) 함께 풀기
- | b |
추민희 | b | |
→ 목요일 아침 8시 전체팀 페어 점검 (개별팀은 팀별로 일정을 정해서 점검요망)
→ 목요일 자습시간에는 회고조 회의 진행
→ 공통주제: 프로그래머스 (공통) 문제 풀기
→ 페어프로그래밍을 시작하기 전 주제에 대해 부족하게 느껴졌던 점
1.
함수를 잘 모르겠다
2.
메서드를 활용하려고 할 때 적용이 잘 안됨.
3.
최적화에 대한 고민이 됨
4.
한가지 방법을 알면 그 방법대로만 사용하고, 다양한 방법에 대한 시도가 부족
(익숙한 대로만 사용하려고 함.)
5.
문제를 보고나서 고민하는 과정이 길어짐
6.
사용자에게 어떻게 하면 더 좋은 결과물을 제시할 수 있을지에 대한 고민이 듦
→ 이번에는 가벼운 마음으로 임하고 좋은 점은 기억해뒀다가 다음에 또 써먹기
•
프로그래머스 레벨1 한문제 풀기
•
만약에 못푼다면 어떻게 접근을 하려고 했는지에 대한 이야기를 나눠보기