우테코: Level3 3,4차 스프린트 회고

이것 참.. 회고라고 하기에 좀 뭐하긴 하지만 ^^… level4도 끝나가는 이 시점에 저번에 다 못적은 level3 회고를 마무리해볼까 한다…
기억이 많이 휘발되어 따로 휘갈기는 노트를 참고하여 글을 적는다.

발전한 나의 소프트 스킬

다들 참 많이 지쳐있었을 때였다. 이때 러기와 렛서가 많이 지쳐보였다. 그래서 집 방향이 같은 러기와 짧은 시간이지만 많은 이야기를 했었다. level3에 오면서 개인 시간을 낼 수 없어 약간의 번아웃이 온 듯 했다. 그래서 작은 위로일 지라도 용기를 내어 중문의 카톡을 보냈었다. 나의 카톡을 읽고 힘이 된 듯 해서 뿌듯했다.

우테코에 오기 이전의 나라면 아니, 불과 몇달 전의 나라면 이런 카톡을 보내지 않았을 것이다. 누군가를 위하는 말 일지라도 상대방에게 돌아오는 답변이 무서웠기 때문이다. 꼭 하지 않아도 되는 것에 대한 연락은 상대 답변이 어떻게 올지 참 무섭다. 이건 아직도 여전한 것 같다. 그러나, 우테코에 오면서 조금씩 이런 부분에 대해 용기를 내보고 있다. 이런 부분을 소프트 스킬 수업 시간에 알려주지는 않지만, 우테코라는 환경이 나를 조금씩 나도 모르게 변화시키고 있다.

이미지1 이미지2

우테코에서 받은 키트(좌), 공구한 행성이 키링(우)

새로운 경험

우테코에 와서 새로 시작하게 된게 뭐야? 라고 누군가 나에게 묻는다면 나는 단연 “야구!” 를 외칠 수 있다. 최강야구를 보진 않았지만, 집 가는 길에 심심해서 티빙으로 야구를 봤던 것이 나의 야구 인생이 시발점이다. 그래도 야구가 있었기에 집 가는 어두컴컴한 길이 덜 지루했던 것 같다. 또한, 유튜브로 채우던 도파민을 스포츠로 나름 건강하게(?) 채우고 있다. 참 잘 선택한 취미라고 생각한다.

야구 단체 관람?!

이미지

그래서 나는 야구에 미쳐버린 나머지 우테코에서 야구 단체 관람까지 진행하게 되었다. 하하! 자세한 이야기는 여기서.. 확인이 가능하다.
사실 나는 뭔가를 기획하거나 운영, 주최하는 것을 좋아한다. 그래서 배드민턴 동아리도 4년씩이나 임원진을 했던 것이다.. 우테코에 와서 FE 걸스나잇 이후에는 또 이런 이벤트를 주최할 일이 없을 줄 알았는데.. 이렇게 야구 단체 관람을 하게 되었다. 핳

인생 첫 커피 챗

이미지1 이미지2

지난 번에 용기를 내어 가브리엘에게 커피챗을 신청했다. 가브리엘은 흔쾌히 받아 주셨고 엘버도 함께 커피챗에 응해주셨다. 회사 일로 인해 굉장히 바쁘실텐데도 불구하고 커피챗 신청에 응해주셔서 너무 감사했다.

커피챗의 주된 내용은 아무래도 level3-4 팀 프로젝트와 취업이었다. level3 커피챗 당시에는 취업에 대한 걱정은 있어도 큰 고민은 없었다. 아직은 조금 더 남았다고 생각했기 때문이다. (응.. 근데.. 지금은 현실이야..)
가브리엘과 엘버 덕분에 맛있는 저녁도 먹고 toss에도 와 볼 수 있었다. 확실히 IT 업계 탑이 맞다..
그렇게 유익한 커피챗 시간을 보냈다. 고민도 많이 해결됐고, 새로운 시각을 얻을 수도 있었다.

당시에 나는 팀 프로젝트에 굉장히 지친 상태였다. 1차 스프린트까지는 내 시간이 있어서 아침에 개인 공부도 꾸준히 해왔고 집에 돌아간 후에도 내 일을 할 수 있었기 때문이다. 근데, 2차 스프린트에 들어서면서 그런 것이 싸그리 사라져버렸다. 이게 나에게 너무나도 힘들었다. 그러면서 또 취업 걱정은 들고.. 그래서 당시에 개인 시간을 확보할 수 있도록 하고, 미리 취업 준비도 시작해야 겠다 생각했다. 또한, 왜 이런 코드를 작성했는지 블로그에 꾸준히 기록하자고 생각했다. 정말 생각만 해버렸다. 이거 적으면서 안 했다는 것을 깨달았다..ㅋㅋ ->

