벌써 블로그에 글 쓴지가 한달이나 지났다.. 그동안 나는 졸업작품 발표(망함) 랑 우테코 프리코스를 하고 있었는데, 오늘 프리코스 마지막 과제를 제출했다. 그래서 후기를 한번 써볼까 한다 ㅎㅎ..
이후에 말하겠지만 처음보다는 성장한 것 같다. 다만 같이 참여했던 남들처럼 뭔가 극적으로 성장한 건 아닌 것 같다.. 이건 내가 다른 것에 바빠서 몰입을 좀 덜 했던 탓이긴 하다.. ㅠ
그리고 주차별로 어떤 과제가 있었고, 어떠한 방식으로 해결했다 이런 식으로 쓰진 않을 것 같다. 우테코를 시작할 때, 관계자분들의 유튜브 라이브를 한번 봤었는데 각자의 창의성을 위해 직접적인 코드나 생각들은 공유하지 않았으면 좋겠다고 하셨다. 그게 사실 이 코스 본질에 맞기도 하고 이 글을 보게될 미래의 프리코스 참가자들에게 더 도움이 되는 일이라고 생각한다. 무엇보다 남한테 훈수둘 만큼 내가 잘하지 않...
또, 같이 참여하는 사람들 보면 주차별로 후기를 쓰고 그러던데 나는 솔직히 주차마다 뭔가를 느끼진 못했었다.. 뭔가 딱 깨닫는 포인트는 있긴 했는데 그게 주차마다 있진 않았어서.. 아무튼 그렇다.
처음 과제는 그냥 객체를 분리하는데에만 집중했다. 객체가 하나의 역할을 가지고 서로 상호작용하는 것이 객체지향의 본질이니까. (근데 못한다)
두 번째 과제까지도 그런식으로 해결했던 것 같다. 그냥 객체의 분리가 중요하다. 단일 책임원칙! 이런식으로만 생각하고 만들었어서..
그러다가 계속 이런 식으로 만드는 것이 맞을까? 하는 의구심이 들었고, 결국 남의 코드를 조금 보게 되었다. 나는 이때만해도 관계자분이 그냥 혼자 코딩하란 얘기인줄 알았는데 알고보니 해당 주차에 대해서만 얘기하지 말라는 것이였다. 디스코드를 들어가니 정말 많은 사람들이 서로 코드리뷰를 해주고 있었다. 그중에는 꽤 잘해보이는 사람들이 너무나도 많았고, 이때부터 정신을 차렸던 것 같다.
그냥 계속 이렇게 하지 말고 새로운 것을 적용해보자!
그래서 MVC 패턴을 적용해보았다. 이게 스프링 프레임워크를 공부할 땐, 당연히 하는 일이긴 한데 이걸 우테코 과제처럼 콘솔 프로그램을 구현하는데에도 사용할 수 있다는 생각을 아예 못하고 있었다.
아무튼 나는 이미 MVC 패턴을 적용하던 경험이 있었기에, 생각보다 패턴으로 구현하는 것이 어렵진 않았다. 그러나 나는 3주차에 악명 높은 로또 미션을 만나버렸다.
와 로또는,,, 진짜 어려웠다. 특히나 이전 과제에 비해서 요구사항이 굉장히 많아졌고, 고려해야할 것들이 많이 늘었다. 사실 이전 과제에서도 충분히 고려할 사항이 많았지만 이 과제를 기점으로 확 늘었다.
어떠한 식이냐면 그냥 단순히 요구사항이 몇 개 늘어났을 뿐이지만 그 정도에 비해 테스트 케이스들이 매우 많이 늘어나기 때문이다. 특히나 이 과제의 핵심 사항은 enum을 사용하는 것이였는데 이게 enum을 단순하게 상수 수준으로 사용하던 나로서는 쉽지 않았다.
그렇지만 enum에 대해 확실히 알 수 있었던 좋은 기회긴 했다. 나는 진짜로 상수를 그렇게 묶어서 활용하는 건 줄 꿈에도 몰랐다...
그러나 나라는 괴물은 마지막 과제에서 이 모든 것에 "적응" 해버렸다.
사실 지랄이고 그냥 졸업작품이 아예 끝나고 시간이 조금 많이 생겨서 프리코스에 더 많은 시간을 할애할 수 있었다. 그러다보니 처음 사용해보는 enum에 대해 학습할 시간이 많았고, 객체 분리, MVC 패턴 등을 손 볼 수 있는 시간이 많았다. 특히 이번에는 할인 정책의 개념이 들어가야 했는데 이때 인터페이스 패턴으로 리팩터링을 시도할 정도로 꽤 공을 들일 수 있었다.
확실히 우테코에서 "몰입" 이라 주장하는 건 "시간" 을 많이 쓰라는 말인 것 같았다. 하나의 기능을 구현한 코드를 여러번 본다면 어느 순간 더 좋은 코드가 있지 않을까 생각하고 더 보완하게 되니 말이다.
그런 면에서는 성장한 것이 맞다. 코드 리뷰와 초기에 기능 구현 목록을 작성해야하는 중요성을 깨달아 버렸으니 말이다. 다만 누군가에게 이 4주동안의 노력으로 무엇인가가 확 바뀌었냐 한다면 아니라고 말할 것 같다. 나는 전공자다. 이 코스를 진행하기 전부터 그러한 식으로 배웠고, 그러한 식으로 설계했으며, 그러한 식으로 개발을 해왔다. 추가로 배운 것은 무엇인가가 더 효율적이냐 일뿐. 다만 이러한 케이스가 아니라면 충분히 성장할 수 있는 원동력이 될 것 같다.
아직 결과조차 안나온 지금에서 너무 김빠지는 말이지만 결국엔 탈락할 것 같다. 솔직히 말하면 나에겐 간절함이 없었다. 소감문 마저도 1주차 때는 500자가 전부였다. 남들은 2천자씩 꽉꽉 채워쓴다는데 말이다. 그런 내가 붙는 건 말도 안되며 더 절박한 사람이 붙어야 하는게 맞다.
다만 나에게 두 가지의 중요성을 깨우쳐 준 점은 정말 감사하게 생각한다. 특히나 코드 리뷰의 중요성은 내가 이전에 했던 프로젝트들을 다시 한번 보게 되는 원동력이 되었다. 다시보니까 정말 답이 없더라 ㅋㅋ... 이런 거 하나하나 도움이 되겠지
재밌었다 우테코