레벨 4 개학 첫 날, 우리 리뷰미 팀은 모여서 팀 방향에 대해 이야기했다.
미션, 취업 준비 등에 비중을 두는 크루들도 있다고 들어서 우리 팀은 어떻게 생각하는지 들어보고 싶기도 했다. 얘기해보니, 우리 팀은 모두 팀 프로젝트를 발전시키는 데 집중하기를 원했다.
그렇다면 5차 데모데이까지 어떤 요구사항을 도출해 적용해보아야할까? 5차 데모데이까지는 1달이기에 중간 점검이 필요하다고 생각했다. 따라서 2주씩으로 나눠서 충족할 요구사항을 분배했다.
우선적으로는 런칭 페스티벌에서 받은 피드백에서 요구사항을 도출했다. UX적인 피드백이 많았기에 프론트의 요구사항으로 바로 연결되었다. 백엔드는 2주동안 서버를 운영해보면서 겪었던 문제점(로깅, 메모리 부족 등)과 인프라 개선 등을 2주동안의 요구사항으로 정했다.
팀끼리 같은 방향을 보고 나아가고 있는지를 확인할 수 있어서 좋았다. 비유하자면 주파수를 맞췄으니 열심히 작업만 하면 되겠다는 느낌이었다. 일할 거리가 늘어서 어깨는 무겁지만 마음은 가볍다!
레벨 3를 돌아보면 아쉬운 점이 많았다. 팀 작업에서 개선할 점을 찾아서 제안하고 주도적으로 한다는 느낌보다는 해야하는 일이 있으면 받아서 처리하는 쪽에 가까웠다. 뭐가 문제였나 하고 계속 생각했던 것 같다. 레벨 3때 뭔가를 놓친 느낌. 왜 그랬을까?
학습에 급급해서 그랬다고 생각한다. 학습할 게 너무 많았다. 그외의 시간에는 스터디 준비, CS, (방학 땐)알고리즘을 우선적으로 시간을 투자했으니, 내가 받은 작업 외로 생각하는 것은 후순위가 되어 결국 레벨 3동안 해보지 않았던 것이다.
안그래도 백엔드 내에서 PR, 작업 제안을 확인하는 속도가 느린 것에 불편함을 느낀다는 문제 제기가 나왔다. 그 얘기를 들으면서 생각이 많아졌다. 솔직히 작업 제안에 대해서 바로 바로 대답하거나 논의해보려고 하지 않았던 나였다. 그래서 터놓고 얘기해보면서 알게된 것이 있었다. 버거워서 내가 그랬다는 것. 작업 제안에 담긴 내용 자체를 이해하지 못하거나, 현재 하고있는 게 버거워서 나서지 않았다는 것. 그랬더니 팀원이 말해준 내용은 이러했다.
‘버겁다는 걸 얘기했으면 했다. 스스로 뭘 모르겠는지를 모르는 정도라면, 뭘 모르겠는지조차 모르겠다고 얘기했으면 했다. 팀을 위해 뭔가를 하고싶은데 뭘 해야할지 모르겠으면 그것조차도 물어봤으면 했다.’
이상하게도 그 얘기를 들으니 마음이 탁 풀리는 기분이 들었다. 나름 질문에 대해 점점 더 부담감이 줄었다고 생각했지만 여전히 제대로 질문해야한다고 생각했던 게, 차라리 아무말이어도 팀원 입장에서는 질문하는 게 낫구나라는 생각, 안도감. 그래서 팀원들에게 이야기했다. 그런 답답함이 느껴지지 않게 이제 정말 다 물어보겠다고. 더불어 팀에 몰입하고 싶은데 어떻게 해야할지 모르겠는 문제도 일단 팀 작업을 최우선으로 처리하고, 다른 것들을 미뤄보기로 했다.
모르는 지식이 넘쳐나는 데 던져진 상황에서 충분히 생길 수 있는 문제였다고 생각한다.
실패를 느꼈지만 오히려 좋다.
왜냐하면, 문제를 인식했고 원인을 찾았다. 그리고 액션 플랜까지 나왔으니, 이걸 적용해서 레벨 4에서 학습과 팀 작업을 병행하는 방법을 찾아가면 된다!
레벨4, 내가 신나서 얘기할 수 있게 팀프로젝트에 몰입해보자!
런칭 페스티벌 서버가 죽는 문제가 발생했었다. 원인은 apt 업그레이드와 같은 정기 업데이트 때문이었고 nginx에 의해 일어난 경우도 있었다. 물론 swap 메모리 설정을 함으로써 해결할 수 있었겠지만, 이렇게 nginx의 동작에 의해 운영 서버 메모리에 부담이 가는 상황이 또 문제를 발생시킬 가능성을 없애고 싶었다.
따라서, nginx를 별도의 인스턴스로 분리해주기로 하였다. 더불어 운영 서버도 small로 스케일 업을 해주기로 했다. 왜냐하면 기존에 micro 사이즈였는데 평소 ram 사용이 70퍼센트에 가까웠다. 서버가 내려간 이유가 메모리 부족이기도 했기에 필요가 느껴서 근데 이제 무중단을 곁들인! 아루의 작업 제안으로 (미션을 제쳐두고..) 재밌을 것 같아서 함께 하였다.
아루가 잘 정리해놔서 첨부 → AWS EC2 무중단 Scale-up 적용기
사실 미션에 시간을 많이 쏟지 못했다.
물론, 레벨 2때부터 궁금해했던 프레임워크의 동작 과정이다. 그래서 컨트롤러까지 들어오는 과정이 어떻게 되는데? ResponseEntity를 응답하면 어떻게 포장이 되어서 나가는데?가 궁금했었다. 하지만 한정된 시간 내에 내 우선순위에 따라서 미션이 가장 마지막이 되었다.
따라서, 미션을 엄청 고도화 시키지는 못하더라도 최소한의 미션 목표만 잡고 가자. 하고 목표를 설정했다. 목표는 이렇다!
1. 프레임워크의 동작 과정을 내가 만들어보면서 이해하기
2. 팀 코드가 아닌 곳에서 책임 분리, 테스트, 클린 코드 등의 기본 자세를 혼자 적용해보기
ps. 우테코 후드집업을 받아 즐거운 레벨 4의 리뷰미