어느덧 2차 스프린트가 끝이 났다.
2주 동안의 2차 스프린트를 기록하고자 한다!
인생 첫 해커톤
1차 데모데이가 끝나던 금요일 오후 5시, 우테코 대장 포비에게서 전체 슬랙이 왔다.
우테코만의 해커톤을 진행합니다.
팀별로 진행하고,
다음 주 월요일 오후에 시작해 화요일 오후에 끝나는 일정입니다.
"다음 주에 해커톤 하나 봐!"
"한 번 참여해 볼까?"
하지만 해커톤은 필참이었고, 우리는 긴급회의를 진행했다.
당시의 문제 상황은 다음과 같다.
1. 큰 틀의 기획만 잡혀 있지, ERD 및 정책 등의 세부 사항은 논의되지 않았다.
2. 해커톤만을 위한 코드를 작성할지, 혹은 구현을 조금 덜 하더라도 유지보수를 할 수 있을 만한 퀄리티의 코드를 작성할 지 결정하지 못했다.
여기서 중요한 것은 2번이라고 생각했다.
1번의 경우 일단 만들어진 기획을 바탕으로 기능 구현을 하면 되는 상황이었고, 백엔드도 시간 내에 ERD를 구현할 수 있겠다고 했다.
2번의 경우는 본질적인 문제가 있었다.
바로 해커톤에 대한 서로의 "온도"를 맞추는 것.
누군가는 해커톤에 진심일 수 있고, 다른 누군가는 귀찮게 생각할 수도 있다. 당장의 긴급회의에서도 서로의 온도 차이가 느껴지곤 했으니까.
우리는 먼저 팀원 한 명 한 명 해커톤에 대한 생각을 물었다.
해커톤에 대해 어떻게 생각하고 있는지, 제한시간 내에 멋진 결과물을 만들어내고 싶은지, 아니면 결과물 상관없이 유지보수가 가능할 만한 코드의 퀄리티를 가져가야 한다고 생각하는지 물었다.
일부는 결과물은 어떻게 되든 상관없으니 우리가 일정대로 하려고 했던 일에 집중하자는 의견이었고, 다른 일부는 그래도 사람들 앞에 보이는 일인데 결과물은 있어야 되지 않겠냐는 의견이었다.
나는 후자의 입장이었고, 사람들 앞에서 우리의 결과물을 공개하는 자리인 만큼 성의는 보여야 한다는 생각을 갖고 있었다.
이에 대해 의견을 주고받으며 도출된 합의점은
1. 열심히 하는 건 자유다. (밤샘)
2. 열심히 하지 않아도 된다. (밤샘)
3. 해커톤 이후로 우리의 프로젝트를 계속 진행해야 하니, 지속가능한 코드를 작성하자.
공통적으로는 기존 일정대로 미션 제작에 집중했고
프론트엔드의 경우 '개발 환경 세팅' 및 '보이는 것'에, 백엔드는 '지속가능성'에 집중했다.
.
.
.
해커톤을 통해 팀원들과의 개발을 처음 시작하게 되면서 약간의 우여곡절이 있었다.
바로 컨벤션을 맞추기가 힘들었다는 것...!
컨벤션을 정할 때 폴더명과 컴포넌트 파일명의 첫 글자를 대문자로 할지 소문자로 할 지 고민하다
파일명 - 소문자
컴포넌트 파일명 및 스타일 파일명 - 대문자
이렇게 정했는데, 나와 팀원들 모두 헷갈려했다.
이후 개발 환경 세팅을 하면서 급하게 처리하느라 컨벤션을 지키지 못했었고 나중에 내가 이를 발견해서 해결하려 했다.
사실 간단한 문제인 줄 알았는데 .. 알고 보니 대소문자 변경의 경우 시스템이 인식하지 못한다는 문제가 있었다. 그래서 대소문자 변경의 경우 커밋에도 올라가지 않는다..!
따라서 git mv 명령어를 통해 파일/폴더명을 직접 바꿔줘야 했다.
그런데 이 과정을 처음 진행하다 보니 자꾸만 에러가 터졌고 시간이 지체되었다.
어느덧 밤 10시를 넘은 상황.. 시간이 늦어 집중력이 흐트러진 탓일까, PR 제목을 잘 못 올린 채로 main 브랜치에 머지되었고, amend 명령어로 해결하려 했지만 main 브랜치에 또 다른 커밋이 쌓여버리고 말았다😭😭😭
나는 잘 놀라지도 않고 차분한 감정을 잘 유지하는 편인데.....이 날 진짜 머리 쥐어뜯었다
우리 프론트 팀원들은 내가 으악!!!!!!!!! 하고 외치는 걸 처음 봤을 거다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
새벽까지 이 문제를 해결해보려 했으나 실패...
그래서 다음날 팀원 전체에게 상황을 공유했고 다들 커밋 하나쯤은 더 생겨도 (다 날려버리거나 삭제한 것이 아니기 때문에 ㅋㅋ) 문제없다는 의견이라 넘어가기로 했다! 현시점에서 우리에게 더 중요한 것은 기능구현이라..!
으헝헝 감사합니다
해커톤이 끝나고, 포비는 해커톤을 통해 서로의 밑바닥을 확인하는(?) 시간을 가졌으면 좋겠다고 했다. 주어진 기간이 있고 짧은 기간 내에 구현을 완료해야 하는 상황에서 서로의 본모습을 확인하라는 것이다. 나는 해커톤에서 본모습을 다 보여줬으니,,, 포비의 의도는 성공적이다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
더불어 코드 리팩터링 경험을 가져갔으면 좋겠다고 했다. 현업에서는 마감기한에 맞춰 코드 퀄리티를 생각할 시간이 없다고 한다. 따라서 나중에 리팩터링 하는 경우가 많은데, 해커톤을 통해 비슷한 경험을 했으면 좋겠다고 한다.
해커톤 이후 본격적으로 개발이 시작되었다.
프론트는 프론트대로, 백엔드는 백엔드대로 회의를 진행하며 기능을 구현했다.
하지만 이 과정에서 협업이 아닌 분업을 하고 있다는 것을 느꼈다.
1. 서로의 진행 상황을 모른다.
2. 지식 공유가 되지 않고 있다.
우리는 회의 방식에 대한 회의, 주간 회고 등 팀 문화를 개선시키며 나름 발전해가고 있었지만 개발은 또 다른 분야더라.
1. 서로의 진행 상황을 모른다.
- 프론트의 입장에서, 백엔드의 API가 얼마나 개발되었는지, 언제 개발되는지, 누가 담당자인지 모른다.
- 백엔드의 입장에서도, 구현한 API가 어디 쓰이는지, 어떤 방식으로 데이터를 전달해야 효과적인지, 누가 담당자인지 모른다.
프론트인 나의 경우 API 개발 진척도를 확인하기 위해 깃허브 이슈를 찾아보기도 하고, 이 방법이 어려우면 직접 담당자를 찾기도 했다. 수정 사항이나 요청 사항이 생겨 담당자를 찾을 때도 마찬가지였다.
우리는 이 문제를 해결하기 위해서 두 가지 방법을 고안해 냈다.
1. 깃허브 프로젝트 기능을 통해 개발 문서를 관리하자
- 현재는 노션, 깃허브, 슬랙, 스프레드 시트 등등 여러 곳에 나눠 있는데, 이를 효율적으로 관리하기 위해 깃허브 프로젝트를 적극 활용하자
2. 프론트엔드와 백엔드의 업무를 공유하는 시간을 갖자
- 매주 월요일 4시 반에는 이번 주 진행될 일을 공유한다
- 매일 데일리 스크럼 때 어떤 일을 할지 자세히 공유하자
이 방법들을 통해 전보다 나아짐을 느낄 수 있었다. 계속해서 더 좋은 방법을 찾아봐야지.
2. 지식 공유가 되지 않고 있다.
백엔드의 경우 CI/CD 팀과 기능 구현 팀이 나눠있는데, CI/CD 팀의 경우 기능 구현 진척도를 모르는 문제가 있었고 기능 구현 팀은 CI/CD 과정을 자세하게 모르는 문제가 있었다.
마찬가지로 프론트엔드의 경우도 우리 프로젝트의 CI/CD에 대해 명확하게 설명을 하기 어렵던 상태였다.
따라서 전체 회의 시간에 CI/CD 담당자가 설명하는 시간을 가졌다.
이 과정에서 프론트엔드 팀원이 현재 CI에서 발생하고 있는 merge 버그를 해결할 수 있었다!
2차 데모데이 때도 피드백을 들었던 내용인데, CI/CD나 다른 지식의 경우 팀원 모두가 구조도를 그릴 수 있을 정도로 알고 있어야 한다고 한다. 프론트와 백 상관없이 서로가 백업을 해줄 수 있기 때문이다.
우리는 지식 공유를 위해 CI/CD와 같이 전문 지식이 필요한 내용일 경우 팀원 전체에게 직접 설명을 하거나, 팀 블로그에 글을 작성하기로 결정했다.
초안 수정이 완료되면 글이 올라갈 예정이다!
2차 데모데이와 피드백
데모데이 전 날 API의 인증 로직이 추가되어 메인에서부터 401 에러가 터지는 문제가 발생했다. 서버에 API를 요청할 때 쿠키를 헤더에 담아 보내면 될 줄....알았으나....!
서버로부터 쿠키를 받았지만 반대로 API를 요청할 때 쿠키를 서버에 보내지 못하는 상황이 발생했다.
금방 구현할 줄 알았지...흑흑
원인을 찾기 위해 백엔드 측에서도, 프론트엔드 측에서도 고군분투했다.
다행히 데모 한 시간 전 해결될 수 있었다.
(자세한 내용은 팀 블로그에서 볼 수 있을 듯하다 - 팀원이 초안 작성 중!)
해결되어서 다행이지만 .. 만약 해결하지 못했다면 정말 아찔한 상황이 벌어졌을 것 같다🥲
월요일 회의 때 데모데이 전 날 모든 기능을 완료하는 것은 어떨지 제안해 봐야겠다.
시연 이후 코치님들의 피드백이 이어졌는데, 그동안 미뤄두었던 기획 회의를 해야 할 것 같다.
우리 서비스의 방향성에 대한 본질적인 고민을 다시 해야 될 때가 온 것 같다.
핵심 플로우를 만들기 위해 현재 단계에서 가장 핵심인 페어 매칭 & 리뷰 기능에 초점을 맞췄고 그 외의 것들은 제쳐두었다.
그 과정에서 우리는 개발에만 집중했으며 서비스와 사용자는 생각하지 못했다.
물론 기능 구현하느라 정신없고 바빴지만 .. 이제는 마냥 넘겨둘 수 없을 것 같다.
이번 회의가 우리 서비스에서 중요한 포인트가 될 듯하다.
어떻게 될지는 나도 모르겠다.
'우아한테크코스' 카테고리의 다른 글
개발자로서의 성장과 발전 (0) | 2024.08.23 |
---|---|
심리적 안전감에 필요한 것들은 무엇일까 (0) | 2024.08.18 |
프론트엔드 React 프로젝트 S3로 배포하기 (1) | 2024.07.21 |
레벨 2 회고 - React를 '잘' 활용해 보자! (0) | 2024.06.16 |
레벨 1 회고 - 새로운 환경에 빠르게 적응하기, Vanilla JS부터 파헤치기 (1) | 2024.04.15 |