그리고 나는 다음날 행동대장 팀원들에게 이 이야기들을 공유해줬다.
음.. 근데 이게 사실 약이 아니라 독을 풀었던 것 같다. 이 프로젝트가 협업을 위한 것도 맞지만 우리의 취업에 가장 큰 포트폴리오 자산이 될 것이다. 그렇기에 포트폴리오에 우리 프로젝트를 넣었을 때 괜찮을 것인지 생각하면서 프로젝트를 진행해야 할 것 같다고 말했다. 이런 뉘앙스의 말로 인해 팀원들에게 혼란을 가중시켰다. 절반의 팀원은 동의했지만 절반의 팀원은 기술적인 것 보다 사용자를 더 중시하기 때문이다.
사실 나도 사용자를 중시하는 측이었지만 취업!! 이라는 큰 고민 때문에 휙-하고 태도를 달리 바꿔버렸던 것 같다. 그리고 후에는 다시 사용자 중심으로 돌아왔다ㅎ
당시에는 여차저차 이쪽 방향으로 팀원들이 따라주려고 했다. 아무래도 다들 지쳤으니까, 더이상 논의하기에는 힘들어서이지 않았을까? 생각한다. 그래서 대충 쓰던 PR 리뷰도 구현 목적과 방법, 결과를 꼼꼼하게 작성하기로 했다. 그리고 꼭 필요한 것이 아니라면 UI/UX에 큰 욕심을 부리지 말자고 했다. 그리고 3차 스프린트에 들어와서 하나의 Task를 페어프로그래밍으로 하고 있던 것을 다시 개인이 task를 가져가는 방식으로 전환했다. 페어 프로그래밍으로 진행하니 진도가 너무 나가지 않는 문제가 발생했기 때문이다.
여튼 참.. 커피챗 하나로 많은 것들이 변화되었던 것 같다. 당시에는 당장 긍정적으로 변화하진 않았을 지라도 점점 우리만의 방식을 찾아가며 협업 방식이 안정적이게 되었다.

이제 level3는 끝이다!

이미지1 이미지2

위에서 말했듯이 4차 스프린트는 우리만의 방식을 찾으면서 매우 안정적이게 협업이 진행되었다. 개인이 task를 맡아 진행하는 방식으로 변경했다. 대신 이 task의 규모를 작게 나누었다. 이전에는 하나의 기능을 task로 뒀다면, 이번에는 이 하나의 기능에 대한 a,b,c를 각각의 task로 두는 것이다. 또한, 원활한 merge를 위해 리뷰 제출 시간을 18시로 제한하였다. 그리고 PR 내용을 상세하게 작성해 다른 팀원들이 코드를 리뷰하는데 시간을 덜 들일 수 있도록 했다.

이런 협업의 형태가 우리에게 가장 잘 맞았던 것 같다. 비록 4차 스프린트까지 와서야 찾게 되었지만, level3에서 끝이 아니니까 이제라도 찾은 것이 다행이라고 생각한다. 그리고 이런 방식이 다른 팀원들에게도 시간비용을 절약할 수 있어서 좋았지만, 기능을 구현한 본인 또한 왜 이런 방식으로 구현했는지 생각해보는 기회를 주게 되었다. 즉, 왜 이 기능이 필요했지? 이런 방식으로 구현한 이유는? 이게 최선이었나? 등을 개발하면서 생각할 수 있었다.

level3 런칭페스티벌 전 날에는 프론트는 거진 밤을 샜다. 새벽 4시까지 디스코드로 회의하고 merge하고 디자인 손보고.. 여러가지를 했기 때문이다. 새벽까지 진행해서 지쳤긴 했지만 뿌듯하고 재밌다!라는 감정이 가장 크게 들었다.

그리고 이렇게 노력한 것에 대한 보상은 역시 런칭 페스티벌에 나타났다. 내가 편집한 행동대장의 level3 개발 과정과 토다리가 만들어준 서비스 소개 화면.. 그리고 다양한 피드백 등..
아직은 부족한 부분이 너무 많았어서 부끄럽기도 했지만 열심히 테스트해주는 크루들과 코치님들 덕분에 즐겁게 런칭 페스티벌을 마무리할 수 있었다.

Level3를 마치며

Level4를 마치고 있는 지금 Level3를 마치며를 적는게 조금 웃기지만ㅋㅋ level3는 참 우여곡절이 많았다. 여러번 변경한 협업 방식과 팀의 방향성 변경 번아웃 대처 등등.. 이렇게 제대로 된 프로젝트를 하는 것이 거진 처음이라.. 재밌기도 했고 힘들기도 했고 뿌듯하기도 했다!

fatal: the remote end hung up unexpectedly

npm run deploy 실행시 에러 발생!

우테코 Level4 개인 미션 시작 전, 사전 작업인 api key 발급과 .env 설정, node 버전을 모두 올바르게 맞췄음에도 npm run deploy를 실행하면 다음과 같은 에러가 발생했다.

에러 발생 터미널

npm run deploy?

npm run deploynpm run build:prod && npx gh-pages -d dist를 실행한다. build는 정상적으로 작동하지만 npx gh-pages -d dist 명령어를 실행하면 에러가 발생했다.

