👨💻 그룹 활동
일주일 동안 chosimhe는 뭘 하면서 살았을까..?
일주일이 어떻게 지나갔는지 모르겠다. 시간이 정말 빠르다. 이번 주는 정말 다사다난했다. yarn berry를 적용했다가 호되게 당했고 Task가 예상시간보다 5배를 초과하기도 했지만, 서로가 가지고 있는 정보를 공유하며 문제를 해결해나갔다. 부스트캠프의 그룹 프로젝트는 생각보다 신경쓸 게 너무 많지만 진정한 개발이 어떤 것인지 알아갈 수 있는 소중한 기회이다. 이번 프로젝트를 진행할 때 수많은 룰을 정했다. 그 중 하나가 레포지토리에 PR을 보냈을 때 2명 이상의 코드 리뷰를 받고 Approve를 얻어내지 못하면 merge가 되지 않도록 설정해놓은 룰이다. 한밤 중에 혼자 개발을 하더라도 Approve가 없으면 merge를 할 수 없어 답답했던 적도 있었다. 하지만 막상 동료들이 코드를 리뷰하면 아쉬운 부분이나 틀린 부분들을 하나씩 나왔다. 역시 인간은 완벽할 수 없어.. 그 피드백을 바탕으로 완성된 code를 merge시키는 경험이 인상깊었다.
팀원들과 의견이 충돌할 때도 있지만 서로 소통하고 함께 문제를 해결해나가면서 배우는 점이 상당히 많다. 같은 말을 하더라도 서로 다르게 이해할 수 있고 이게 프로젝트에 영향을 줄 수도 있다는 것을 알게 되었다. 이 때문에 단순한 기능을 얘기하더라도 적당히 하지 않는다. 자세한 내용을 문서화를 하려고 노력하고 있고 해당 경험을 통해 커뮤니케이션 능력도 많이 향상되었다고 느끼고 있다.
팀회고 정리
Keep
- 지각하지 않고 시간을 잘 지켜서 출근하는 것!
- 매일 매일 회고록을 쓰면서 자신의 생각을 정리하고 팀원들에게 공유하는 것
- 중간에 문서화가 잘 안되고 있다는 것을 환기시킨 점. 다시 마음을 다잡고 문서화를 열심히 할 수 있었다.
Problem
- 각자가 구현한 기술들을 팀원들이 심지어 본인조차도 정확히 이해하고 있지 못하고 있는 것 같다. 생각만 하고 공유를 안 하는 습관도 문제가 있다. (나는 지금 내가 진행한 분야인 CI/CD나 도커는 알고 있지만 husky, lighthouse, next가 어떻게 세팅되었는지 정확히 이해하고 있지 않다.)
- 문서가 너무 많아서 뭐가 어디에 있는지 잘 모르겠다.
- 고민한 내용에 뭐가 있는지 어떤 내용이었는지 결과가 어떻게 정해졌는지에 대한 정보가 잘 기록되어있지 않은 것 같다. 중간중간 다른 주제들이 끼어들어서 더 정리가 안 되는 것 같다.
- 그룹 프로젝트 가이드에 안내된 내용을 꼼꼼히 읽어보지 않았던 것이 문제가 되었다. 적어야하는 문서들을 제대로 확인하지 않았기 때문에 제때 적지 못했다.
Try
- 매주 고정된 일정을 몇가지 만들어놔야할 것 같다. 그래야 빼먹지 않고 제 때에 맞춰 진행할 수 있을 것 같다. ex) 피어세션 준비, 데모 발표 준비 등등
- 기술에 대한 간단한 강의, 설명을 해주는 시간을 일주일에 한 번 이상 정해놓고 진행해야할 것 같다. (6기 수료생)심은석님은 그룹 프로젝트 진행할 때 진행했다고 하셨는데 좋아보였다.
- 중간 점검 시간 만들기(현재 본인의 상태, 구현의 진도, 학습의 진도 등)
- 퇴근하거나 주말이 되는 남는 시간에는 프로젝트에 적용해본거 공부, 문서화 하고 정리하기
- 다음 팀회고부터는 서로 칭찬하기 추가하자
💳 멤버십 일상
드디어 시작된 개발!
하나하나 공들여 만드느라 진도가 많이 느리지만, 확실히 이번 주에 많은 것들을 배운 것 같다. CI/CD나 도커에 대해서 아는 것이 많이 부족했음에도 팀원들이 불안해하지 않고 CI/CD를 주도적으로 해보라고 제안해줬다. 내가 관심이 많았던 분야를 공부하고 프로젝트에 크게 기여한다는 생각에 즐겁게 개발할 수 있었다. 또 개발 과정에서 많은 트러블을 마주했는데 이를 통해 배운 것들이 많다고 생각한다. 도움을 요청할 때마다 옆에서 팀원들이 적극적으로 지원해줬고, 어려운 문제들을 생각보다 빠르게 해결할 수 있었다. 노션에 문제 상황과 해결 과정을 다 기록해 놨는데, 피어세션 때 수길님이 좋은 것 같다며 올려주면 참고해보겠다고 하셔서 뿌듯했다.
요즘 운영진 분들의 한 마디 한 마디가 나의 힘이 되고 있다. 이지 님이 올려주신 2주차 회고 팁을 보면서 이번 회고를 더 알차게 할 수 있었다! MC 님도 개발과 인문학 채널에서 잠깐의 티타임을 열어 캠퍼들과 소통하려고 하는 모습을 보면서 감사했다. (아쉽게도 그룹 프로젝트의 일정과 겹쳐 참석하지 못했지만) 또, 그룹 프로젝트가 바빠서 컴퍼니데이를 굳이 신청해야할까 고민이 많았는데 지니 님이 올려주신 글을 읽고 참여해야겠다고 생각했다. 개인적으로 "1시간이라는 시간을 통해 생각보다 더 많은 기회의 문이 열릴 수도 있답니다." 라는 글이 인상적이었다.
Day0 일요일
오전 10시부터 명일이와 줌에서 만나 기술 스택을 정하고, 그 이유를 작성해봤다. SQL을 쓰느냐 NoSQL을 쓰느냐 그것이 문제로다. 공부할 걸 이것저것 정리하다보니 내가 아직도 모르는 게 너무나도 많다는 사실을 깨달았다. 잠깐 시간을 내서 내가 공부해온 것 + 공부해야할 것들을 페이지로 정리해봤다. 아래의 것 이외에도 공부할 것이 수두룩 빽빽하다... 시간날 때마다 조금씩 채워나가야할 것 같다.
오후 3시에 chosimhe 친구들과 만나 디자인, 백로그, 기술 스택에 대해 얘기를 나눠봤다. 기술에 대한 다양한 얘기를 하다보니 어느새 3시간이나 지나있었다. 요즘 자기 전에 인프콘 2022를 라디오처럼 듣고 있다고 얘기했더니 민경이가 개발자의 피가 넘쳐 흐른다면서 개발 생각으로 머리가 가득한 것 같다며 칭찬(?)해줬다.
내일 출근이 너무 기다려진다~ 빨리 내일 아침이 왔으면 좋겠다!
11/14(월) - Week2 day1
날이 너무 좋았다. 다들 놀러나가고 싶어했다. 나만 마음이 조급한가..? 그래서 협상했다. 백로그를 오후 3시까지 다 적으면 한강가서 개발하기로!! 하지만 역시나 실패!! 내가 이럴 줄 알았다.. 결국 야근 엔딩 생각나는 선에서 백로그를 모두 적었고, 마일스톤을 세운 후 이슈를 발행했다. 내일 드디어 개발을 시작할 수 있을까?
오늘 회의하면서 여러 문제에 부딪혔다. 브랜치와 배포 문제, Backlog Task의 크기를 어떻게 가져갈 것인지 등등 우리의 발목을 붙잡는 문제들이 계속 생겨났다. 한 번도 미리 생각해본 적 없는 문제였는데, 누군가가 문제 제기를 해줘서 다양한 고민을 할 수 있었다.
11/15(화) - Week2 day2
으앜 오늘은 11시에 퇴근했다.. 제가 범인입니다.. 미안합니다.. 내 제안으로 호기롭게 yarn berry를 패키지 매니저로 개발환경을 세팅하기 시작했으나, 실패로 끝났다. 공부도 많이 하지 않은 상태에서 하다보면 되겠지라고 생각한 게 패착이었다. npm으로 했으면 1시간만에 끝냈을 작업을 5시간 넘게 들이고 있었다. 이러다가는 죽도 밥도 안 될 것 같아 결국 오후 6시에 프로젝트를 엎기로 결정했다. 팀원들한테 미안했다.. 책임지지도 못할 거면서 왜 하자고 했을까.
동료들한테 배우는 점이 정말 많다. 오프라인으로 모임을 진행하다보니 수시로 고민을 나누고 의견을 나누는데 생각해보지도 못했던 고민들을 들어볼 수 있어서 좋았다. 예를 들면 알림 서버를 분리하고 이벤트 큐를 이용해 알림 성능을 최적화하는 방식에 대한 고민, 다양한 테스트 방법들, 우리가 어떤 방식을 취했을 때 생겨날 문제들을 바로바로 피드백받으면서 많이 배우고 있다. 오늘 하루 아쉬운 점이 있다면 문서화를 신경쓰지 못한 점이다. 스스로 학습했던 내용은 잘 정리했지만, 함께 고민나누고 해결해나간 과정들을 잘 정리하지 못한 것 같다.
11/16(수) - Week2 day3
저번 프로젝트에서 CI/CD의 맛만 봤었다. Docker도 다뤄본 적이 없었기 때문에 명일이가 진행하게 될 줄 알았는데, 선뜻 나에게 해보라고 제안해줬다. 대신 명일이는 ERD 설계를 진행하기로 했다. 오늘 안에 CI/CD와 도커 이미지 생성 및 registry에 등록하기, docker compose 다루기까지 모두 끝내려고 했었는데.. 역시 계획은 밀리라고 있는 건가보다. CI를 하면서 도커 이미지를 등록하는 작업 중 벽에 많이 부딪혔었는데, 궁금한 게 생길 때마다 명일이와 함께 자료를 찾아가면서, 함께 해결해나가니 두려울 것이 없었다.
이번 프로젝트에서 내가 CI/CD를 주도적으로 하게될 줄은 꿈에도 몰랐다. 내일 프론트 CI/CD를 진행할 때도 같이 진행하기로 했다. 이전 블로그 후기에 적었다시피 자동화에 환장하는 사람이라 해당 작업이 매우 즐거웠다. 물론 너무 어렵다고 느껴질 때도 있었지만, 하면 할수록 Github actions의 생태계가 어떻게 돌아가는지 감이 잡히는 것 같다. 프론트의 매력에 흔들리고 있었는데, 백엔드도 본격적으로 파고 들어가니 굉장히 흥미롭고 재미있다.
프로젝트를 진행하면서 내가 얼마나 많이 성장했는지를 체감하고 있다. 코드와 기술을 이해하는 능력이 향상됐고, 이전에는 감도 못잡고 있었을 것 같은 어려운 문제를 무서워하지 않는다. 이 문제를 어떻게 접근, 학습하고 해결해야할지 머리 속에 자동으로 그려진다. 또 동료들의 존재가 내 성장의 제일 중요한 역할을 하는 것 같다. 파티를 구성하면 경험치 10배 이벤트?!?!??
11/17(목) - Week2 day4
어제에 이어 CI/CD를 진행했다. github actions을 이용해 도커 이미지를 NCP container registry에 올리는 작업을 진행했는데 20번 이상의 시도 끝에 겨우 해냈다!! 덕분에 밥시간이 늦었다. 다른 친구들이 참고해볼 수 있게 문제해결과정을 노션에 다 정리해놨다!
오후에는 프론트엔드를 중점적으로 하는 친구들과 함께 프론트 CI를 진행했다. liveshare로 라이브코딩 및 설명을 하면서 하니 github actions와 docker가 확실히 정리되었다! 그래봤자 짧은 지식이지만.. 1시간도 안 걸려서 끝났던 것 같다. 어제 고생한 보람이 있다.
오후 5시쯤에는 진이 다 빠졌다. nginx dockerfile setting과 CD를 위한 docker-compose 설정에 벽을 느껴버렸다. 너무 많은 정보가 들어와서 머리 속이 어지럽다.. 이런 걸 인지 초과라고 하는 걸까..? (최근 프로그래머의 뇌라는 책을 다 읽었는데 그 책에 나온 내용이다.) 그 때쯤 면접를 마치고 온 명일이가 왔다. 명일이가 docker compose와 CD github actions를 같이 해줬다!! 너무 든든하다… CI/CD를 어떻게 진행하면 좋을지 얘기해봤는데, PR날릴 때마다 이미지를 저장하는 것보다는 merge되고 나서 registry에 등록하는 게 나을 것 같다고 판단하여 방식을 바꾸게 되었다.
서버 SSH에 접속할 때 필요한 셸스크립트 짰다. 테스트를 돌릴 때마다 틀린 게 하나씩 발견된다.. 계속된 PR과 테스트의 늪… 이제 집가서 마무리만 하면 될 것 같다. 이번 데모는 내가 발표를 하게 될 것 같다, CI/CD가 그나마 발표할만한 주제이고, CI/CD를 주도적으로 해본 내가 발표를 맡기로 했다! 저번 주 기획공유에 이어 이번 주까지..? 발표 노예 어려운 주제라 발표를 잘 할 자신이 없지만.. 집가서 열심히 준비해봐야겠다.
11/18(금) - Week2 day5
아침에 일어나자 마자 코드를 수정했다. 자고 일어났더니 승찬이와 명일이가 코드리뷰를 남겨줬다. 해당 피드백을 반영해 PR을 다시 날렸는데 merge를 할 수가 없었다. 이런 Approve같으니..
데모 발표를 순조롭게 진행하고 점심을 먹은 후 피어세션을 진행하는데 오랜만에 보는 얼굴들도 있었다! Web26조 분들과 만났는데 오프라인 모임을 진행한 후로 공유 오피스에 굉장히 혹하신다고 하셔서 우리 팀이 있는 신도림으로 오라고 꼬셨다. 긍정적으로 검토해보겠다고 하셨다. 공유 오피스에 부캠이 3팀이나?!?
기술 공유 시간에는 다양한 분들이 발표하는 내용을 들어볼 수 있었다. 특히 시온님이 발표하신 Github Actions에 큰 관심이 가서 따로 질문해 발표자료까지 얻어뒀다!! 이번에 CI/CD를 하느라 Github Actions을 다룰 일이 많아서 더 재미있게 들었다. 우리 팀원들이 확인할 수 있도록 프로젝트 노션에 발표 내용은 따로 정리했다!
마스터클래스 시간은 각 팀들이 궁금한 것들을 물어보는 식으로 진행되었다. 아래는 관경님이 속해있는 undefined라는 팀인데 소개가 웃겨서 첨부해봤다. 차량복지.. 사무실에서 달릴 수 있는 차량이 있다??
🕺 이번 주의 커뮤니티 행사
수료생과의 랜선 MeetUP
이번에도 4분의 수료생이 오셔서 캠퍼들에게 좋은 정보들을 공유해주셨다! 기능을 많이 개발해야하지 않을까란 생각을 가지고 있었는데 행사 후 그 생각은 깨져버렸다. 기능을 많이 개발하지 못하더라도 문서화를 빈틈없이 해놓고, 뭐 하나를 하더라도 공들여 만들면 그 과정이 값지다는 사실을 알게 되었다.
기발하고 대단한 것들을 만들어내지 못하더라도, 새로운 기술에 도전해 공부하면서 배우고 팀원들과 많은 이야기를 나누며 함께 만들어가는 프로젝트에서 커뮤니케이션 경험을 쌓는다는 것 자체가 굉장히 소중한 경험이다. 서로의 코드를 리뷰해주고 룰에 맞춰 commit, PR, merge하는 것, 기능을 구현할 때 내 맘대로 만들 수 없는 것 하나하나가 생소하고 불편하지만 이런 과정들이 나중에 가면 큰 도움이 되지 않을까?
은석님은 그룹 프로젝트를 진행할 때 팀원 간의 기술의 이해도 수준을 맞추기 위해 팀 내 기술공유 발표 시간을 따로 마련하셨다고 했다. 엄청 좋은 아이디어 같아다고 생각했고 팀원들에게 다음 주부터는 공식 일정으로 만들어 우리가 만든 프로젝트를 정확히 이해하는 시간을 가지자고 제안했다. 민지 님이 첫 번째 프로젝트에서 얻은 교훈을 바탕으로 두 번째 프로젝트를 잘 만들어갔던 내용도 굉장히 인상적이었다.
첫 프로젝트??
강점으로 내세울 부분이 부재했고 약간 애매한 결과물이었던 것 같다. 빠르게 개발한 스킬만 늘었던 것 같다.
문제는 뭐였을까?
배려하느라 솔직하게 말하지 못한 점
선택의 기로에서 충분히 왜를 생각하지 못한 점
트러블슈팅을 기록하지 못한 점
구현에만 급급했던 점
이벤트 수집이라는 주제를 살리지 못한 점
다음에는 이렇게 해야지
다 괜찮다고 하는 게 정말 괜찮은 건 아니다.
왜 선택해야 하는지를 충분히 고민하기
왜 선택했는지 기록하기
어려운 문제 해결 과정 기록하기
많은 기능 구현이 중요한 것은 아니다
주제를 통해 어필할 수 있는 부분을 내세우자
인상적인 질문과 답변
Q. 프로젝트를 진행하며 기술적으로 어려웠던 경험에 뭐라고 답변하셨는지
A. 사실 면접관님도 그 질문을 여쭤보실 때 뭐가 어려웠는지에 포인트를 두신 것이 아니라 그 문제를 어떻게 해결해나갔는지를 알아보려고 하시는 거라고 생각합니다. 문제 해결 과정을 잘 정리해두고 면접에서 잘 얘기하시면 좋을 것 같습니다.
Q. 취뽀할 수 있었던 3가지 이유!!
A. 첫 번째로 "실패에서 배울 수 있는 능력"이라고 생각하고 두 번째는 "부스트캠프", 마지막으로 정말 중요하다고 생각하는 요소인데 "운"입니다.
Q. 뭘 얻어가겠다는 마음으로 임하셨는지 궁금
A1. 사람들이랑 많이 친해지고 싶었고, 이렇게 어려운 걸 도전해봤다는 경험을 남기고 싶었다.
A2. 사이드 프로젝트를 시작하는 것은 쉽지만, 끝내는 것은 어렵잖아요. 그래서 잘 끝내고 싶다고 생각했는데, 끝나고 나서 프로젝트 자체가 중요한 것이 아니었다는 것을 깨달았습니다.
A3. 클린 코드와 클린 아키텍처를 많이 신경쓰고 싶었습니다. 사람과 친해지고 싶었어요!!
A4. 뭘 하든 후회하지 않겠다는 마음으로 임했어요.
Q.채용 과정에서 그룹 프로젝트이 어떤 식으로 도움이 되셨는지 알고 싶습니다. 프로젝트를 통한 성장 수준을 본다고 듣긴 했지만, 결과물 자체도 채용에 어필이 될 수 있을까요?
A1. 그 과정에서 고민했던 것들, 어떻게 성장했는지, 커뮤니케이션을 어떻게 했는지가 큰 도움이 될 거라고 생각합니다.
A2. 고민이 가장 중요한 것 같습니다. 결과물에 너무 집착 안 했으면 좋겠어요.
A3. 개발한 결과보다는 계기나 과정, 생각을 많이 물어보십니다!
A4. 결과물 자체를 어필하기보다는, 깃허브에 남는 기록들과 프로젝트의 코드 퀄리티에 신경쓰는 것이 좋을 것 같습니다.
Q. 기록은 그때그때 하셨나요? 날 잡아서 하셨나요?
A1. 생각의 흐름같은 것을 정리해뒀습니다! 기술 공유에 당첨되면 정리할 기회가 생깁니다… ㅋㅋ 꾸준히 기록하시는 분도 있으셨어요!!
A2. 회의록 정리에 정리를 많이 해뒀고요, 기술을 다같이 정리했습니다.
A3. 짧게짧게 키워드로 기록해놨습니다. 길어질 것 같으면 나중에 한 번에 했습니다.
A4. 새로운 기술이 있으면 PR에 잘 남겨놨습니다. 따로 날잡아서 하진 않았던 것 같아요.