회고록

늘 확장 가능성을 열어둡시다

Ahyeon, Jung 2024. 5. 8. 14:57

 

사실 이 프로젝트는 고민을 하다가 코드 리뷰랑 설명을 너무 잘해주셔서 더 많이 경험해보고, 재밌어서 더 참여했던 기억이 있던 코치님이 맡아주신다고 하셔서 참여했다. 사실 중간고사 기간에다가, 보통 시험기간 끝나자마자 과제 폭탄이 들어오기 때문에 진짜 고민을 많이 했다. 그래서 못하겠다고 결론을 내렸을 때쯤, 코치님이 등장하셔서 바로 참여했다. 그리고 역시나 그때와 같이 열정적으로 알려주셨고 방향을 잡을 수 있었다. 역시나 통학 시간이나 과제 등으로 시간을 뺏기는 바람에 코드에 부족한 부분이 많았지만, 그럼에도 내 코드의 잘못된 점을 알아갈 수 있는 기회였기 때문에 자발적으로 잠 줄여가면서 코드를 쳤다는 사실에 만족한다. 일단 3시간 통학, 3시간 수업, 3개의 팀플에 치이고 체력적으로 지쳐서 마지막주엔 거의 멘탈이 나간 상태였다. 아이스아메리카노도 잘 안먹었는데 매일 빅포즈에 샷추가해서 들고 살았다. 멘탈이 약하기도 하고 원래 게을러서 체력 떨어지면 그냥 안하다보니 멘탈보다 체력이 먼저 나가떨어진게 살면서 처음이었는데, 내가 개발에 대해서 꽤나 욕심이 있다는 사람인게 놀라웠다.

 

프론트 협업

 다 떠나서 일단 재밌었다. 한분은 피그마를 잘하셔서 프론트엔드로서 피그마 궁금했던 점 해결할 수 있었고, 한 분은 컴포넌트 외에 관심이 많으셔서 내가 추가해야할 점을 알 수 있었다. 그리고 두분 다 일단 하는 습성이라 신기했다. 나는 에러나오면 풀려고 애쓰기보다 원인을 파악해서 없애려는 성향이 강한데, 에러 상황을 풀려고 시도하는 모습을 자주 보여주셔서 저런 태도도 있어야하는구나 싶었고, 인프라나 설정 파일에도 관심을 가져야한다는 것도  느꼈다. 사실 인프라의 멋짐을 몰라서 큰 관심이 없었는데 그 CI/CD를 본인이 했다고 어필하는게 좀 멋졌다. 일단 당시에 팀플하면서 어쩌다보니 이미지 파일 저장소가 필요해서 S3 버킷을 만들었는데 생각보다 크게 어렵진 않았던 것도 한몫했다.

변수명 컨벤션

거의 혼자서 진행할때는 다른 사람이 본다는 생각까지 하지 못했고, 프리지링크에서는 아무래도 공통컴포넌트를 받아쓰다보니 변수명을 정하는 입장이 아니었다. 그래서 다른 프론트엔드 개발자가 보기 편하기 위한 변수명을 사용해야한다는 사실을 크게 느꼈다. 다른 사람이 정해준 변수명을 이해할 때 가끔씩 명확하지 않은 것을 확인하면서 변수명이 중요하다는 것을 많이 느껴서 신경을 많이 썼다. 그런데도 리뷰를 받았을 때 도메인에 맞추거나, 책임이 더 명확해야한다거나, 값이 더 직관적으로 이해될 수 있어야한다는 의견을 주셔서 여러가지를 생각해야한다는 사실을 느낄 수 있었다.

확장성

일단 나는 거의 프로젝트를 몰아쳤기 때문에 리팩토링을 할때 어떤 점이 고려되어야하는가에 대한 생각을 직접적으로 해본적이 없다. 그런데 이번 프로젝트에서 코드리뷰받는 게 목적이었어서, 빠르게 UI를 치고 다듬고 싶어서 1주차에 끝내고 리팩토링의 연속이었다. 그러다보니 기존의 컴포넌트들을 가져다 쓰는 과정이 많았는데, 이때 케이스마다 부족한 부분들을 채워넣어야했다. props에 태그의 기본 속성들을 안넣어주거나 놓쳤던 것들이 많았고 타입 확장이라는 방법이 있다는 것도 알게 되었다. 그리고 모달 컴포넌트의 케이스가 매우 많은 것을 보면서 리팩토링을 한 3번정도 했는데, 이때 처음에 케이스 파악을 하고 설계를 잘해야한다는 것도 알 수 있었다. 결국에 공통 컴포넌트에서는 비즈니스 로직을 제거해야한다는 점을 재사용성과 확장성 맥락에서 확실하게 알 수 있었다.

안정된 코드

결국에 확장성과 비슷한 맥락이긴 한데, 확실히 라이브러리나 실제 회사의 코드를 많이 봐야겠다는 생각을 많이 했다. 타입 확장성에 대해 고려한다는 것을 생각하지도 못한 상태였는데, 우연하게 라이브러리를 열어보니 타입이 엄청 세세하게 있었고, 엄청난 함수들로 채워져있다는 사실을 확인할 수 있었다. 이래서 실무 경험을 해야한다는 거구나 싶었고, 이제 다른 사이드 프로젝트를 보기보다 기업의 프로젝트를 열심히 읽어나가면서 시야를 넓혀야한다고 느꼈다. 거의 체험용으로 테스트 코드를 작성하면서도 안정적인 코드를 만드는게 좋다는 걸 느낀 상태였기 때문에, 어떻게 더 깊이있는 컴포넌트를 만들지 연구해야겠다.

코드리뷰

일단 3차 프로젝트를 진행하면서 기본적인 변수명이나, 상태관리 한번에 하는거나, 파일 분리 등은 이미 코치님의 맥락을 받아들였기 때문에, 신경 쓸만한 부분은 다 썼다고 생각했다. 그런데 거기서도 나아가 다른 제안을 주시거나 비슷한 형태의 라이브러리에 대해서 소개해주시고 인사이트를 물어다 주셔서 좋았다. 코드리뷰 덕분에 계속 편하게 못자고 버스에서 잤음에도 이번 프로젝트 참여한걸 후회한적이 없을 정도였다. 받은 코드리뷰를 일단 시간없다고 미뤄두는 바람에 더 반영못한 부분도 꽤나 많다. 아마 이런 것들은 다시 천천히 살펴보면서 익히겠지만, 그래도 아쉬움이 크다. 

 

솔직히 말하면 사이드 프로젝트는 그래도 이제 빠르게 구성하고 끝낼 수 있다고 생각했었는데, 고려하지 못한 부분들이 더 많았던 것 같다. 생각해보지 못한게 너무 많다고 해야하나. 이제는 프로젝트에 참여하기 보다 생각할 인사이트를 더 늘려야겠다. 일단 냅다 던져놓은 정처기 필기부터 주워담아야지.