2023년부터 1월 2일부터 2023년 1월 13일까지, 약 2주간 코딩 공부를 시작한 후 처음으로 프로젝트를 하게 되었습니다. IKEA 홈페이지를 기반으로 디벨롭하여 PET 분석, 기획, DB 모델링, API 구현과 프론트엔드와의 통신까지, 처음부터 끝까지 팀과 함께 하나씩 구현하였습니다. 클론 코딩이 아닌, 우리만의 페이지를 만들어내는 게 가장 큰 목표였습니다.
좋은 기회로 Project manger를 맡게 되었는데, 효율적으로 이번 프로젝트가 진행되기 위하여 Agile 방식을 채택하였고, 팀원 모두가 서로의 진행 상황을 알 수 있도록 Trello를 활용하였습니다. 이외에도 매일 진행되는 Daily standup meeting, 매주 월요일에 진행되는 Sprint meeting 등을 통해 팀원들간의 소통이 원할하게 이루어질 수 있도록 노력하였습니다.
또한 제가 맡은 티켓들은 아래와 같습니다. 구현 사항에 대한 설명은 깃허브 readme에 작성되어 있습니다.
DB 모델링
, signup
, signin
, products
, carts
, orders
, pagination
, error handling
무엇보다 가장 크게 얻은 것은 소통의 중요성이었습니다. 예를 들어, 프론트엔드 팀원에게 아래와 같이 "productId랑 해당 숫자 카멜케이스로 서버에 보내주시면 돼요!" 라고 말하였을 때, 자꾸 통신이 실패하여 req를 콘솔에 찍어보니 프론트엔드에서는 카멜케이스가 아니라 스네이크 케이스로 보내고 있었거나, 모두 소문자로 보내고 있었거나 하는 경우가 있었습니다.
서로 무엇이 잘못된지도 모른채 낭비한 시간이 너무나도 많았고, 이후 이렇게 소모되는 시간을 줄이기 위해 API Documentation을 더욱 정확하게 작성하였고, 슬랙을 통해, 혹은 포스트맨을 통해 정확히 어떤 식으로 보내면 될지, 받으면 될지 글로 남기는 작업을 추가 수행하였습니다.
2-1의 내용과 이어지는 것인데, 내 코드는 잘 돌아가는 것 같은데 통신할 때마다 에러가 발생할 때, 처음엔 무엇이 잘못된 건지도 모른 채 무작정 "왜 안 되지?"라는 말만 반복하였습니다. 하지만 이후 콘솔을 하나씩 찍어보는 습관을 들이면서, 내가 클라이언트로부터 받는 요청이 무엇인지, 내가 보내는 응답이 무엇인지, 왜 이게 구현되지 않는 건지 스스로 알아가는 방법을 터득하였습니다.
멘토님들의 피드백과 위코드 동기들의 피드백을 통해 코드를 더욱 깔끔하게 작성하는 습관을 들일 수 있었습니다. 나 자신이 읽기 어려운 코드는 다른 사람들도 읽기 어려울 것이고, 이는 피드백을 받을 때 기술에 대한 피드백보다 코드 가독성에 대한 피드백이 더 많을 것이며, 이는 내 기술적인 성장의 속도를 늦출 것이라고 생각하여 코드를 작성할 때 가독성을 최우선으로 생각하며 작성하였습니다.
가독성을 생각했을 뿐인데, 덕분에 더 좋은 코드(좋은 코드, 안 좋은 코드가 어디 있나 싶기도 하지만,) 를 작성하기 위해선 어떻게 해야하나라는 고민으로 이어졌습니다. 코드 작성 전에 고민하는 시간을 들였고, 여러 기술들을 시도해보려고 하였습니다. 예를 들어, 에러 핸들링을 한 미들웨어에서 관리할 수 있도록 하였고, orders API에서 트랜잭션을 사용하여 CRUD의 안정성을 보장할 수 있었습니다. 이외에도 Insert와 Update의 두 개의 쿼리를 사용하는 것이 아니라 UPSERT 구문을 사용해볼 수 있었고, Bulk Data Loading을 알게 되어 여러 쿼리에서 활용할 수 있었습니다. 또한, 가독성을 높이기 위해 (이 블로그 가장 첫 gif에 있는) 페이지네이션과 정렬을 한 메서드 내에서 수행할 수 있도록 구현하기도 하였습니다.
배운 것 활용하기 8 : 새로운 기술 활용하기 2
의 비율이 아쉬웠습니다. 물론 배운 것을 활용할 수 있었다는 것은 정말 좋았지만, 시간이 조금 더 있었다면 구글링을 통해 다른 더 좋은 방법을 찾고 시도해보았을텐데라는 아쉬움이 남습니다. 다음 2차 프로젝트에는 아쉬웠던 부분들을 보완하고 더 나은 결과물을 낼 수 있도록 해야겠습니다.
2-2. 콘솔의 중요성
2-3. 깔끔해진 코드
피드백을 받을 때 기술에 대한 피드백보다 코드 가독성에 대한 피드백이 더 많을 것이며 <- 제가 딱 이랬어요 😂
가독성을 생각했을 뿐인데, 덕분에 더 좋은 코드(좋은 코드, 안 좋은 코드가 어디 있나 싶기도 하지만,) 를 작성하기 위해선 어떻게 해야하나라는 고민으로 이어졌습니다. <- 저도 같은 고민중이에요
짬 좀 찬 시니어 개발자들이 이 고민에 대한 해답을 얻기 위해 '클린 코드' 책을 많이들 보더라고요?
(약간 시니어 개발자들의 바이블 같더라고요 ㅎㅎ)
http://www.yes24.com/Product/Goods/11681152
저는 아직 주니어 && 분량이 방대하고 && 저희가 배운 JS 에도 적용되는 책인지 몰라서 아직 안 샀습니다만... 😂
혹시 가은님도 관심있으시면 제가 사서 강의장에 비치해둘게요 자투리 시간에 슬슬 읽어보아요 우리 🤗