npx gh-pages -d dist 명령어는 gh-pages 패키지를 사용하여 GitHub Pages에 프로젝트를 배포한다. 이때, -d dist 옵션은 배포할 디렉토리를 dist로 지정하는 것이다.

gh-pages 패키지?
gh-pages는 GitHub Pages에 웹사이트를 배포하는 데 도움을 주는 도구이다.

GitHub Pages?
GitHub에서 호스팅되는 웹사이트를 쉽게 배포할 수 있는 서비스이다.

에러 원인 발견 및 해결!

즉, gh-pages 브랜치를 push 할 때 문제가 발생하는 것이다.

난생 처음 보는 문제로… gpt에게 물어봐도 이상한 소리만 답으로 줬다..ㅎ 그래서 나는 구글링을 했다.

이 글 에서 도움을 얻었다.

자, 에러를 잘 뜯어보자 RPC 뭐시기 뭔지는 모르겠지만 send-pack에서 뭔 sideband packet 뭐시기가 뜬다. 이것도 뭔 소리인지 모르겠다. 그렇다면 그 밑을 보자.

fatal: the remote end hung up unexpectedly는 “원격 끝에서 예기치 않게 연결이 종료되었습니다”라는 말이다.

해당 에러가 발생하는 이유는 post buffer의 사이즈 문제라고 한다.
git에서 기본적으로 1개의 파일의 최대 용량이 1MB로 설정되어 있다. 그런데 이 사이즈를 초과한 파일을 push하려고 할 때 발생하는 에러였다. 때문에 git의 post buffer (즉, push === post) 사이즈를 늘려줬다. 그러니 해결됐다!!

문제 해결 명령어

git config http.postBuffer 1048576000

아, 참고로 기본 값은 1048576이다.

무사히 deploy가 실행된 터미널!

정상적으로 deploy가 된 터미널

참고 자료
git fatal 오류 해결: the remote end hung up unexpectedly Everything up-to-date
Git, fatal: The remote end hung up unexpectedly
git fatal: the remote end hung up unexpectedly 오류 조치

우테코: Level3 2차 스프린트 기간 회고

2차 스프린트. 그러니까 2차 데모데이가 종료되었는데 까먹고 작성하는 것을 놓쳐버렸다.. 그래서 지금이라도 작성해본다.

2차 스프린트 시작과 함께 우테코 해커톤

스크린샷 2024-08-06 19 13 58

2차 스프린트가 시작되는 7월 15일 월요일. 우테코에서 처음으로 개최한 해커톤이 진행되었다. 해당 해커톤 기간은 우테코에서 유일하게 밤을 샐 수 있는 기회라고 하셨다. 그래서 이런 기회를 그냥 놓칠 수 없는 나는 월-화 캠퍼스에서 자기로 결정했다.

아침 데일리 스크럼 시간에 우리 프로젝트의 핵심 기능은 어떤 것일지 꽤 긴 논의를 거쳤다. 그러면서 필요없는 기능도 쳐냈고 가장 우선순위를 두어야 할 것이 무엇인지 알 수 있었다. 또한, 각자 같은 기능에 대해서 다르게 생각하는 것들이 존재했기에 컨텍스트를 맞출 수 있었다.
생각보다 같은 기능을 다르게 생각하는 것이 많다는 것을 이 일을 계기로 처음 알게 되었다. 팀원들과 컨텍스트를 맞추는 것이 중요하구나를 페어 미션 이후에 또 느끼게 되었다.

스크린샷 2024-08-06 19 13 58 스크린샷 2024-08-06 19 14 10

우리 팀의 핵심 기능 단위는 “행사 정산 기능”으로 정했다. 지난번에 설문을 통해 사람들에게 행사를 진행/참여하면서 가장 필요하다고 느끼는 것이 어떤 것인지 물어봤었다. 그 중 가장 많은 비율을 차지한 것이 정산과 관련된 것이었다. 물론 정량평가이긴 했지만, 이 문항들도 팀원들이 직접 공통적으로 느꼈던 부분들을 추린 것이기 때문에 나름 신빙성이 존재하는 결과라고 생각한다. 따라서 위에 말한 “행사 정산 기능”을 우리의 핵심 기능 단위로 정했다.

이렇게 우리 팀의 핵심 기능 단위를 정했고 백엔드와 프론트엔드 각자 해커톤 기간동안 할 일을 정했다. 프론트엔드는 최소 기능을 담는 페이지 퍼블리싱을 완료하고자 했다. 이 Task를 각각 2명씩 나눴다. 디자인 시스템 담당 2명과 퍼블리싱 담당 2명으로. 퍼블리싱을 담당하는 팀이 디자인 뼈대만 잡아두고 기능을 구현하면 추후에 디자인시스템 팀에서 만든 컴포넌트를 붙이는 형식으로 진행하고자 했다.

