Team Project
오늘은 햄디, 제이미와 함께 대전에서 만나서 함께 밥도 먹고, 카페에서 프로젝트도 하고, 성심당에서 빵도 쇼핑했다!
역시 실제로 만나서 프로젝트를 하면 집중력이 엄청 높아지고, 생산성도 높아지는 것을 느낀다. 온라인으로만 하다가 오프라인으로 해서 더 이렇게 느끼는 것일 수도 있겠지만, 일단 화면 공유를 하지 않아도 되고 바로바로 소통이 가능해서 답답함이 많이 줄어든다.
걸어가면서 Scrum
스크럼을 난생 처음으로 식당으로 걸어가면서 해봤다.ㅋㅋㅋ 각자의 컨디션을 공유했다. 걸어가며 하는 스크럼이라니 매우 신박하고 재미있는 경험이었다. 스크럼은 거의 컴퓨터 앞에 앉아서 정적으로 했었는데 동적으로 하니 새로웠다.
식사를 마친 후에는 매우 웅장한 샹들리에가 있는 카페에 들어가서 푹신한 좌석에 앉아 팀플을 시작했다.
기존 계획을 갈아엎고 기획부터 다시
원래 계획은 내가 예전에 했던 Mountain 프로젝트를 리팩토링하는 거였다. 하지만 API가 완전하지 않았기 때문에 공공데이터 등을 열심히 검색해 보았고, 원하는 결과를 찾기가 어려웠다. 데이터를 수작업으로 넣어볼까도 고려했지만, 산을 지도에 찍어줄 때도 고려해야 할 것이 너무 많았다. 사실 할려면 할 수 있겠지만 백엔드 작업에 시간을 너무 많이 투자하게 될 것 같아서 주제를 바꾸기로 했다.
주제를 무엇으로 할지 오래 고민하지 않은 이유는 제이미 덕분이었다. 제이미가 예전에 책 서평과 인용구 작성을 할 수 있는 웹 사이트를 장고로 만들었던 이력이 있었다. 책 API는 비교적 구하기 쉬웠고 우리는 이 주제로 바꾸기로 결정했다.
기획을 처음부터 다시 해야 했다. 만약 팀플이 온라인이었으면 엎어지고 이렇게 다시 새롭게 기획까지 결정하는 게 이 정도로 신속하지 않았을 것이라는 생각이 들었다. 그리고 다들 제대로 된 프로젝트를 만들겠다는 생각이어서 대충 기획하고 싶지 않아 했다. 그래서 지금 다소 시간이 걸리더라도 무슨 기능을 구현해볼지를 명확하게 정해보기로 했다.
얘기하다 보니 우리의 욕심이 정말 많았다. 방학 기간인 일주일만에 절대 완성할 수 없는 분량이어서 그냥 길게 잡고 제대로 된 플젝을 하기로 했다.
팀원 칭찬!
햄디는 우리가 말한 것을 꼼꼼하면서도 일목요연하게 잘 정리해 주었다. 말로 오간 것이 그냥 흘러가 버릴 수도 있었는데 햄디 덕에 고생을 면할 수 있었다. 또 내가 놓친 부분이 있었는데 그럴 때 햄디는 화내거나 싫은 티 없이 다시 설명해 주었다. 이게 쉽지 않은 것일 텐데 햄디의 인내심과 친절함에 항상 감동을 받는다.
제이미는 빠르게 대안책을 제시해줘서 미련 없이 기존 기획을 엎을 수 있었다. 또한 기획을 할 때도 더 효율적인 방향성을 제시해 주었다. 나는 와이어프레이밍을 하면서 무슨 기능을 구현해볼지 정해볼 생각이었는데, 제이미는 우선 구현할 기능을 문서로 먼저 쭉 정리한 다음에 와이어 프레이밍을 하자고 제안했고, 제이미의 의견대로 수행했다. 하고 나니 일단 문서화를 해 놓고 나서 디자인 쪽 작업을 하는 게 훨씬 낫다고 생각했다. 병행으로 작업했으면 더 시간이 오래 걸렸을 것이다.
게더타운에서 도트의 질문
밤 12시 반쯤에 도트가 질문을 해왔다. (도트는 이 시간까지 스터디 카페에서 공부중이라고 했다. 대단!)
React에 함수형 프로그래밍을 적용하는 와중에 문법적인 에러를 마주했는데, 나도 같이 보았지만 정확히 무엇이 문제인지 알 수 없었다.
const map = (f, iter) => {
if (!iter[Symbol.iterator]) {
return;
}
const res = [];
for (const value of iter) {
res.push(f(value));
}
return res;
};
const curryMap = curry(map);
// React Component
...
return (
<>
// 에러가 났던 부분
{fx.curryMap((try) => <li>{try}</li>, this.state.tries)}
</>
);
};
함수의 인자로 함수를 전달할 때, jsx는 안 되는 것인가? 라고만 어렴풋이 추측했었다. 그런데 에러는 사실 try라는 예약어를 파라미터 이름으로 사용했기 때문에 에러가 난 것이었다. VS Code에서 에러를 알려줄 때 예약어라는 사실을 직접 알려주진 않고 "Unexpected Token" 이라고만 알려주어서 잘 알아채지 못한 것도 있었지만, 기초적인 것을 망각하고(혹은 제대로 모르고) 있었기 때문에 이 에러를 빠르게 짚어내지 못했다.
Reserved words!
알고 보니 예약어로 쓸 수 없는 단어들이 이렇게나 많다. 기초적인 내용이었는데 도트 덕분에 다시 짚고 넘어갈 수 있었다. 출처는 JavaScript Reserved Words (w3schools.com)
예약어로 제거된 단어들이 위와 같이 있다. 그런데 노란 색으로 된 경고 문구를 보면 이런 단어들을 변수로 쓰지 말라고 한다. ES5나 6 버전은 모든 브라우저에서 지원되는 것은 아니기 때문이다.
이 외에도 도트와 이것저것 이야기를 했다. 도트는 함수형 프로그래밍 공부와 더불어 React에 FP를 적용하는 것을 공부하고, 또 내일 있을 프로토타입 공부까지 열심히 한 상태였다. 나는 Atomic Design, Storybook을 새롭게 공부해 볼 예정이고 햄디 제이미와 함께 프로젝트 하는 것을 간단하게 이야기했다. useReduce, Redux, context api 등 내가 사용해 보지 않은 것들도 키워드가 많이 나왔는데 얼른 학습해서 적용해봐야겠다는 생각을 했다.
'What I learned > TIL' 카테고리의 다른 글
[Thurs/5/5/2022] Today I Learned (1) | 2022.05.06 |
---|---|
[Wed/5/4/2022] Today I Learned (0) | 2022.05.05 |
[Mon/5/2/2022] Today I Learned (0) | 2022.05.03 |
[Sun/4/24/2022] Today I Learned (0) | 2022.04.25 |
[Sat/4/23/2022] Today I Learned (1) | 2022.04.24 |