블랙커피 스터디란?
블랙커피는 프론트엔드 개발자로서 함께 자라기 위한 스터디 모임입니다. 코드 리뷰와 커뮤니케이션을 통해, 서로 간에 스며드는 지식으로 함께 자라는 것을 목표로 하고 있습니다. 잘하기 이상으로 함께 자라기에 더 관심 있는 분들의 참여를 기다리고 있습니다 😄
참여 계기
- 존경하는 시니어 개발자 분의 추천
- 코드 리뷰에 대한 갈증
블랙커피 스터디 모집 글의 참여 대상에 나와있는 것처럼 나는 이전에 코드 리뷰를 받아본 경험이 거의 없었기에 내가 짜는 코드가 다른 사람들이 어떻게 피드백받을지가 너무 궁금하고 기대됐다.
내용
- 기간: 21.11.16 ~ 21.12.14 (약 1달)
- 데모 링크
스터디는 다음과 같이 진행된다.
스터디 전
1. 각 주차별 미션 확인 후 각자 레포에서 코드 구현
2. PR 남기고 팀원들 코드에 리뷰 남기기
스터디 당일
3. 각 팀원들과 함께 줌 소그룹에 모여 코드 리뷰 회고
- 구현 시 어려웠던 점, 코드 리뷰 시 궁금한 점 등
- 만약 코드 리뷰를 뒤늦게 올린 팀원이 있으면 이 때 같이 피드백
1주차 - 돔 조작과 이벤트 핸들링으로 메뉴 관리하기
- 에스프레소 메뉴에 새로운 메뉴를 확인 버튼 또는 엔터키 입력으로 추가한다.
- 메뉴가 추가되고 나면, input은 빈 값으로 초기화한다.
- 사용자 입력값이 빈 값이라면 추가되지 않는다.
- 메뉴의 수정 버튼을 눌러 메뉴 이름 수정할 수 있다.
- 메뉴 수정 시 브라우저에서 제공하는 prompt 인터페이스를 활용한다.
- 메뉴 삭제 버튼을 이용하여 메뉴 삭제할 수 있다.
- 메뉴 삭제 시 브라우저에서 제공하는 confirm 인터페이스를 활용한다.
- 총 메뉴 갯수를 count 하여 상단에 보여준다.
2주차 - 상태 관리로 메뉴 관리하기
- localStorage에 데이터를 저장하여 새로고침해도 데이터가 남아있게 한다.
- 에스프레소, 프라푸치노, 블렌디드, 티바나, 디저트 각각의 종류별로 메뉴판을 관리할 수 있게 만든다.
- 페이지에 최초로 접근할 때는 에스프레소 메뉴가 먼저 보이게 한다.
- 품절 상태인 경우를 보여줄 수 있게, 품절 버튼을 추가하고 sold-out class를 추가하여 상태를 변경한다.
3주차 - 서버와의 통신을 통해 메뉴 관리하기
- 링크에 있는 웹 서버 저장소를 clone 하여 로컬에서 웹 서버를 실행시킨다.
- 웹 서버를 띄워서 실제 서버에 데이터의 변경을 저장하는 형태로 리팩터링한다.
- localStorage에 저장하는 로직은 지운다.
- fetch 비동기 api를 사용하는 부분을 async await을 사용하여 구현한다.
- API 통신이 실패하는 경우에 대해 사용자가 알 수 있게 alert으로 예외처리를 진행한다.
- 중복되는 메뉴는 추가할 수 없다.
후기
좋았던 점
- 코드 리뷰
스터디 참여 계기의 9할이 코드 리뷰였는데 되돌아보았을 때도 코드 리뷰가 너무 좋았다.
처음엔 대부분의 스터디원이 비슷비슷한 주니어 개발자나 취준생이었기에 많이 배울 수 있을까 약간의 의구심도 들었는데 내 착각이었다. 정말 기초 중에 기초인 Todo List인데, 각자 구현하는 코드도 저마다 다르고 조원들이 정성스럽게 리뷰 달아준 걸 읽으며 피드백받는 것도 재밌었다. 조원들 뿐 아니라 기수 사람들 코드를 보며 배운 점이 많았다. 또, 내가 리뷰 남길 때에도 어떻게 하면 부드럽게 조언해줄 수 있을지, 내가 남기는 정보가 정확한 지에 대해 다시 체크하게 되니 더 공부가 되었다. - 예쁜 UI
CSS가 이미 예쁘게 꾸며져 있어서 기능에만 신경 쓸 수 있었다. UI도 깔끔하고 예뻐서 구현할 맛이 났다.
아쉬웠던 점
- Udemy 강의의 연장선
11기부터 블랙커피 스터디가 Udemy 강의와 함께 진행됐다.
나는 강의를 듣지 않고 구현했는데, 강의와 함께 스터디를 진행한 분들 중 강의 내 코드를 90% 이상 비슷하게 구현하는 경우가 종종 있었다. 실제로 이 부분에 대해 다른 분이 강의 코드와 너무 비슷한데 본인이 짠 코드가 얼마나 되냐는 코멘트를 받은 것도 보았다. 나도 PR들을 둘러보면 처음엔 몰랐다가 강의에서 짠 코드라는 게 눈에 들어와 아쉬웠다.
만약 Udemy와 스터디를 함께 진행하고 싶은 분들은 스터디 이후에 강의를 듣거나 혹은 스터디 이전에 강의를 듣고 어느 정도 내용이 휘발된 뒤에 스스로 힘으로 코드를 짜려고 시도하는 것을 추천한다. - 낙오
메이커준님 말로는 마치 어둠의 마법 방어술 수업처럼 팀원분들이 사라진다고ㅋㅋㅋ
막상 돈을 내고 의지를 가지고 진행하더라도 여러 스케줄이나 실력 등의 이유로 팀원들이 하나 둘 낙오되어 결국 수료까지 남는 인원은 소수였다. 실제 우리 팀에서 첫 번째 온보딩 시간에만 참여하고 그 이후로 사라진 분도 계셔서 안타까웠다. - 추가 구현
이건 스스로에 대한 아쉬움인데 몇몇 소수의 뛰어난 분들은 스스로 TypeScript나 테스트 코드를 삽입하는 등 필수 기능에서 요구하지 않은 것들까지 추가적으로 구현하는 걸 보며 감탄했다.
추천하는 분들
- 데모 링크나 gitHub 레포를 둘러보았을 때 바닐라 JS로 80% 이상 구현할 코드가 그려지고 자신 있는 분
이 스터디는 애초에 JS를 가르쳐주지 않는다. 개요를 쭉 훑어보며 스스로 구현에 자신이 있다 느껴질 때 스터디에 참여한다면 더 얻어갈 것이 많다 생각한다.
실제 프론트엔드가 아닌 다른 분야 개발자분들이나 JS에 거의 자신이 없는 분들이 가벼운 마음으로 참여 후 점점 사라져 가는 걸 보며 아쉬웠다. - 여러 사람들에게 자신이 짠 코드를 리뷰받고, 본인도 리뷰하며 공부하고 싶은 분
마치며
- 나름 바닐라 JS에 자신 있어서 당당하게 시작했는데 다른 분들의 코드와 피드백을 받으며 또다시 겸손하게 스스로를 돌아보고 공부하는 계기가 되었다.
- 블랙커피 스터디의 문구는 언제 읽어도 멋있는 것 같다..!
내 코드도 언젠가 블랙커피 같이 누군가에게 잠들기 어려운 훌륭한 코드로 읽히는 날이 오길 바래본다.
'02. Review' 카테고리의 다른 글
[멘토링] 독일에서 개발자로 일하는 수진님과의 커피챗 후기 (0) | 2022.05.28 |
---|---|
[책] 면접을 위한 CS 전공지식 노트 (0) | 2022.05.15 |