이렇게 디자인시스템까지 들고 가게된 이유는 해커톤을 위해 코드를 얼렁뚱땅 작성하지 말자고 이야기를 나눴다. 시간에 쫒기고 싶지 않아서 내린 결론이었다.
하지만 돌이켜보면 우리가 했던 것은 그저 밤새 개발이었지 해커톤은 아니었던것 같다는 생각이 든다. 돌아가는 쓰레기를 만들어두고 나중에 리팩토링을 작업하는 것이 더 좋았을 수도 있겠다라는 생각이 드는데.. 그 당시에는 리팩토링을 하는 것에 겁을 먹었던 것 같다.

그래서 일단 결과적으로 2명씩 나눠서 Task를 맡았던 것은 사실 그닥 결과는 좋지 않았다. 디자인시스템을 배포하는 과정에서 문제가 발생하여 결국 퍼블리싱 페이지에 디자인시스템을 붙히지 못했다. 그래서 우리는 뼈대만 존재하는 페이지로 시연을 진행해야 했다.. 하하

스크린샷 2024-08-06 19 13 58 스크린샷 2024-08-06 19 13 58

우테코에서 제공한 해커톤 저녁 및 간식

일 작업 방식을 바꿔보자

해커톤 기간 동안에 페어로 개발을 진행하면서 효율적이지 않은 것 같다는 생각이 들었다. 사실 1박 2일이라는 짧은 기간이기 때문에 코드 컨텍스트를 맞추고자 페어로 진행한 것도 있다.
그래서 이번에는 각자 Task를 나눠 개발을 진행하기로 했다. 각자 구현해야 할 기능들을 나눴고 정한 due date까지 기능 구현을 완료해 와야 했다. 이 방식으로 바꾼 후에 나는 굉장한 스트레스에 휩싸였다..

일단 내가 스트레스에 받게 된 이유를 정의하자면 다음과 같다.

  1. 정해진 기간동안 내가 할 수 없는 분량이었다.
  2. 정해진 기간 안에 완료할 수 없다는 생각이 강하게 드니까 압박감이 들었다.
  3. 스트레스를 너무 받다 보니 일 효율이 더 떨어진다.
  4. 기간은 부족한데 일 효율도 안 나니까 더 스트레스를 받는다.

위 1~4번의 무한 반복이었다.
이런 문제점을 깨닫고 due date에 다 못했음을 말했고 기간은 넘겨서까지 일을 진행하게 되었다. 이 일주일도 조금 안되는 기간동안 엄청난 스트레스를 받다 보니 어떻게 이 문제를 해결해야 할지 감이 잡히지 않았다. 그런 순간 포비랑 준과 팀 단위 티타임을 가지게 되었다.

가장 작은 단위로

이 티타임 동안 정말 많은 깨달음과 해결책을 얻었다.
나의 이런 스트레스를 받고 있는 상황을 준에게 이야기하게 되었다. 준은 당연히 현업 개발자도 며칠 뒤의 기간동안의 계획을 세우기는 어렵다고 했다. 그렇기에 하루 단위로 Task를 할당하라고 했다.
Level2 수업에서도 준이 매번 말했던 것은 “가장 작은 단위로” 였다. 그렇다. 일 분배 또한 가장 작은 단위로 나눠서 진행하는 것이 좋은 해답이었다. 그날 할 일을 정하고 그 일을 오늘 안에 끝낼 수 있는지 %를 매겨본다. 50%가 넘는다면 해결 할 수 있는 Task라는 것이다. 80 이하라면 더 작게 나눠서 다시 Task를 만든다. 그렇게 가장 작은 단위 하나를 오늘의 할 일로 할당하는 것이다. 이렇게 일을 분배한다면 Task를 끝냈다는 성취감이 올 것이다.

일을 진행하면서 가장 중요한 것은 성취감인 것 같다. 내가 힘들었던 이유도 아무리 해도 일이 끝나지를 않으니 성취감이 존재하질 않았다. 그러니 더더욱 쳐지게 되는 것이고, 내가 뭘 얼마나 더 해야 할지 감이 잡히질 않았을 것이다. 앞으로는 이런 방법으로 일을 나눠봐야 겠다고 생각했다.

각개전투가 아닌 협업

모두가 공통적으로 생각하는 부분은 협업을 하고 있지 않다고 느껴진다였다. 프론트는 프론트끼리 일을 나눠 작업을 하니 협업하는 느낌이 들지 않았다. 그리고 백엔드와는 일단 통신을 진행하는 부분이 없다 보니 백엔드와 협업한다는 느낌이 들지 않았다.

그렇기에 우리는 다음과 같이 작업을 바꿔보자고 결론을 내렸다.
프론트엔드 2명씩 짝 지어서 기능을 개발해보자. 그리고 백엔드 2명과도 한 팀이 되어 기능을 구현해보자. 아직 이 방법을 실천하는 것은 2차 데모데이가 종료되고 스프린트3 기간에 진행하자고 논의를 마쳤다. 해당 방식을 사용한 부분에 대해서는 3차 스프린트 회고에 적도록 하겠다.

2차 데모데이

하기 전에 일단 회식

스크린샷 2024-08-06 19 13 58

