2022년이 지났다.
상용되는 프로그램을 개발 및 운영하고, 좋은 교육을 받고, 동아리를 운영하기도 하며 2022년을 보냈다.
2022년의 기억이 휘발되기 전에 2022년을 정리할 목적, 또 2023년을 잘 대비할 목적으로 글을 정리하려 한다.
충북 SW JUDGER
상반기는 학교에서 사용되는 코드 채점 프로그램을 만들며 보냈다.
갑자기 사용자가 많아지고 기능이 추가되며 프로그래밍 과제를 채점하는 기능, 각종 버그들 수정 및 UX 개선등을 2개월 안에 추가해야 했다.
교수님께서는 프론트 팀을 이끌며 개발하라 하셨고 할 지 말 지 고민할 시간조차도 부족했기에 어떻게 해야 될까?라는 생각만 했다.
평소처럼 살아서는 쉽게 될 것 같지 않아 체계를 만들었다.
루틴 만들기
학습해야 하는 부분과 개발할 내용이 동시에 많은 상황이라 여러 가지 루틴을 만들어 매일 조금씩 나아갈 수 있는 환경을 만들었다.
1. 백엔드를 담당하시는 분과 매일 오전 9시까지 카페로 출근한다.
2. 오전에 개발할 태스크와 오후에 개발할 태스크를 나누어 태스크가 완료되면 밥을 먹는다.
3. 오후 태스크가 끝나면 학습해야 할 내용을 공유하고 학습한다.
4. 주말에는 팀원들도 최대한 빠르게 개발에 참여할 수 있도록 함께 작은 미션을 하고 코드리뷰를 통해 확인한다.
다행히도 만든 루틴들이 의도한 대로 작용하여 기간 내에 개발을 끝냈다.
하지만 반성해야 할 점들이 많았다.
피드백해야 할 것들
- 클린코드를 작성하지 못했다.
- 기능 개발에 급급하여 라이브러리의 동작을 이해하지 못했다.
- 팀원들이 많은 부분을 기여할 수 있도록 돕지 못했다.
다시 읽었을 때 쉽지 않은 코드들이 생겼다.
라이브러리가 이미 추상화해놓은 것들에 대한 정보가 없어 컴포넌트에서 함수를 만들어 사용했다.
또 if문을 중첩하거나 for문을 사용하지 않아도 되는 곳에서 사용하거나하는 자잘하게 걸리적거리는 코드들도 생겼다.
그래서 피드백이 됐는가?
이 이후부터 나는 최근에 리뷰받거나 적용해야 하겠다고 생각한 내용을 메모장에 적어놓고 노트북을 열 때마다 보는 습관이 생겼다.
그리고 클린코드 자바스크립트 레포에 정말 자주 들어가서 체화시키고 있다.
이후에 부스트캠프를 진행하며 간혹 캠퍼분들이 코드를 깔끔하게 짜시는 것 같다고 말씀해주신 적이 있는데 아직 많이 부족하지만 조금씩 나아지고 있다고 생각한다.
다른 사람들이 읽기 좋은 코드와 글을 만드는 일은 즐거운 일이다.
2023년에는 더 많은 코드리뷰와 피드백을 받을 것 같은데 이를 얼른 체화해서 팀에 도움 되는 사람이 돼보자..!
프로젝트 동아리 시퀀스 개설 및 운영
재학 중인 학과에 프로젝트를 하시고 싶어 하시는 분들이 많은 데에 비해 환경이 없다고 생각하시는 분들이 있었다.
그래요..? 그럼 저희가 만들죠..
그래서 마음이 맞는 동기들끼리 동아리를 개설하고 열심히 프로젝트를 했다.
1. 시퀀스 웹 및 모바일 앱
2. 프로 리뷰어
함께하실 분들을 모집하여 매 학기마다 애플리케이션을 하나씩 만들었다.
결과적으로
다들 프로젝트에 진심이 됐다.
처음엔 일정 산출을 잘 못했는데 이제는 어떤 기능을 언제까지 만들겠다고 계획하면 대부분 그 안에 개발이 된다.
혹시라도 일정을 지키기 어려울 것 같으면 팀원들에게 바로바로 알리고 함께 해결하거나 일정을 늘려 프로젝트에 지장이 되지 않게끔 했다.
또 서로 코드 리뷰를 거듭해나가며 점점 코드들이 구조가 생기고 있다.
그리고 커뮤니티에 긍정적인 에너지가 있어 서로가 서로에게 도움이 되는 모습을 볼 때마다 즐겁다.
피드백해야 할 것들
1. 현업에 종사하시는 분들과 부트캠프와 학교와 동시에 참여하시는 분들도 있다 보니 프로젝트가 예상한 것보다 길어졌다.
2. 프로젝트에 적극적으로 참여하지 못하시는 분들도 있었다.
3. 아직 개발이 익숙지 않은 부원들이 적응할 방법이 부족하다.
그래서 시도해본 혹은 시도해 볼 몇 가지
프로젝트 기간이 꼭 한 학기일 필요는 없었다.
조금 더 깊은 학습과 여유 있는 개발을 위해 프로젝트 기간은 넉넉하게 두되 태스크에 기간을 정하여 프로젝트해야 하겠다고 생각했다.
또 주에 한번 주간 회고를 통해 진행사항을 서로 확인했다.
주간 회고에 KPT 방식 도입을 제안해 보아야겠다.
계속할 것, 문제상황, 시도해볼 것들을 나누어 회고하는 것인데 체크리스트로 만들어 매주 회고에 저번 주에 생각했던 것들에 개선점이 있는지 얘기해보면 좋을 것 같다.
다른 프로젝트에서 KPT 방식의 회고를 했었는데 개선된 점을 확인할 때 뿌듯한 느낌이 좋았다.
팀별 스터디를 개설했다.
이건 필자가 한 건 아니지만 운영진들이 스터디를 만들어 진행하고 있다.
부원들이 적응할 수 있도록 프리코스를 운영했다.
협업하며 간단한 프로그램을 만드는 경험을 통해 자신감을 얻고 팀으로 일하는 재미를 느끼길 바라며 기획하고 진행하였다.
처음 웹개발을 해보시는 분들이 리뷰요청을 해주셨다.
지금까지 개발하며 고민했던 내용들과 모르고 개발하면 힘들었던 부분들을 리뷰와 동시에 담으려고 노력했다.
부스트캠프 7기
네이버 커넥트 재단에서 운영하는 부스트캠프 웹 풀스택 과정을 수료했다.
정말 많이 배웠고 힘들었지만 즐거웠다.
챌린지
챌린지 과정 회고 및 후기는 이 글을 참고해 주세요!
2022.08.24 - [생각정리] - 부스트캠프 멤버십 합격 후기 (feat: 챌린지 수료)
학습 스프린트
학습 스프린트 과정은 8주 동안 5개의 프로그램을 만드는 과정이다.
어려운 기능들이 많이 탑재된 프로그램을 풀스택으로 만드는 과정이기에 스트레스가 많았다.
하지만 그렇기에 스트레스가 많이 얹힌 상태에서 빠른 학습을 통해 구현하는 연습을 많이 할 수 있었다.
학습 스프린트 초반에 들었던 특강에서 deep dive 한 공부가 중요하다고 해주셨다.
필자의 경우에 deep dive 한 공부를 어떻게 하는 건지 몰라 막막했었다.
그런데 결국 지식들을 입력하고 문제를 해결하기 위해 인출하는 것을 잘해야 한다고 생각했다.
그러려면 입력하고 입력한 것을 바탕으로 인출하는 연습을 해야겠구나라는 생각을 했다..
그래서 내가 택한 방법은 글쓰기와 직접 구현해 보기이다.
글쓰기 훈련
인출하는 훈련을 글쓰기로 해야겠다고 생각한 건 다음의 두 가지 이유에서다.
1. 글로 바꾸면서 잘 모르고 있는 내용을 더 학습해서 잘 알기 위해
2. 나중에 기억이 안 날 때 내가 정리한 글을 보기 위해
그 이후로 습관을 들이기 위해 부스트캠프 슬랙 채널 중 100 days challenge에 참여해 블로그 글이나, 옵시디언 그래프를 업로드했다.
직접 구현해 보기
개구리에 대해 알고 싶으면 개구리를 만들어봐라.
학습을 통해 인출을 해야 하는 직업을 가진 모든 분들에게 도움이 되는 말일 것 같다.
그래서 나는 학습 스프린트 과정에서 다음과 같은 것들을 직접 구현해서 프로젝트에 적용해 보았다.
1. 가상 DOM
2. pub sub 패턴을 이용한 전역 상태관리
구현하는 과정에서 진짜 머리가 깨질 뻔했다..
하지만 이 과정에서 라이브러리들이 해결하는 본질적인 문제들이 무엇인지 알 수 있게 됐다.
또 다른 방법으로도 해결할 수 있지 않을까? (ex 실제돔에 diff만 적용하는 방법, Proxy 객체를 이용한 상태관리)
등을 생각하며 양질의 고민을 할 수 있었다.
이런 직접 구현해보는 류의 학습을 통해 직접적으로 도움이 되는 부분은 나중에 관련 라이브러리에서 생긴 에러를 디버깅할 때 나온다고 생각했다.
실제로 브라우저 렌더링이 잘 안 돼서 찾아보니 Babel에서 jsx를 잘못 변환하고 있었던 사실을 쉽게 알아낼 수도 있었다.
또 전역 상태관리 라이브러리인 Zustand를 사용할 때 상태가 store를 분리하지 않으면 렌더링의 비효율이 생기는 것을 디버깅할 수도 있었다.
컨퍼런스에서 발표 (부스트 컨퍼런스 2022)
부스트캠프에서 좋은 기회를 주셔 캠퍼분들께 너와 나의 함수형 프로그래밍이라는 주제로 발표를 하게 됐다.
한창 바쁜 시기였는데 발표 준비, 시험공부, 스프린트가 겹치면서 정말 극한의 상황에서 발표를 하게 됐다.
안드로이드 리뷰어님이신 영직 멘토님과 다른 캠퍼분들이 리허설 때 꼼꼼히 피드백해주셔 다행히 잘 발표할 수 있었다.
피드백해주신 분들, 영직 멘토님, 준비해주신 운영진분들, 잘 들어주시고 리액션해주신 캠퍼님들 진심으로 감사드립니다.
발표자료는 이곳에서 확인할 수 있다.
https://www.slideshare.net/BoostCamp1/7-tech-talk
개인적으로 지식 공유하는 것은 굉장히 재밌는 일이다.
그중에서도 많은 사람들이 집중하는 상황에서 지식 공유하는 것은 매우 즐겁다고 느꼈다.
하지만 공유하는 지식의 질을 높여야 앞으로도 연사를 할 수 있겠다고 느꼈다.
좋은 동기부여였고 계속 학습하고 잘 정리해서 공유하며 성장하고 싶다.
그룹 프로젝트
부스트캠프의 마지막 여정으로 6주간 프로젝트를 기획, 디자인을 포함하여 모든 부분을 개발하여 배포하였다.
프로젝트 경험은 값졌다.
눈떠서 눈 감을 때까지 개발하는 것은 기본이고 자는 시간까지 줄여가며 개발에 임했다.
처음엔 장난으로 잠은 죽어서 자자고 했는데 어느새 팀내 밈이 돼서 진짜 다들 안 주무셨다. (이왜진?)
그 결과 우리가 목표한 모든 기능들을 완료하고 그 과정에서 깊이 있는 고민들을 했다.
고민들
사용자 경험이 좋은 코드 에디터를 만들려면 어떻게 해야 할까?
여러 HTML 태그들을 스택처럼 쌓고 스크롤 등을 동기화하려면 어떻게 해야 할까?
직관적인 디렉터리 구조는 어떻게 잡을 수 있을까?
어떻게 하면 팀의 생산성을 높일 수 있을까?
사용자에게 실시간성이 있는 인기 검색어 목록을 보여주려면 어떻게 해야 할까?
등등 정말 많은 고민을 해야 했고 계속해서 경험을 통해 근거를 세우며 개선했다.
진심으로 몰입한 프로젝트에서 양질의 고민들을 계속하고 개선하는 경험은 매우 값지다.
이러한 고민들은 아래링크에서 결과물과 정리된 포스팅들을 볼 수 있다.
https://github.com/boostcampwm-2022/web06-weview/wiki
성장
이 6주가 2022년에서 제일 성장을 많이 한 6주가 아닐까 생각이 든다.
협업 스킬에 대해 많은 것을 얻었다.
문제가 잘 안 풀릴 때 팀원과 공유하여 문제를 해결하며 집단 지성을 사용하는 것을 배웠다.
예를 들어 네 명의 팀원이 각각 1의 능력치를 가지고 있을 때 팀이 모이면 5~10의 능력치를 발휘할 수도 있다는 걸 경험했다.
나도 어떤 팀에 색깔에 맞추어 개개인의 역량을 극대화하기에 도움이 되는 팀원이 되려면 어떻게 해야 할까를 고민해 봤다.
일단 내가 맡은 일을 팀원이 기대하는 만큼 완벽하게 해내는 게 우선이라고 생각했다.
그다음 팀원들이 내가 한 일을 이해하는 데 드는 시간을 줄일 수 있도록 문서화하거나 자동화하면 도움이 될 수 있다는 것을 느꼈다.
이 두 개의 글들이 그 기록인 것 같다.
2022.12.04 - [DevOps] - git hooks 설정으로 팀 효율 높이기
2022.12.21 - [DevOps] - StyleLint WebStorm에서 저장할 때 적용하기
또 나에 대해 배웠는데 나는 내가 하고 싶은 개발할 때 재밌어하는 사람이라고 생각했었는데 아니었다.
내가 하고 싶은 개발 못해도 팀에 도움이 되는 일을 했을 때 훨씬 재밌게 개발할 수 있는 사람이란 것을 느꼈다.
왜 그럴까 나름대로 생각해보면 나만 좋으면 1이지만 n명이 좋으면 n만큼 좋아질 수 있어서 더 효율이 높은 것 같다.
2023년 목표?
중요한 것은 꺾이지 않는 마음 회사에 적응
2022년 학교생활을 마치고 바로 취직을 했다.
아마 적응하느라 바쁠 것 같다.
회사일을 잘 해내는 게 2023년의 1순위 목표이다.
WASM(웹 어셈블리) 공부
메모리를 직접 다루는 언어들을 잘 공부해서 브라우저에서 사용해보고 싶다.
크게는 WASM 공부이고 자세히는 메모리를 직접 관리해주어야 하는 언어를 사용해서 운영체제와 컴퓨터 구조를 깊게 공부하는 것이다.
컴퓨터 구조를 다루는 책을 읽고 OS를 직접 만져보는 공부를 먼저 해보려고 한다.
그 이후엔 브라우저에서 C++로 제작한 게임이나 프로그램을 구동시키고 일반적인 js로 만들어진 프로그램과 비교해 본 후 글을 작성하고 배포하는 게 목표이다.
마무리
2022년은 정말 바쁘게 살았다.
운이 좋게 좋은 기회들을 얻었고, 그 기회들이 얼마나 값진 지 알기에 그 시간들에 몰입하며 최선을 다 했다.
그리고 그 과정은 힘들었지만 매우 즐거운 시간이었다.
너무 좋은 분들과 함께 할 수 있었고, 많은 것을 배울 수 있었고, 학습을 하며 많은 것을 꿈꿀 수 있었다.
2023년도 사실 그저 주어진 시간들에 최선을 다하며 살면 잘 지나갈 것이라 믿어 의심치 않는다.
하지만 그 과정에서 조금만 더 꼼꼼하게 해야 하는 것과 하지 말아야 하는 것을 구분하고 꾸준히 기록하며 살아보는 것이 목표이다.
이 글을 보시는 분들을 포함하여 모든 분들이 2023년 좋은 일만 가득하기를 진심으로 바랍니다!
댓글