🙌 그룹활동
web35조 원 모어 타임~
이번 주의 그룹 활동은 티셔츠 자랑으로 시작되었다. 부캠 운영진 분들이 연사와 모더레이터를 위해 준비한 특별 선물이었다. (저번 주 목요일에 진행되었던 컨퍼런스에서 테크톡 모더레이터 역할을 했었다!) 저번 주와 똑같은 멤버였기 때문에 데일리 스크럼과 코드 쉐어가 물 흐르듯이 진행됐다. 편해도 너무 편해진 느낌? 딱히 프로그램을 준비하지도 않았는데 편하게 얘기하다보면 11시 30분, 12시가 되어 있었다. (공식적으로 그룹활동에 할당된 시간은 10시부터 11시!)
3개월 간의 부스트캠프 과정 중에서 가장 시간이 빠르게 지나갔던 한 주인 것 같다. 현준이와 수빈 누나랑은 컨퍼런스 때 만나 회식도 같이 하고, 말도 놓기로 해서 너무 편한 상태였다. 덕분에 질문하는 것도 전보다 수월했던 것 같다. 지금 생각해보면 내가 너무 많은 시간을 뺏었던 것 같기도 하다. 질문 공격 목요일에는 이 친구들과 헤어지는 것이 아쉬워서 둘의 허들에 끼어들어 밤늦게 까지 수다를 떨었다.
(참고로 마지막 주의 그룹은 현재 파트너는 유지하되 둘둘씩 흩어져 4인 그룹을 다시 구성하는 형태이다.)
벌써 7주차가 끝이다. 다음 주까지 지나가면 학습 스프린트가 마무리되고 그룹 프로젝트에 돌입하게 된다.
💳 멤버십 일상
고난도 작업의 시작
멤버십 1주차 canvas를 만날 때까지만 해도 이렇게까지 본격적으로 다루게 될 줄은 꿈에도 몰랐다. 애니메이션 생각보다 쉽지 않다. 문제를 해결하기 위해 5시간동안 쉬지도 않고 컴퓨터에 앉아있었던 날도 있었다. 스트레스를 받으면서도 해결되면 거기서 오는 쾌감으로 짜릿해졌다. 맛있다.. 코딩.. 대신 잘 때 되면 눈알 빠질 것 같음..
7월 초에 자바스크립트의 "ㅈ"자도 모르던 내가 이렇게까지 JS와 사랑에 빠지게 될 줄은 몰랐다. 이제는 주력 언어를 자바스크립트라고 말할 수 있을 것 같다. 코딩테스트도 JS를 활용하려고 한다.
10/24(월) - P4 day06
저번 주 5일 간의 방학동안 푹 쉬고 맞이하는 코어타임이라 집중이 잘 됐다. 리뷰어 님이 저번 주에 Context API를 강력 추천하셔서 전역 상태 관리에 대한 고민이 들었다. 생각을 거듭한 결과, Context API도 모르는 내가 Recoil을 했을 때 학습에 도움이 될지 의문이 들었다. 이미 Recoil 공부와 코드 설정까지 어느정도 해놓은 상태였지만 과감히 포기하고 Context API를 공부하기 시작했다. Context API를 사용자 로그인 정보, 애플리케이션 환경 설정, 테마 등에 많이 사용된다고 하는데, 현재 프로젝트에서는 로그인 정보, 모달 관리 정도에만 전역 상태가 필요했기 때문에 기술적인 정당성있다고 생각했다.
10/25(화) - P4 day07
파트너가 만들어 놓은 코드를 Context API를 활용해 리팩토링했다. "Context API를 이용한 모달 관리"에 대한 정보가 굉장히 많아 공부하기 편했다. 모달 관리이 이렇게 손 쉽게 할 수 있다니! 그동안 내가 만들어온 모달들은 무엇일까... 웹 컴포넌트와 전역 상태를 직접 만들어 모달을 띄울 때만 해도 비효율의 극치였다. 본질을 탐구하면서 삽질해본 경험이 해당 기술을 사용해볼 때 이해력을 높여주는 것 같다. 이렇게 편한 게 있어?!?라는 생각이 절로 든다. 부스트캠프하면서 배운 가장 큰 교훈이다. 본질을 탐구하자! 캠프가 끝난 이후로도 바닐라 JS를 애용할 생각이다.
10/26(수) - P4 day08
머리를 수백 번 쥐어뜯었던 날이다. 오후 5시에 마스터 클래스가 있었는데 문제에 완전 몰입한 상태라 수업이 머리에 들어오지 않았다. 계속 canvas, 애니메이션 생각만 났다. 오늘 하루 구현을 많이 해내진 못했지만 동료들에게 끊임없이 질문하고 정보를 찾아본 결과 해당 문제를 해결할 수 있었다. 사실 이렇게까지 디테일하게 만들 생각도 없었는데 문제해결을 이어가다보니 스스로 대만족할 수준까지 달성했다. 이번 P4 통틀어서 짜릿했던 순간 중 하나다.
10/27(목) - P4 day09
삽질의 연속. 기술 하나를 적용하면 버그가 하나씩 생긴다. 그 버그를 없애려고 코드를 고치면 코드가 개판이 되어 있다. 이 개판을 치워놓으면 하루가 끝나있다. 뭔가 진도가 안 나가는 느낌이다.
한 게 없는 건 아니다. 페어 프로그래밍을 통해 다중 사용자 구현을 3시간 만에 끝냈고 그 이후에 각자 하기로 한 것은 달성했다.. 근데 막상 결과물을 확인해보면 크게 달라진 게 보이지 않았던 게 아쉬웠달까..? 중간중간 컴퍼니데이 일정이 껴있어서 잘 때쯤에는 진이 다 빠졌다.
(뜬금 캔버스를 하며 느낀점 => 역시 개발은 수학이 중요하구나... 개발은 수학이다...)
10/28(금) - P4 day10
오늘은 무려 줌에서의 활동만 7시간이 잡혀있는 날이었기 때문에 세현 님과 라이브쉐어를 통해 리팩토링을 진행하고 day10 PR을 날리는 것으로 코드 작성을 마쳤다. 피어세션이 지나가고 대망의 마스터클래스 코드리뷰 시간! 오후 6시 30분쯤 장훈장훈이 윤규를 지목했고 심장이 떨리기 시작했다. 윤규라면 100% 나 지목한다라고 직감적으로 느끼고 있었고 그 직감은 맞아 떨어졌다. 잠시 부재 중이라 코드 리뷰의 기회를 놓쳤던 다른 분들과 사다리타기를 진행했다. 아쉽게도 코드 리뷰의 기회는 다른 분에게 넘어갔다.
윤규가 부캠의 유재석이라고 소개하는 게 민망해서 아니라고 x표시를 하면서 어필했는데, 박제당했다. ㅋㅋㅋ
🍻 피어세션
자기소개만 1시간 30분 동안 하는 피어세션이 있다?!?
이번 주의 피어세션은 자기소개 시간이 상당히 길었다. 첫 번째 순서였던 효석 님의 자기소개가 많이 길어졌다. 12살 때부터 개발을 시작하신 분이라 개발 관련된 스토리가 많으셨다. 다들 궁금한 부분이 많았는지 이것저것 질문을 하기 시작했고, 그 결과 30분이라는 시간이 훌쩍 지나가버렸다.
전 날에 밤 늦게까지 수다를 떨었던 여파때문인지 어느 순간부터 에너지레벨이 급격하게 떨어졌다. 초콜릿을 먹으면서 피어세션을 진행했는데도 텐션이 올라오지 않았다. 그동안 만들면서 배우기를 통해 많은 캠퍼들을 괴롭혀왔던(?) 나지만 오늘만큼은 다른 캠퍼들이 재밌다고 입이 마르도록 칭찬했던 피그잼을 해보기로 했다.
개발 얘기만 주구장창했다. 각각의 질문을 하나씩 답변해주면서 서로 어떻게 개발을 진행했는지 공유했다. 최적화에 대한 고민, 생각도 못해봤던 문제 해결 방법 등등 신선한 얘기들을 많이 들어볼 수 있어서 좋았다. 나쁘진 않았지만 개인적으로 뭔가를 구현하면서 배우는 게 더 재미있고 배우는 것도 많다는 생각이 들었다.
✍ 리뷰활동
이번 주의 알찬 리뷰활동!
이번 주의 인상깊었던 리뷰 내용!
모달의 상태를 전역으로 관리하기 때문에 find를 사용하는 것 같네요. 혹시 지역으로 모달의 상태를 관리하는 방법은 생각해보셨나요? 굳이 다른 컴포넌트에서 현재 사용하는 모달의 정보를 공유할 필요가 없다면 전역 상태를 쓰는 의미가 없습니다.
(유효성 검증) 보통은 빈문자열이나 undefined, null를 따로 검증하는 함수를 두고 해당 함수를 이용해 값의 유효성을 체크합니다. 시간 되시면 lodash라는 라이브러리 참고해보세요ㅎㅎ
isLogin에 대한 플래그로 로그인 유무를 구별할 필요가 없어요. 토큰으로 로그인 유무가 관리되기 때문에 토큰을 이용한 api 서버 콜이 필요한 경우에 해당 토큰이 유효한지 서버에서 검증만 하면 됩니다. 토큰이 유효하지 않다면 api를 처리하고 받은 status code를 통해 로그인 페이지로 떨어트리면 될 것 같습니다.
토큰은 해당 값이 특정 기간동안 유효한지 체크하는 것이 가장 중요합니다. 따라서 api가 유저마다 개인화된 정보로 보여줘야 한다면 반드시 api 호출하기 이전 토큰 검증을 하는 로직이 들어가야 합니다.
d.ts의 경우는 import하는 대상의 타입을 타입스크립트 컴파일러에서 스스로 추론할 수 없을 때 사용합니다. 단순히 타입을 export해서 사용하지 않은 채 다른 곳에서 import하여 사용하려고 d.ts를 사용하는 것은 d.ts를 용도에 맞지 않게 사용하는 것입니다. 타입을 기준으로 나눈다는 것은 개발자의 재량이라고 생각합니다. 이 부분도 명확한 답을 드릴 수는 없어요.
refreshToken을 이용해서 accessToken을 요청하는 방식으로 인증을 유지합니다. 이 작업은 굳이 클라이언트에서 복잡한 일을 처리할 필요가 없어요. accessToken이랑 refreshToken을 두 개 들고 있다가 fetch를 하는 순간 제일 먼저 accessToken이 유효한지 서버에서 검증하고 유효하지 않다면 refreshToken을 이용해 accessToken을 재발급 받는 작업만 해주면 됩니다.
느낀점
내가 custom.d.ts를 잘못 사용하고 있었다는 것을 깨닫게 되었다. 공부를 더 해보자!
추천받은 사이트 링크: https://spookyjelly.tistory.com/83
👨💼 컴퍼니데이
파트너 기업을 만나보는 시간!
이번 주에는 당근마켓과 AB180이 웹 풀스택을 대상으로 진행되었다. 일하는 방식, 개발자 문화, 기술 스택, 업무 환경 등등 다양한 얘기를 들어볼 수 있었고, 그 회사가 어떤 회사인지 알 수 있었다. 두 회사 모두 회사의 성장뿐만 아니라 개발자의 성장 또한 중요하게 받아들이고 있다는 것이 느껴졌고 괜히 기분이 좋아졌다. 내가 이 회사에 들어갈 수 있을지는 모르겠지만..
내가 개발을 시작한 이유 중 하나는 "성장"이었다. 나는 성장을 굉장히 중요하게 바라보는 사람이다. 개발을 하면서 성장이 눈에 보여 재미있었고, 많은 IT 회사들이 성장에 목말라하고 있기에 나와 적합하다는 생각했다. 회사의 성장 스토리와 문제 해결과정을 보면서 느낀 점은 성장 관점을 가지고 있는 회사에 합류해야겠다는 것이었다. (부스트캠프를 진행하면서 현업에서 일해왔던 많은 친구들의 얘기를 들어봤는데 몇몇 회사들은 성장은 커녕 상태 유지에 급급하다는 얘기를 들은 적이 있었다.)
원래 나를 붙여주는 곳이라면 어디든 상관없다고 생각했지만 생각이 조금씩 달라지고 있는 것 같다. 성장하는 맛에 개발하는데, 성장한다는 느낌을 받을 수 없는 회사라면 동기부여가 잘 안될 것 같다는 생각이 든다. 이래놓고 계속 탈락해서 맘 급해지면 아무 곳이나 취업할 것 같지만.. 그냥 이래저래 취업에 대한 고민이 많이 들었다. 나는 아직 취업을 할 수 있는 레벨은 아니라는 생각, 남은 캠프기간 동안 어떤 것을 더 공부해야할 지 등등..