2차 데모데이 전날인 목요일.. 우리는 우리가 개발한 기능을 데모데이에 보여주기 위해서 전날 회식하고 직접 사용해보자고 하였다. 그래서 우리는 배포한 서버가 백호 말고 아무도 접속할 수 없는 상황임에도.. 냅다 회식을 했다. 그래도 우리 팀이 화목한 것 같아서 좋았다.

“초기 기획 및 구현은 이렇게 하는걸 의도한 것이다.”

우리 팀이 듣게 된 최고의 칭찬이다. 앞으로도 이 칭찬을 뛰어 넘을 것은 사실 없을 것 같다.

스크린샷 2024-08-06 19 42 48

데모데이는 2시라서 그 전까지 목요일에 해결하지 못한 서버 접속 에러를 해결하고 자잘한 디자인 및 기능을 수정했다. 다행이도 데모데이 전에 무사히 해결하여 코치님들 앞에서 시연을 할 수 있었다.

시연을 진행하면서 참석해주신 코치님(포비, 준, 브라운, 레아)들에게 극찬을 받았다. 가장 작은 단위의 핵심 기능을 잘 구현해온 팀이라고 해주셨다. 그리고 이미 완성도가 높다고 해주셨다. 이런 칭찬을 받으니 그간 기획에 대해 오랫동안 회의한 보람을 느낄 수 있었다. 기능 개발을 한 기간은 그리 길지 않음에도 만족시킬 수 있다니.. 모두가 오래 회의를 진행한 보람이 있었다.

그리고 내가 프로젝트를 진행하면서 걱정한 부분이 있었다. 바로 우리 프로젝트는 행사를 위한 프로젝트인데 너무 정산에 초점이 맞춰진 것 아닌가? 처음 기획 의도에서 좀 벗어나게 된 것 같다는 생각이 들었다.
이런 생각에 대해 여쭤보니 오히려 좋은 방향이라고 말씀해주셨다. 그렇게 좀 다른 방향으로 프로젝트가 흘러가게 되어도 좋게 서비스가 발전해나가고 있다는 것이니까 괜찮다고 본다!

2차 스프린트를 마치며

사실 2차 스프린트 2주의 기간동안 지옥과 천국을 맛 보았다.
개인적으로 스트레스를 너무 많이 받아서 너무 힘들었기도 했지만 티타임을 기점으로 멘탈을 회복하면서 데모데이에 칭찬을 받으며 천국을 맛 보았다.

또한, 1차 스프린트와는 다르게 프로젝트 진행 방식을 개별 기능 구현으로 변경했는데 이것 또한 문제점이 많이 보여서.. (시간이 부족하니 제대로 리뷰하지 않고 그냥 무작정 approve하기, due date에 치이기 등 ) 다음 스프린트에는 또 다시 페어로 돌아가게 될 것 같다. 이렇게 진행 방식을 바꿔가며 우리 팀에게 맞는 방향을 찾아가는 것이겠지 뭐 ~

우테코: Level3 1차 스프린트 기간 회고

자~ 이제 시작이야~

드디어 대망의 Level3가 시작됐다. level3부터는 선릉 캠퍼스가 아닌 잠실 캠퍼스로 등교하게 되면서 비록 출퇴근 시간이 왕복 1시간이나 늘었지만.. 고대하던 프로젝트를 시작하게 된다는 것에 설레임을 갖고 level3 첫 등교를 했다.

level3에 같이 프로젝트를 하게 된 팀원은 나 포함 총 8명이다.
FE는 나, 토다리, 쿠키, 웨디이고 BE는 이상, 백호, 먕쵸, 감자이다. 나는 선릉 지박령으로 잠실에는 주말에 딱 한번 와 봤기에 백엔드 팀원들은 모두 처음 알게 된 분들이었다. 프론트엔드 팀원들은 토다리를 제외하고는 같이 미션을 진행한 적이 없었다. 그래서 같이 프로젝트를 하게 되면 어떨까? 기대감이 조금 들었던 것 같다. 그리고 프론트엔드 팀원들은 주도적인 면이 많기 때문에 프로젝트는 무조건 잘 굴러가긴 하겠다라는 안도감도 들었다.

행동 시작!

스크린샷 2024-07-20 12 44 51

1차 스프린트 기간에는 어떤 프로젝트를 진행할 지, 주제부터 기획, 디자인까지 모두 우리가 정하고 주도해 나갔다. 모두의 의견을 들어보고자 피그잼을 활용하여 브레인스토밍을 진행했다. 다행이 해당 방식은 우리 팀에게 잘 맞았던 것 같다.

스크린샷 2024-07-20 12 36 40

