2021.02.24 데일리 회고

천영석·2021년 2월 24일
0
post-thumbnail

오늘은 하루종일 페어 프로그래밍을 해서 리팩토링 후 마무리를 했다.

servics.js 파일 삭제

페어와 함께 코딩을 할 땐 눈에 보이지 않던 것들이 혼자 리팩토링을 하다보니까 보였다.
우선, servics.js에서 뷰와 모델로 데이터를 전달해주는 역할을 하고 있었는데, 솔직히 이 파일이 아직 필요하지 않을 것 같다는 생각이 들었다.
로또 게임이 엄청 큰 프로젝트도 아니고, controller.js에 모든 코드를 다 작성해도 그렇게 길지 않기 때문이다. 또한, service.js파일로 한 단계를 더 거쳐야 하기 때문에 필요하지 않은 함수를 만들어야 되는 경우도 있었기에, 나는 과감히 파일을 삭제했다.

handler에서 view에 데이터를 전달???

컨트롤러에서 모든 것을 다 하려다보니 이벤트리스너를 통해 호출되는 핸들러에서 원하지 않는 값이 들어왔을 때 view의 showMessage를 실행하는 코드가 작성되었다.

const onCorrectNumberInput = (e) => {
  const userGuideMessage = 
        message.getCorrectNumberValidation(getCorrectNumbers());
  if (userGuideMessage) {
    lottoGameView.showMessage(userGuideMessage);
    e.target.value = '';
    e.target.focus();
  }
};

이런식이다.

에러 메시지가 존재할 때, view에 있는 메서드를 호출하고, 값을 초기화시켜주는 역할을 하게 되는데, 과연 handler에서 처리를 하는 것이 맞는가에 대해서 고민을 하게 되었다.

내가 생각하기에 handler는 받은 정보에 어떠한 오류가 있는지 검사하는 것은 아니라고 생각하기 때문인데, 어떻게 생각하면 또 handler에서 하는 것이 맞는 것 같기도 하다. 왜냐하면 이것을 다른 함수에서 처리하게 되면 값을 초기화하기 위한 e.target.value를 넘겨줘야하는데, 이것도 말이 안된다.

그래서 우선은 handler에서 처리를 하도록 만들었다. 또, handler에서 하지 않으면 다른 함수가 너무 길어진다.

html에서 가능?

또 다른 궁금증으로는 html에서 form 태그에 onsubmit="return false"를 사용해도 될지에 관한 것인데, 솔직히 아직은 잘 모르겠다. html에서 이렇게 처리를 해주면 js에서 form 관련 handler에서 한 줄의 코드가 줄어들기 때문에 좋긴 하지만 html에서 사용하면 왠지 안될 것 같은 느낌이다.
우선은 리뷰어분께 사용해도 되는지 여부를 질문해볼 예정이다.

느낀 점

우테코 과정을 진행하면서 함수의 역할, 파일의 분리, 네이밍에 대해서 정말 눈에띄에 실력이 좋아진 것을 느낄 수 있다. 이제는 함수를 만들 때 이 기능이 이 함수의 역할일까? 부터 생각하게 되고, 역할이 아닌 것 같으면 이름을 바꿔보거나 함수를 나누거나 하는 식으로 구현을 하게 되었다.

그렇게 진행을 하다 보면 어느 곳에서나 사용될 수 있는 함수가 만들어지고, 그런 함수들은 utils폴더로 옮겨진다. 또, 이벤트리스너를 거치면 반드시 나오는 사용자로부터 받은 정보의 유효성 검사는 모두 validators 폴더로 옮겨진다.

컨트롤러가 너무 커지면 컨트롤러를 어떻게 나눌 수 있을까를 고민하고, 뷰가 너무 커지면 뷰를 어떻게 나눌 수 있을지 고민하게 되는 것이 예전과 같지 않다.

또, 페어와 의견이 다를 때 서로의 주장을 하면서 내가 왜 이런 코드를 지금까지 사용했었는지 고민을 하게 되고, 그러는 과정에서 확실히 실력이 향상되는 것을 느낀다.
예전에는 절대 하지 않았을 고민이기 때문이다. 그냥 어쩌다 알게된 지식이 당연한 것인줄 알고 사용하던 것이 많다.

하지만 프로그래밍 세계에서 정해진 정답은 없고, 누구의 의견이나 정답이 될 수 있다.
여기에서 중요한 것은 모든 코드가 모두 정답이 될 수 있지만 정답이 되기 위한 조건으로는
코드를 왜 사용하는지에 대한 정확한 이해가 뒷받침되어야 한다고 생각하고, 그렇게 배웠다.
그래서 내가 코드를 왜 사용하는지 알고 있고, 다른 사람들에게 설명할 수 있다면 정답이다.

난 정답을 맞추는 것을 좋아하기 때문에 항상 정답인 코딩을 하기 위해서 코드 하나하나를 모두 어떤 이유로 작성하게 되었는지를 생각하면서 코딩을 하게 되는 것 같다.

우테코에 오게 되어서 정말 행운이라고 생각하고, 남은 9개월도 열심히해서 좋은 프론트엔드 개발자가 됐으면 좋겠다.

profile
느려도 꾸준히 발전하려고 노력하는 사람입니다.

0개의 댓글