skip to content
Q

[우아한 테크코스 7기 프리코스] 1주차 회고

/ 5 min read

Table of Contents

첫 인상

우테코 프리코스 1주차 문제를 보면서 처음에는 ‘기능자체는 어렵지 않은데?’ 라는 생각이 들었다. 물론 이게 PS 문제 풀이 라면 그냥 main함수에 다 때려 넣고 함수 몇개 만들어서 제출하면 엄청 쉬웠을 것이다.

하지만 기능 자체를 구현 하는 것이 제일 중요하더라도 우테코는 현장에 필요한 인재를 원한다. 그렇기에 어떤게 좋은 코드일까 많이 생각을 하게 되어, 이전 기수 지원자들의 PR을 보면서 어떤게 좋을 까 합격자들은 대체 어떻게 했을 까 분석을 했다.

나름의 분석

많은 코드리뷰가 있던 PR, 합격자 후기 블로그 등을 보았을 때 공통적은로 레이어(Layer)를 분리해서 개발을 한 게 보였다. MVC패턴으로 View와 Controller, Service로 각자 역할에 맞게 나누어서 과제를 했다.

MVC 패턴은 어려워

사실 이런 패턴은 학교 과제로 CLI기반 프로그램을 만들 때는 한 번도 해본적이 없었고, Spring 개발할 때만 어노테이션을(@Controller, @Service) 써가며 해봤을 뿐이지 사실 일반적으로 프로그래밍 하는데 있어 레이어를 나눠 개발하는 것은 내게 많이 어색했다. 물론 지금 과제로 올라간 내 PR또한 아마 운영진 분들 시선에서 되게 어색하고 그냥 따라해서 짜집기 한 듯한 코드란게 느껴질 것이다.

오히려 지금도 이렇게 어설프게 한 것을 보일 빠에는 그냥 PS하듯이 만든 프로그램이 나을 까 싶기도 하지만 그건 정말 아닌 것 같다.

예외 처리

사실 이번 과제를 하면서 제일 고민 했던게 프로젝트 구조랑 예외 처리다. 나는 처음에 그냥 요구사항에 맞지 않는 입력에 대해 바로 IllegalArgumentException를 날렸는데 스프링 MVC개발 하시는 분들이나 이펙티브자바와 같은 책에서 에외처리를 할 때 직접 예외를 상속받아서 커스텀 예외(이게 맞는 표현인지는 모르겠다)를 만들어 사용해서 나도 이렇게 하는게 좋아보이네 하고 만들었다.

이렇게 만들면서 코드를 짜니 오히려 추상화가 더 잘되고 나중의 다른 과제가 오더라도 비슷하게 이용가능 할 것 같다는 생각이 들었다. 인간은 모방의 동물이라더니 일단 따라해보고자 하는 생각이 들어 따라해보고 나중에야 그 의미를 알게되다니..

소감

이번 과제를 제출하면서 내 코드가 많이 엉성하다는 생각이 들었지만 어떻게 해결해야할 지 몰랐다. 여기서 손을 더 댄다면 지금보다 더 안좋아지고 사족이될 까봐 코드를 짜기 무서웠다.

As Abraham H. Maslow said:

망치를 든 사람에게 모든 문제가 못처럼 보인다

디자인 패턴 공부를 하다가 이런 글을 보았다. 사실 내가 제출한 과제가 엉상하독 느낀 것도 이 말처럼 좀 더 나은 구조를 만들고자 디자인 패턴을 봤지만, 어떻게든 디자인 패턴에 맞추고자 상황이나 코드에 맞지 않는 패턴을 써서 그런게 아닐 까 싶은 생각도 든다.

이제 1주차가 끝났지만 남은 3주 동안 계속해서 담금질을 해야겠다.