1차 스프린트기간 동안 계속되는 회의를 통해 주제를 정할 수 있었다. 우리 팀의 주제는 행사/동아리를 조금 더 편하게 운영할 수 있도록 도와주는 서비스이다. 우리 팀에는 이런 행사나 동아리 임원 활동과 같은 것을 해본 팀원이 나 포함 3명이 있었다. 모두 주도적으로 했던 사람들이었기에 불편함을 많이 느끼고 있었다. 다른 팀원들은 운영하지는 않았지만 이런 행사 및 동아리에는 참여한 적이 있기 때문에 주최자와 참여자의 입장을 모두 들을 수 있다고 생각이 들었다. 그래서 위와 같은 주제로 프로젝트를 진행하게 되었다.
프로젝트 주제를 선정하는 것에 일주일을 사용하게 되었다. 비록 오래걸린 것 같지만 모두가 만족하는 주제로 프로젝트를 진행하게 된 것 같아서 만족스러웠다.

1주차 금요일에는 여러 사람들의 의견을 듣기 위해서 구글폼을 작성하여 주말동안 여러 의견을 들었다. 2주차 월요일에 데일리 스크럼 시간에 어떤 의견들이 존재하는지 또, 우리가 예상한 불편함을 다른 사람들도 많이 느끼는지 확인하는 시간을 가졌다. 이를 기반으로 페르소나와 유저 시나리오를 작성했다.

스크린샷 2024-07-20 12 51 50

그리고 우리 프로젝트의 이름을 붙이기 진행했다. 정말.. 별의 별 이름이 다 나왔다. 사실 이름 공모전 보다는 진짜 아우말 대잔치가 맞다..ㅋㅋㅋㅋ 그래도 나름 진지하게 토너먼트를 거친 끝에 이름이 선정되었다.
우리 프로젝트의 이름은 행동대장 이다.! 이름의 뜻은 여러가지 있다. 행사나 동아리를 운영하는 사람들은 말 그대로 행동 대장(大將)이기 때문이다. 다른 의미로 이름을 풀어보자면 행사 및 동아리 대장(臺帳)이다.

스크린샷 2024-07-20 12 54 05

사실 이름을 정하고 위 의미는 나중에 끼어 맞췄다.ㅎㅎ 해당 이름의 낸 사람은 백호이다! 나름 아이디어 뱅크이다.

그렇게 우리 프로젝트, 행동대장이 진짜 시작되었다!

1차 데모데이

2주차 금요일은 1차 데모데이가 있는 날로 유저시나리오와 기능명세서를 발표하고 각 파트별로 요구사항을 잘 충족했는지 확인하는 시간을 가진다. 데모데이는 배정된 코치님들 앞에서 발표를 하는 것인데, 이 시간을 가지면서 프로젝트의 방향에 대해 많은 생각이 들었다.

첫째, 기능이 많다.
그러니까, 주요 기능을 위한 부가적인 기능이 많았다. 로그인, 행사 생성, 참여자 받기, 공지, 참여자 확인 등등.. 그래서 데모데이를 통해 기능을 최대한 덜어내야 겠다는 생각이 들었다.

둘째, 사용자를 생각하지 않았나?
우리의 그라운드 룰에는 사용자를 생각하기가 존재하는데, 사용자를 생각하기로 했지만 그러지 못했던 것 같다. 빠르게 사용자를 먼저 만나는게 우선이라는 생각이 들었다.

셋째, 차별점이 존재하지 않는다.
다 너무 흔하고 충분히 대체 가능한 유명한 도구들이 많다. 우리는 이런 도구를 모두 한 곳으로 모으고자 했는데, 과연 이 유명 도구들(구글 스프레드 시트, 카카오톡)과 싸우는 것이 맞을까? 아니라는 생각이 들었다. 오히려 이 도구들을 사용하면서 불편했던 점들을 채워주는 방향으로 가는 것이 더 좋겠다는 생각이 들었다.

1차 데모데이를 진행하고 팀원들과 추가적으로 회의를 진행하면서 앞으로의 방향에 대해 많은 논의를 가졌다. 결과적으로는 일단, 핵심 기능에만 집중하자로 귀결되었다. 로그인? 버려. 공지란? 버려. 참여자 확인? 일단 버려!

1차 스프린트를 마치며

벌써 Level3의 2주를 보냈다. 프로젝트를 하다보니 이전 level들 보다 시간이 더 빠르게 가는 것 같다. 1차 스프린트 기간은 정말 회의만 하느라 개발을 하지 못했다. 그러면서 이래도 되나? 생각이 들기도 했다.

과연 이 프로젝트에서 얻을 수 있는 것은 무엇일까? 라고 생각해봤을 때, 누군가는 기술적인 챌린지일수도 있고 누군가는 협업 과정을 얻고 싶을 수 있다.
나는 이 프로젝트에서 얻고 싶은 것을 2주의 시간과 여러 이야기들을 들어봤을 때, 기술적인 부분이 아니라 보다 현업과 가까운 경험을 얻고 싶다는 결론을 내렸다.

