본문 바로가기
개인

우테코 7기 프리코스 중간 회고

by yeneua 2024. 10. 31.

들어가며

한 달간의 우테코 프리코스가 2주차를 마무리하며 절반이 지났다. 2주 동안 느낀 점들을 써보려고 한다.

먼저 나는 우테코 지원할 때부터 우테코 합격!!! 보다는 프리코스를 경험해 보고 싶어서 지원했다. 전공자도 아닐뿐더러 아직은 코드를 작성해 본 경험이 많지 않기 때문에 한 번 해보자라는 생각이었다.

따라서 우테코 최종합격보다 프리코스 완주하기가 목표였기 때문에 부담 없이 프리코스를 시작했다. 큰 욕심이 없다기보다는 현재 내 실력을 알기에 프리코스를 통해 성장한다는 마음가짐으로 참여했다.

 

 

지원서에 작성한 목표를 얼마나 달성하고 있다고 생각하나요? 그 이유는 무엇인가요?

절반을 마무리한 시점에서 답하자면 매우 그렇다이다. 프리코스 기간의 목표는 내 실력 파악하기였다. 내 실력이 어느 정도인지, 얼마나 더 어떤 것을 공부해야 하는지 알고 싶었기 때문이다.

 

첫 번째로 느낀 건 모르는 게 너무 많다는 것이다.

첫 미션도 내게는 도전일 것이라고 예상했지만 코드를 작성하기 전부터 삐걱거리니 너무 막막했다. 긴 프로그램을 작성해 본 경험이 적어서 설계는 어떻게 해야 하는 건지, 기능 단위의 범위는 얼마가 적절한지, 얼마나 상세하게 설계를 해야 하는 건지 하나부터 열까지 어려웠다. 그래서 1주차 미션에서는 기능 목록 작성하는 데에만 꼬박 하루가 걸렸다. 부실한 설계 탓일까 구현도 어려웠다. 일단은 필요한 기능들을 위주로 하나씩 작성했지만 코드를 짜면서도 점점 주먹구구식이 되어간다는 느낌을 받았다. 코드를 적다가 수정할 부분이 보이면 수정하고 또 기능을 만들고 마구잡이 식으로 작성하는 바람에 커밋 로그를 보면 feat, fix, refactor가 순서 없이 막 섞여있다. 결국 어찌어찌 완성은 했지만 말 그대로 기능 구현에만 초점을 둔 돌아가는 쓰레기였다.😭 그래도 내가 작성한 코드이니 chat GPT 없이 내 힘으로 짰다는 것에 스스로 위로를 했다.

 

두 번째로는 꽤 할 줄 안다는 것이다.

1주차 공통 피드백을 받고 주요 기능에 집중하는 것이 우선이라고 깨달았다. 그래서 예외 사항들은 나중으로 미뤄두고 필수적인 기능들만 어떻게 구현할지 생각하고 코드를 작성했다. 1주차와 비교해서 들인 시간이 적은 거에 비해 훨씬 탄탄하게 기능 명세를 작성할 수 있었다. 그리고 어떤 로직으로 코드를 작성할지도 미리 생각하고 구현에 들어갔다. 그 후 구현 단계에서는 큰 어려움 없이 코드를 작성할 수 있었다. 솔직히 우테코를 지원하면서 내가 프리코스 미션을 구현할 수 있을까? 하고 구현조차 하지 못할 거라 예상했기 때문에 생각한 대로 코드를 쭉쭉 작성해 내는 모습이 스스로 놀라웠다. 나 자신을 과소평가했었던 것 같다. 1주차도 돌이켜보면 완벽하진 않지만 내 힘으로 구현을 해냈었다. 따라서 돌아가는 쓰레기를 만들 수 있다는 결론을 냈다. 

 

두 가지 각각 1, 2주차를 진행하면서 느낀 생각이다. 같은 목표였지만 2주간 느낀 점이 정 반대인 게 나도 신기했다.

 

 

지원서에 작성한 목표를 변경해야 한다고 생각하시나요? 그렇다면 그 이유와 어떤 목표로 변경하고 싶으신가요?

돌아가는 쓰레기를 만들 수 있다는 결론을 냈고 따라서 이제는 덜 쓰레기를 만드는 것이 목표다. 구현을 스스로 할 수 있다고 생각하니 이제 막 걸음마를 뗀 것 같았다. 그러니 앞으로 배울 것이 더욱 많다는 걸 느꼈다. 

2주차 학습 목표는 다음과 같았다. 여러 역할을 수행하는 큰 함수를 단일 역할을 수행하는 작은 함수로 분리한다. 해당 학습 목표는 자연스럽게 리팩토링에 대해 생각하게 했다. 그래서 구현 단계에서 기능을 완성하고 난 후 한 파일에 있던 함수들을 파일로 분리하고 최대한 한 함수가 한 역할을 할 수 있도록 했다. 일단 학습 목표대로 작성하긴 했지만 왜 리팩토링의 필요성이 와닿지 않았다. 그냥 단순히 함수를 분리하는 게 아닌가 하는 생각이 들었다. 아직도 리팩토링 무얼 위한 것인지, 좋은 코드를 위한 거라면 어떤 게 좋은 코드 인지 모르겠지만 내가 내린 결론은 다음과 같다. 보기 좋은 코드를 작성하기 위해서. 보기 좋다는 건 잘 정리되어 있어서 이해가 쉽다는 것이다. 이해가 쉽다는 것은 코드를 작성한 내가 아닌 다른 사람이 봐도 이해가 쉽다는 것이다. 프로그램에 주석을 다는 것도 같은 이유라고 생각했다. 따라서 덜 쓰레기를 만드는 데엔 여러 가지가 있겠지만 리팩토링을 잘해보고 싶다.

 


프리코스를 진행하면서 눈에 띄는 변화나 깨달은 점이 있나요?

목표를 지속적으로 떠올리고 있다. 나 같은 경우는 어떤 걸 알고 있는지 부족한 부분이 무엇인지를 지속적으로 생각하고 있다. 그렇다면 알고 있는 건 확실히 내 것으로 만들고 부족한 부분은 앞으로 학습해 나가면 될 것이다. 이렇게 목표를 지속적으로 떠올리면서 나아가 목표 달성 이후를 생각하게 되었다. 1주차에서 설계가 미흡했다면 그다음 2주차에서 다른 방식으로 설계를 진행해 보는 것이다. 부족한 부분을 파악하면 목표가 세워지고 그 목표를 달성하면 또 부족한 부분과 더 발전한 목표가 세워지고 있다.

그리고 평소에도 미션에 대해 계속 생각하고 있다. 길 가면서도 이건 이렇게 해야겠다~라는 식으로 항시 코딩을 마음속에 품고 살게 되었다. ㅋㅋㅋ

 

 

마무리

3가지 질문은 2주차 미션과 함께 주어진 회고 질문들이었다. 미션 제출에 작성한 내용들과 조금 차이는 있지만 위 질문들로 내가 느낀 걸 잘 적어낼 수 있을 것 같아 작성해 보았다. 프리코스를 진행하면서 가장 크게 느끼는 건 생각이 자유롭다는 점이다. 스스로 고민할 수 있고 그걸 토대로 또 발전할 수 있게 만들어 준다. 평소에도 생각하기를 좋아하는 편이라 생각할 거리가 매주 주어진다는 게 흥미롭다. 아직 절반이 남았지만 프리코스에 참여하길 잘했다는 생각이 든다.

댓글