[우테코]
프리코스 4주차 <편의점> 미션 회고 & 프리코스 돌아보기
🏪 4주차 미션 : 편의점
- 학습 목표 분석하기
- 구현 과정
- 구현 소감
- 결승점을 넘다
✍️ 일간 회고
- 블로그의 성장
- ChatGPT와의 사투
- 성공적인 함께 자라기의 비밀
🩵 프리코스 돌아보기
- 프리코스 종료 안내 메일
- 프리코스 첫 장 다시 읽기
- 포비와 수다 타임
📑 주간 회고
- 잘한 점
- 아쉬운 점
- 최종 코딩 테스트를 위한 앞으로의 계획
4주차 미션 : 편의점
학습 목표 분석하기
4주차 미션은 '편의점'이었다. 과제에는 '구매자의 할인 혜택과 재고 상황을 고려하여 최종 결제 금액을 계산하고 안내하는 결제 시스템을 구현한다'라고 적혀있었다. 1~3주차 미션과 다른 점을 눈치채셨는지? '간단'이라는 키워드가 사라졌다. 이전 미션 소개 문구는 '초간단 레이싱 게임', '간단한 로또 발매기'였다. 이번에는? 간단하지 않다는 얘기를 긴 설명문이 대신 말해주고 있다. 학습 목표에서 강조하는 것은 이전 학습 목표, 피드백이 강화된 버전이라고 받아들였다.
이번에는 회고를 살펴보자. 2주차에도 비슷한 형식으로 질문들이 있었다. 우테코는 정말 회고를 중요시하는 것 같다. 확실히 나에게도 회고를 어떻게 해야하는지 배우는 점이 있어서 좋다. 회고는 '내가 무언가를 실천했어야' 즐겁게 할 수 있는 것 같다. 일단 뭐라도 했으면 실패했더라도 괜찮다. 그렇지만 아무것도 안하고 회고하려면 회개가 될 뿐이다. 그러니 모두 실천하고 회고하는 즐거운 사이클을 만들자.
구현 과정
이번 미션은 fork와 PR 방식이 아닌, 개인 저장소에 private로 구현하고, 저장소 주소를 제출하는 방식이었다. 몇 명이나 과제를 제출했는지도 알 수 없고 다른 사람의 코드를 참고할 수도 없었다. 거기서 오는 심리적 압박감이 있기도 했고 오히려 나의 과제만 집중하면 되서 긍정적이기도 했다.
학습 목표와 피드백이 이전 미션에 계속 더하기 할당(+=)으로 추가됐기 때문에, 나 역시 지금까지 배워온 것들을 총집합해서 미션을 진행했다. 미리 노트에 펜으로 어떻게 구현할지 예상도를 짜보고, 관심사 분리를 위해 필요한 클래스를 생성했다. 유틸함수로 분리할만한 기능도 정리하고, 기능 구현 목록도 자세하게 나눠두었다. 테스트 파일도 미리 만들어두었다.
그럼에도 불구하고 과제 난이도가 나에게는 너무 높았다. 그래서 나만의 프리코스 챌린지인 'AI 안쓰고 개발하기'를 달성하지 못했다. 이 내용은 소감문에도 적었고, 아래 일간 회고 항목에서 자세하게 적으려한다. PR이 없는 대신 리드미에 프로젝트 설명과 실행 방법, 고민한 내용도 담으려고 계획했으나 실패했다. 이래저래 아쉬움이 남는 과제다.
구현 소감
학습목표와 3주차 공통 피드백을 머리에 인덱싱해두고 미션을 구현했다. 하지만 시간의 압박과 실력 부족으로 모든 요구사항을 만족시키지 못했다. 우테코에서 강조하는 '돌아가는 쓰레기를 만들자'가 먼저라고 생각해서 요구사항은 뒷전으로 치워두고 일단 구현에 매진했다. 참고로 일부러 무시한 것이 아니라, 요구사항에 너무 얽매이면 돌아가지도 않는 쓰레기가 될까봐(변명)
다른 피드백은 신경쓰면서 했는데, 이번 미션에서 도저히 소화하지 못하겠는 두가지는 '뎁스 2 넘지 않기', '메소드 10줄 이내'였다. 이 두가지를 어기고 마음대로 작성했다😂😂😂 덕분에 엉망진창 기술부채 코드가 되었지만...🍝
특히 이번 마감날에 도파민이 터졌던 순간을 적어보려 한다. 모든 구현이 다 끝나고서 완벽할 때 과제를 제출하고 싶었지만, 디스코드에서 마감 시간이 다가오면 과제 제출 페이지가 불안정하다는 얘기를 듣고 11시쯤 일단 제출해두었다. 회고는 미리 작성해놔서 문제 없었다.
기능 구현이 빠진 부분이 있으므로 && 로컬 테스트도 실패했기 때문에, 당연히 예제 테스트가 통과하지 못하리라는 것을 알고 있었다. 오히려 1개나 통과해서 의아했다.
기능을 추가하고 리팩토링했다. 바쁜 와중에 디스코드 채팅보는건 왜이리 재밌는지, 페이커급 화면전환으로 계속 채팅을 확인하면서 과제를 했다. 저처럼 하지 마시길 바랍니다. 그런데 예제 테스트 3/4에서 4/4로 넘어가지 않는 분들이 많아보였다. 나도 3/4 클럽에 가입하는걸까 두근두근했다.
정확히 기억한다. 나의 마지막 커밋은 11일 11시 59분 50초 쯤이었다. 티켓팅에 단련되어 59분 50초대가 긴장되지 않는 패시브를 가지고 있지만, 이번엔 달랐다. 몇 번 기능이 추가되고 리팩토링이 진행되면서 내가 작성한 테스트가 통과하지 않는 상황이 발생했다. 어디서 오류가 발생했는지 디버깅하고 테스트를 수정할 겨를이 없어서 그냥 싹 다 지워버렸다.
git push를 하고 과제 페이지에서 예제 테스트 실행 버튼을 누르는 순간, 모든 버튼이 disabled 됐다. 숨막히는 몇 분의 정적 후...
결승점을 넘다
12시 1분쯤 되서 떨리는 마음으로 새로고침을 하고, 최종으로 4/4가 된 것을 확인했다. 이로써 4주차 과제도 통과했고, 프리코스가 종료되었다. 그 순간 눈물이 터져나왔다. 안도감, 후련함, 아쉬움, 해방감, 긴장이 풀려 터진 눈물이었다. 거의 30분을 오열했다. 스포츠 선수들이 왜 경기 직후에 눈물을 보이는지 깨닫게 됐다. 나의 눈물도 그들의 것과 같은 성분이었으리라.
일간 회고
블로그의 성장
프리코스를 시작하고 블로그에 지원서 제출기부터 1, 2, 3, 4주차 회고를 모두 작성했다. 그런데 그게 생각지도 못하게 내 블로그를 성장시켜주었다.
부모님께 우테코를 설명하려고 카카오톡 샵검색에 '우테코'를 입력했는데 최상위 검색 결과로 내 블로그가 나온 것이다. 당황스럽게; 현재는 다른 글에 밀려서 최상위 결과로 나오지는 않는데, 아무튼 자랑스럽기도 하고 당황스러운 경험이었다. 솔직한 내 감정과 생각이 다 드러나있는 글들이라 부모님 보여드리기엔 부끄러워서 그냥 우테코 공식 홈페이지를 알려드렸다🤣
티스토리 월간 통계로 프리코스 이전에 비해 얼마나 성장했는지도 확인해봤다. 무려 우테코를 시작한 10월에는 1000 이상의 조회수가 나왔다. 의아한 점은 10, 11월 모두 최고 인기글이 우테코 관련 글은 아니라는 점이다. 왜.. 왜..? 그럼 뭘 보고 들어오신걸까.. 이전에 써놓은 글들이 조회수가 잘 나오고 있다. 유입 키워드는 참 알 수가 없다.
구글 서치 콘솔도 살펴봤다. 우테코 기간으로 설정하고 조회했다. 랠릿에 대해 작성한 글이 있는데 이 글이 노출수 7,206씩이나 되고 있다. 개발자 이력서 관련해 많이들 검색하시나보다. 아무튼 나는 내 블로그가 쑥쑥 커가도록 열심히 글을 심으면 된다. 누군가가 읽고 있다는 게 참 기분이 좋다. 쓰는 나도 재밌고 남들도 읽고 싶은 글을 써야겠다.
ChatGPT와의 사투
혹시나 나의 프리코스 회고를 모두 읽은 사람이 있다면, 나의 챌린지 목표 중 하나로 ‘AI 사용하지 않고 개발하기’가 있었다는 걸 아실 것이다. 4주차에 들어 이 목표는 완전히 실패했다. 그 사연을 적어본다.
3주차 로또 미션에서도 어려움을 겪었던 나에게 4주차 과제는 난이도가 너무 높았다. 4주차는 지난 미션에서의 경험을 바탕으로 리드미에 구현 기능 목록을 상세히 나눠 적고, 처음부터 클래스를 어떻게 나누고 구현하면 좋을지 계획을 세우고 개발에 돌입했다. 그렇게 했음에도 불구하고 ‘프로모션 할인’이라는 난관에 부딪혔다. 고려해야할 사항과 가짓수가 많아서 머리가 터질 것 같고 답답했다. 과제를 절대 포기하고싶지는 않았고, 비즈니스 로직을 완성해서 제출은 해야 마지노선일 것이라는 생각을 했다.
그래서 ChatGPT의 도움을 받아가며 코드를 작성했다. 이렇게해서 완성시킨다해도, 최종 코딩테스트에서는 AI 사용이 불가능하기 때문에 나의 실력 향상에는 좋지 않을 것이라고 생각했다. 그렇지만 이왕 AI를 사용한다면 뭐라도 얻어가자고 결심했다. ChatGPT를 사용하면서 AI에게 질문을 잘 하는 프롬프팅 능력을 기를 수 있었고, AI가 작성해준 코드와 설명을 보며 차근차근 배울 수 있었다. 내 코드를 리팩토링하거나 피드백 받을 때도 유용했다.
리드미에 구현 목록을 잘 정리해둔 것이 AI를 사용할 때도 도움이 많이 되었다. 아주 작은 단위로 기능을 하나씩 추가하는 방식으로 구현했고, GPT가 한 번에 원하는 대답을 하지 않는다고 열내지 않았다. 인풋을 제대로 줘야 아웃풋도 나올테니까... 결국 사람이 이해하기 쉬워야 AI도 이해하기 쉬운게 아닐까하는 생각을 했다. AI도 사용하는 사람의 능력에 따라 도출되는 결과가 다르다. 이번 과제는 나에게 높은 난이도였고, 그래서 나만의 챌린지를 끝까지 성공하지는 못했지만, 이전 미션들을 진행할 때와는 다른 배움의 시간이었다고 긍정적으로 받아들였다.
성공적인 함께 자라기의 비밀
전날 밤 12시까지 달린 스터디원들이기에 다음날 스터디 모임은 너덜너덜한 상태로 진행됐다. 팀원들의 일정상 저녁에 만나서 자세한 코드리뷰를 할 상황은 안 되었다. 완성까지 한 사람은 나뿐이어서 내가 프로젝트를 구현한 방식을 간략하게 설명했다. 각자 어려웠던 부분과 막힌 부분이 어디인지 공유했다. 다들 비슷하게 md 파일 불러오는 것과 프로모션 적용에서 애를 먹었다. 4주차 미션이 어려운 만큼 다들 AI와 함께 개발했고, 각자의 AI 사용 후기도 공유했다.
완성은 하지 못했더라도 구현한 내용에 대해서 서로 돌아가며 코드를 설명하고, 간략한 코드 리뷰를 진행했다. 나는 2년 정도 자바스크립트를 공부했지만, 다른 두 분은 반 년 정도밖에 되지 않으셨는데 나의 반년 차 시절을 생각하면 굉장히 실력이 좋으시다고 느꼈다. 특히 개발 공부 초기의 나는 잔뜩 주눅들어서 이런 우테코니 뭐니 하는 것에 도전할 생각조차 못했다. 당연히 나는 실력이 부족하다고 생각했기 때문이다. 그렇지만 다른 팀원들은 그걸 실천했고, 완성은 못할지언정 포기하지 않고 4회차 제출을 모두 마치셨다. 한 분도 중도하차하는 분이 없었다. 이전의 나는 무서워서 실전을 두려워했지만, 다른 분들은 이번 프리코스로 실력도 많이 늘고 자신감도 생기셨을 것이다.
우리는 포기하지 않고 완주한 것에 의의를 두고 자축했다(심지어 마지막주였기 때문에 오프라인 스터디를 취소할 수도 있었지만 우린 그러지 않았다). 스터디하며 느낀 점과 프리코스 완주 소감을 나누고 마지막으로는 앞으로의 계획을 공유했다. 나는 이런 본격적인 스터디를 처음 해보았는데, 이번 스터디 참여는 프리코스와 동등한 수준으로 나에게 의미가 컸다. 좋은 사람들을 만나고, 함께 성장한다는 것이 무엇인지 실제로 겪어보았기 때문이다.
우테코에서 모두 다시 만나게 되면 가장 좋겠지만 그러지 못하더라도 같은 업계 사람으로, 혹은 누군가 개발을 그만두더라도 '프리코스'에 함께했던 동료들이라는 추억으로 모여서 밥 한끼 같이 먹을 수 있는 사이가 되길 바란다.
서로 격려하고, 응원하고, 포기하지 않은, 이번 회고도 읽어주실 나의 스터디원에게 이번 회고 글을 바칩니다.
프리코스 돌아보기
프리코스 종료 안내 메일
프리코스를 마치고 종료 메일이 왔다. 오후 3시에 일괄 발송이라고 했지만, 나를 비롯해 일부는 오전 12시에 메일을 받았다. 이 내용은 훗날 누군가 참고할 수 있으므로 굳이 적어둔다. 메일이 계속 오지 않으면 스팸함을 확인하거나 직접 문의하면 된다. 참고로 나는 프리코스 시작날, 안내 메일이 스팸함에 가있었다.
프리코스 종료 메일에는 프리코스 과정이 어땠는지를 적는 설문 링크가 있었다. 질문에 답변을 하면서 프리코스 전반을 돌아보는 계기가 됐다. 그리고 메일 내용에 구체적인 제안 사항들이 있어서 앞으로 계획을 어떻게 세워야 좋을지 도움이 됐다. 내가 세운 계획은 하단의 주간 회고 파트에 정리해놨다.
프리코스 첫 장 다시 읽기
메일함에 들어간 김에, 프리코스 시작 메일을 다시 읽어봤다. 그때와 다르게 느껴지는게 있을까?
내가 프리코스 기간에 다른 사람에게 들었던, 충격받은 말이 있다. 나는 독학을 위주로 해와서 이렇게 짧은 시간 내에 아웃풋을 내고 돌아가는 쓰레기를 만드는 것이 익숙하지 않았다. 그래서 주변 사람들에게 조금 투정을 부리기도 했다.
'프리코스 과정이 너무 힘들면, 그건 너에게 우테코가 안 맞는 걸 수도 있어.'
내가 꿈꿔왔던 곳이 어쩌면 애초부터 나랑 맞지 않는 곳일 수도 있다니. 아직 고백하지도 못했는데 차여버리디니. 그렇게 둘 순 없었다. 그래서 힘들어도 참고 했다. 포기하지 않는걸 목표로 했다. 내가 우테코와 잘 맞는 사람이라고 스스로 세뇌하면서, 그렇게 되고 싶어 했다. 탈락하더라도 할 수 있는건 다 해보고 거절당하고 싶었다.
프리코스가 끝난 지금 생각해보면, '서로가 서로에게 잘 맞는지 탐색하는 시간'이라는게 무슨 의미인지 알 것 같다. 우테코가 모든 만능의 길은 아닌 만큼, 지원자도 우테코를 탐색하고 맞지 않으면 포기할 수 있다. 중도포기한 분들이 계시지만 그들을 비난할 수 있을까? 전혀 아니다. 세상은 넓고 결국 사람들은 자신과 맞는 곳에 찾아가게 되는 것 같다. 프리코스도 그런 여정 중에 하나였을 것이다.
포비와 수다 타임
'포수타'라고 불리는 웨비나 시간이 프리코스 종료일에 있었다. 줄임말의 뜻을 아무도 알려주지 않았지만 우테코 설명회에서 '선배와 수다 타임', '코치와 수다 타임'등을 사용한 것으로 추측하건대 '포비와 수다 타임'이었을 것이다.
인상 깊었던 내용 몇 가지만 추려서 적어본다. 다 듣고서 내가 적은 정리본을 다시 읽는데, 말하고자 하는 바는 하나로 귀결되는 것처럼 느껴졌다. 바로 "나만의 길을 개척하기"였다.
🎯 1. 실패를 대하는 자세
힘든 상황에서도 묵묵히 걸어가려면 어떻게 해야할까 고민해보자.
프리코스는 그런 힘을 기르는 과정이며, 우테코에 떨어지더라도 덜 흔들릴 수 있다.
성공만 하는 삶이 행복하기만 한 것은 아니다. 나중에 실패했을 때 흔들려서 무너지는 경우도 있다. 실패 경험을 쌓아야 덜 흔들릴 수 있다.
실패에서 무엇을 배웠는지가 중요하며, 실패 원인을 분석해보자.
어려움을 마주하게 되면 내가 당장에 일부를 포기해야 할지라도, 남은 것 중 무엇을 할 수 있을지 판단하자 → ⭐️ 메타인지와 관련
🎯 2. 학습 방향
내가 지금 좋아하고, 하고싶고, 필요하다고 생각하는걸 찾아서 스스로 학습할 때 "진짜" 공부가 된다.
세상은 묵묵히 휘둘리지 않고 나만의 길을 걸어가는 사람을 원하지만, 직접 그런 사람이 되기는 불안하다. 왜냐면 남들은 다들 유행을 따르기 때문이다.
→ 그렇기에 내가 마이웨이하면 경쟁력이 생긴다.
'코테 싫어? 그럼 하지마! 코테 안하면 좋은회사 못간다고? 그럼 가지마!' 이런 마인드로 살아보자.
⭐️ 대신 내가 마음에 드는 부분을 뾰족하게 끝까지 가보자(탑을 찍자) → 자신감이 생긴다.
우리는 두려움을 갖고 있다. 왜 두려운가? 경쟁에서 살아남아야 한다는 마음 때문이다.
⭐️ 경쟁보다는 내 자신에게 집중하면서 어떤 과정을 밟아나갈지 고민하고 실천하는게 중요하다.
포스타 들을수록 포비님의 반골정신이 엄청나시다. 진짜 멋지다. 그리고 코테 부분에서 기립박수를 쳤다. 딱 내가 저런 생각으로 살고 있기 때문이다. 혹시 포비님도 나처럼 intp이실까? 뒤에 말씀하신 '내가 마음에 드는 부분에서 탑 찍기'가 핵심일테니 나도 나의 뾰족한 부분을 갈고 닦아 최고가 되어야지.
🎯 3. 성장통
어떻게 하면 더 일을 재미있고 가치있게 할 수 있을지 고민해보자.
역량을 쌓아가는건 고통스러우며 모든 분야가 다 그렇다.
진정한 재미는 꾸준히 역량을 끌어올린 후 무엇인가를 만들어낼 때, 문제를 해결할 때, 즉 쌓은 역량을 발휘할 때 찾아온다.
⭐️ 성장이 더디고 힘들 수 있지만, 어떻게 다음 단계로 갈 것인지 고민해보자.
역시 역량을 쌓는건 힘든게 맞다. 반대로 말하면 고통스러우면 역량을 쌓는 중이라는 의미다. 나는 슬로우 스타터같다. 얼마나 더 고통스러워야 할까... 얼른 짱이 되서 진정한 재미를 찾으리라.
주간 회고
프리코스 마지막 주를 돌아보고, 앞으로 코딩 테스트까지 남은 시간을 어떻게 보낼지 계획을 세워보자.
잘한 점
1. 포기하지 않고 과제를 끝까지 완성하고 제출한 점
2. 스터디 마무리를 완벽하게 끝낸 점
3. 구현 사항을 세부적으로 정리해둔 점
4. 제출한 회고에 나의 감정과 상황을 솔직하게 담아낸 점(3주차에 부족한 부분을 극복)
5. 바쁜 와중에도 매일 회고한 점
6. 부정적인 생각이 들 겨를도 없이 과제에 몰입한 점
아쉬운 점
1. 매번 마감일에 바쁘게 제출한 점
2. AI를 사용해 개발한 점 - 나만의 챌린지를 달성하지 못했다
3. 계획한 내용을 다 지키지는 못한 점(리드미 작성 등)
4. 테스트 코드에 시간을 많이 투자하지 못한 점
최종 코딩 테스트를 위한 앞으로의 계획
1. 최종 코테를 위한 나만의 템플릿 만들기
2. 과제하며 어려웠던 내용을 주제로 기술 블로그 남겨보기
3. 과제하며 모아둔 학습해야할 내용 하나씩 익혀가기
4. 이전 미션 하나 정해 다시 처음부터 풀어보기
5. 일정이 잘 관리될 수 있도록 매일 투두리스트 작성하기
6. AI를 사용하지 않기
'교육 > 우아한테크코스' 카테고리의 다른 글
[우테코 7기] 두근두근 우테코 적응기 (feat.첫 주) (4) | 2025.02.19 |
---|---|
[우테코] 7기 프론트엔드 1차 합격 발표 & 최종 코딩 테스트 회고 (27) | 2024.12.16 |
[우테코] 프리코스 3주차 <로또> 미션 회고 (3) | 2024.11.06 |
[우테코] 프리코스 2주차 <자동차 경주> 미션 회고 (3) | 2024.10.22 |
[우테코] 프리코스 1주차 <문자열 덧셈 계산기> 미션 회고 (5) | 2024.10.21 |