회사마다 다르겠지만 현업에 가면 새로운 것을 개발해내는 것 보다는 기존에 있던 서비스를 유지 보수하는 일이 태반일 것이다. 그렇다면 포트폴리오에 들어갈 프로젝트에서 보여줄 것이 현업과 가까운 것이면 더 좋지 않을까? 생각이 들었다.
그렇기에 많은 기능을 만들어서 완벽한 서비스를 만드는 것에 치중하기 보다는 핵심적인 기능이 담긴 서비스를 빠르게 만들어 배포하여 유저의 이야기를 듣고 싶었다. 유저의 이야기와 데이터를 가지고 해당 서비스를 조금씩 고도화 해 나가고 우리가 미처 발견하지 못한 에러나 불편한 점들을 개선해나가고 서비스 성능 향상에 신경을 쓰면 더 좋겠다는 생각이 들었다.

회고를 작성하며 취업준비에 관한 해당 프로젝트에 대해 정말 많은 생각이 들고 있다. 어떻게 해야 유의미한 프로젝트를 만들 수 있을까.. 조금 더 많이 고민을 해봐야 방향을 잡을 수 있을 것 같다.
그리고 든 생각은 이제는 용기내어 물어보고 다녀야 할 시기라고 생각이 든다. 두려워하면 나아갈 수 없다. 용기를 내고 실천해야 앞으로 한걸음 한걸음 걸을 수 있을 것이다.

행동대장 wiki

우테코: 장바구니 & 상품 목록 미션 회고 + Level2을 마치며

level2 수료 축하 fe 걸스 나잇

성장이란 뭘까. 어른이란 뭘까.

행복했던 내 생일

장바구니 미션에서는 상태관리 라이브러리인 recoil을 주로 사용해보는 미션이었다. 나는 상태관리 라이브러리를 사용하는 것이 완전 처음이었기 때문에 걱정이 많았었다. 하지만 준의 베이스캠프가 친절하게 설명되어 있기 때문에 베이스캠프의 글을 따라 차근차근 기능을 구현하다보니 생각한 대로 잘 기능 구현을 할 수 있었다. 그래서 그런가? 장바구니 미션을 진행하는 내내 재밌었던 것 같다. 물론 생각이 많고 구현해야 할 기능들이 많았어서 스트레스를 받았지만.. 그래서 step2에서 능률이 엄청 떨어지기도 했지만.. recoil이라는 새로운 것을 배우고 적용하는 과정은 참 즐거웠다.

장바구니 미션을 진행하면서 가장 많이 생각했던 키워드이다. 성장, 어른
지식이 늘고 있고 나의 실력이 늘어나는 것은 맞지만 성장했다는 느낌이 들지 않았다. 성장에 대한 고민은 장바구니 미션 시작부터 Level2를 마치기까지 계속해서 따라왔다. 그래서 나중에 Level2 글쓰기에 나의 성장에 대해 작성하기도 했다.

그리고 성장과 같이 고민한 키워드가 어른 이다.
개인적일과 겹치면서 어른이 되는 건 뭘까 생각을 참 많이 했다. 24세인데.. 정신적으로나 경제적으로나 나는 어른이 아직 아니라고 생각이 들었다. 또한, 개인적인 일을 해결해나가면서 어떻게 어른답게 유하게 해결해 나갈 수 있을까 고민을 많이 했었다. 그렇게 선택한 방법은 결과적으로 봤을 때 그닥 어른답지 못했던 것 같다. 시간이 알아서 해결해 주기를 바랬으면 안됐는데, 먼저 다가가서 해결하려고 했어야 했는데.. 내가 생각한 것과 다른 방향으로 일이 흘러가서 그게 참 아쉬웠고 어른이 된다는 건 어렵다는 것을 몸소 깨달았다.

장바구니 미션 자체는 굉장히 재밌었지만 다른 요소에서 스트레스를 받아 만족스럽게 미션을 진행하지는 못했던 것 같다.
그래도 해당 미션때, 내 생일이 껴있었는데 인생에서 가장 행복한 생일을 보냈다. 이 날은 절대 잊을 수 없는 행복한 날 top5에 들 것이다!

Level2의 마지막 미션을 만족스럽게 끝내다!

한강에서 치킨 뜯은 날

마지막 미션의 리뷰어는 이전 자동차 미션때 만난 유조를 또 만나게 되었다. 또한, 페어는 처음 이야기를 하게 된 수야였다. 정말 만족스럽게 마지막 페어 미션을 마쳤던 것 같다. 리뷰어의 피드백도 너무 좋았고.. 페어와의 합도 너무 좋았다.

성향이 비슷해서 일이 착착- 진행된 점이 굉장히 만족스러웠다. 나는 기능을 구현할 때 GPT를 많이 사용하는 편이다. 내가 개발을 하다가 에러가 발생한 부분이 존재하면 혼자 뚱땅 거리다가 방향성이 안 보이면 GPT에게 물어본다. 이렇듯 GPT를 많이 활용하는 편이다. 그런데 마침 수야가 GPT를 결제하면서 많이 활용해보고자 했던 시기라 나의 행동을 백분 이해해줘서 너무 좋았다.

