스프린트 기간 : 2022-11-14 ~ 2022-11-18
2주차부터 본격적으로 개발에 시작했다.
물론 1주차에도 개발을 했지만, 조금 개발 하려다 보면 금방 같이 설정해야 하는 부분이 생겨서 처리하고를 반복하다 보니 제대로 개발은 하지 못했다.
11-16, 2주차 수요일에 우리 팀은 멘토님과 사당역에서 오프라인 미팅을 진행했다.
사실 지난주 스프린트때도 우리는 오프라인으로 만났기 때문에 오프라인 미팅에 부담이 없었는데, 다행히 멘토님께서도 오프라인 미팅 한번 하면 좋겠다고 하셔서 진행했다.
미팅을 하면서 프로젝트 이야기는 생각보다 많이 하지 않았다.
아무래도 지난주까지 겨우 환경설정을 다 한 상태여서 아직 구현에서 막힌 부분이나 어려웠던 점들을 많이 겪지 않았기 때문이다.
대신에 오프라인에서 함께 🍺 음주를 하면서 개발이나 개발자에 대한 이야기를 많이 해 주셨다.
이전까지 나는 취업이나 개발자 커리어에 대해서 크게 생각을 하지 않았다.
최근에는 커리어를 어떻게 해야 할까 걱정이 되면서 막막하던 차에 멘토님의 경험이나 조언을 들어서 도움이 많이 되었던 것 같다.
개발자로 성공하려면 대기업을 가야해!
라고만 생각하고 있었는데, 이러한 사고의 틀이 깨진 것이 가장 큰 수확이라고 생각한다.
이번주의 핵심적으로 구현할 기능은 글 쓰기
, 글 보기
기능이었다.
두 기능을 우선적으로 한 후 글 검색
기능까지 시간이 되면 해보자! 라고 계획을 세우고 이번주를 시작했다.
이번 주차까지 기능 요구사항을 명확히 해놨다고 생각했기 때문에 구현만 빠르게 할 수 있을 것이라고 생각했다.
막상 구현을 하려고 보니 기능 자체는 명세가 되어 있었는데 디자인을 거의 고려하지 않았다고 느꼈다.
요구사항에 반응형 디자인
을 작업하기로 결정했기 때문에 위처럼 정한 요구사항이 작은 화면일 땐 어떻게 하지? 라는 생각을 해야 했다.
화면이 클 때, 작을 때 이런 상황들에 대해서 생각하면서 빈 도화지에 디자인을 생각하려고 하다가 시간을 꽤 쓴 것 같았다.
그래서 늦게라도 figma
툴을 이용해 전체적인 디자인을 뽑았다.
이전에 학부 수업을 들으면서 figma
를 써본 기억이 있다.
그때는 비교적 시간이 많아서 더 자세하고 예쁘게 만들었던 것 같은데, 이번 프로젝트에서는 1주차 스프린트의 기획 시간도 아니고, 팀원들도 있는데 혼자 디자인을 뽑아보겠다 하는게 좋은 부분은 아니라고 생각되어서 퀄리티가 낮게 나온 것 같다.
그래서 약간은 아쉬운 디자인을 결정하고 그에 맞추어 기능 개발을 시작했다.
다행인 점은 이후 4주차, 5주차 스프린트에 부족한 디자인 디테일들을 잡아보기로 결정했다.
개발을 하다보니 FE-BE 개발 속도에 차이가 생겼다.
나의 경우 게시글 인피니티 스크롤을 구현하는 역할을 맡았는데, 게시글들을 서버에서 모두 받아오는 상태라고 판단하고, 클라이언트 상태와 서버 상태 로직을 분리하기 위해 React Query
를 도입했다.
처음 사용하는 기술이었고, 공식 문서와 여러가지 포스팅들을 참고하여 기능을 구현했는데
이걸 어떻게 테스트하지?
라는 생각이 들었다.
물론 게시물 정보들을 가져오는 fetch 로직에서 우리가 만든 테스트용 데이터를 넣어줘도 되겠지만, 함수를 바꿔주는 부분이 필요하고, 테스트코드 관리 등에 어려움이 있을 것이라고 생각했다.
또한 요청에 성공했을 경우 뿐만 아니라 요청에 대한 응답이 없는 경우 ("검색 결과가 없음" 과 같은 경우) 따로 테스트용 fetch 함수를 만들어야 하나? 라고 생각이 들었다.
그래서 여러 방법을 찾아보던 중 카카오 기술블로그의 Mocking으로 생산성까지 챙기는 FE 개발 글을 보게 되었다.
기술 포스트가 아니기 때문에 여기에 대해 자세히 남기지는 않겠지만, 테스트 코드를 작성하여 해결하면 생기는 여러가지 단점들을 많이 해결할 수 있었다.
물론 여전히 Mock API 를 작성해주어야 한다는 점이 필요하겠지만, 아직까지는 복잡한 로직 처리 없이 작성할 수 있고, FE-BE를 독립적으로 잘 개발할 수 있다고 느끼고 잇다.
이번주의 나는 우여곡절 끝에 라는 단어로 정리할 수 있는 것 같다.
디자인부터 시작해서 기능 명세에서도 몇몇 부분이 디테일하지 못했기 때문에 구현하는데 쉽지 않았지만, 결국 목표로 했던 기능까지 모두 구현했다.
중간에 기술의 필요성을 느껴서 적절한 기술을 찾아서 적용해보기도 하고, 오프라인에서 만나서 회의하고 저녁에 뒷풀이도 하는 등 짧은 1주일동안 많은 일들이 지나간 것 같다.
다음주도 이번주와 마찬가지로 핵심 비즈니스 로직을 구현해야 한다.
요즘 들어 주마다 블로그 작성하는 걸 밀리고 있는데, 구현에 밀려서 기록 할 시간이 적어지는 걸 느낀다.
이번주처럼 다음주도 바쁘겠지만, 나중에라도 글을 적을 수 있게 계속 프로젝트 과정을 잘 남겨두려고 노력해보자.