그리고 일단은 주어진 과제를 우선적으로 생각하여 제한된 시간안에 제출하는 것을 먼저라고 생각한다. 개발하면서 이것도 있으면 좋겠는데? 싶은 기능들이 나타나게 된다. 하지만, 시간이 남으면 그때 하자~로 미뤄두는데 이런 부분이 수야와 잘 맞았다. 내가 ~~건 어떻게 하고 싶으세요? 하면 해보고는 싶은데 당장 필요한 건 아닌 것 같다라고 솔직하게 말해준다. 그렇다. 내가 원했던 대답을 속 시원하게 온건하게 말해준다. 너무 좋았다.

그리고 아마 가장 좋았던 부분은 수야와 나의 리액트에 대한 지식 기반에 매우 비슷했기 때문인 것 같다. 둘다 이전에 리액트를 약간 깔짝인 수준 정도라 다양한 훅들이나 상태관리 라이브러리도 우테코에 와서 처음 사용했다.
이렇듯 지식 기반이 유사하기 때문에 어느 한쪽에 끌려가지 않고 둘이서 기능을 구현하는데 균형을 잘 잡으며 미션을 진행해서 만족스러웠던 것 같다.

아, 그래도 가장 좋았던 건.. 어느정도 수면 시간을 확보했던 거였을까나..? 수야의 영어 수업 덕분에 첫날 칼퇴. 둘쨋날에도 생각한 만큼 진행해서 나름 칼퇴 (무려 페어미션때 운동하러 감..) 마지막 제출날에도 시간 넉넉하게 기능 구현 완료.. 진짜 꿈의 페어 미션이었다.. 행복한 마지막 페어 미션이었다!!

이번 미션이 주로 학습하고자 하는 것은 RTL이었는데, step1때는 다소 이상하게 쓰다가 주변 크루들의 도움으로 step2때는 오~ 이게 RTL이군~ 하는 수준의 테스트 코드를 작성할 수 있었다!

또한, react-query를 처음 사용해봤는데 뭐 크게 어려운 건 없는 것 같았다! 사실 react-query를 깊게 사용한 건 아닌 것 같은데.. 음 ~ 이건 프로젝트하면서 와 닿겠지..!

그리고 마지막 Level2 미션이라 그런가? 굉장히 많이 놀러다녔다. step1 제출하고 급조된 한강 피크닉 가기.. 난생 처음 재즈바도 가보고, 프론트엔드 여자 크루들끼리 걸스나잇 파티도 열고..!(버퍼 기간이긴 하지만..!) 너무 즐겁게 놀러다니면서 마지막 미션을 진행했다..!

Level2를 마치며

level2 수료식날 구왼조

Level2는 react를 학습하는 것이 주된 학습 목표였기 때문에 JS를 할 때보다 각 미션들이 참 재밌었던 것 같다. 처음 사용해보는 것들도 많아서 즐거웠고!
그리고 level1에서 잘 이야기 나눠보지 않았던 사람들을 알게 되어서 더더욱 좋았다.

Level2에서도 데일리 미팅 조가 변경된 것이 무색할 정도로 구왼조와 굉장히 자주.. 회식하고 놀았는데 이런 소소한 것들이 지치지 않게 만들어 주는 것 같다. (내 깜짝 생일 축하.. 마위 생파 겸 일리 테코톡 종료 기념 회식, 월하 집들이.. 히비키 회식.. 바다, 렛서 테코톡 종료 회식 등등..) 진짜 회식 많이 했네; level1때보다 level2 들어오면서 서로 더 돈독하고 가까워졌던 것 같다!

Level2를 진행하면서 좋은 수면 습관과 학습 루틴을 세울 수 있어서 좋았다. 일찍 자는 습관을 만들면서 이전보다 수면 시간이 길어져 하루 하루를 상쾌하게 보낼 수 있었다. 또, 일찍 일어나다 보니 아침 시간에 혼자만의 공부 시간을 가질 수 있어서 좋았다.
스터디를 진행하면서 새롭게 알게 된 것들이 많아서 좋았고 크루들의 이야기를 들으며 여러 시각으로 배울 수 있어서 좋았다.

Level2는 기술적인 성장도 성장이지만 생각에 대한, 정신적인 부분의 성장이 컸던 것 같다. 개인적인 일이 결코 작은 일이 아니었음에도 무던하게 일을 해결하려고 노력하며 어른이 되는 것에 한 발짝 다가갈 수 있었다.
또한, 성장에 대해 의구심을 가짐으로 그간의 나를 되돌아 볼 수 있었던 것 같다. 그리고 결과적으로 나에게 성장이란 무엇인지 알 수도 있었다.

🔗 Level2 글쓰기 미션: 나는 성장한다. 고로 존재한다.

기술적인 면이나 정신적인 면이나 여러모로 나를 성장시킨! 그런 Level이었다.
그리고 나의 못 이룬 대학 로망을 이뤄준 Level이기도 하다~! 무사히 내가 Level2도 보낼 수 있도록 옆에서 도와주고 지켜준 모든 분들에게 고맙다 💙