Post

연습용 Console 플래시카드 앱 제작 후기2

Intro

어제 Console 에서 플래시카드 어플리케이션 만든 후기(링크)를 썼습니다. 또 잘못했던 것을 개선하면서 야심차게 나아가고 싶었는데, 오늘은 새로운 지식이 잘 안들어와서 후기 내용 중에 View 클래스를 문자열 보관함으로 만들어 버렸던 것에 대해 조금 더 고민을 해봤습니다.

MVC 패턴을 공부하지 않은게 문제가 아니다

구현을 하면서 MVC(Model-View-Controller) 패턴을 쓰려고 한게 아니라 이름을 붙이다보니 MVC가 됐다고 적었었습니다. 그리고 MVC 패턴에 대해 공부해보고 적용해볼 생각을 하지 않은 것에 대한 반성을 했었습니다. 잘못된 반성은 아니었지만, 근본적으로 View 클래스가 문자열 보관함이 되어버린 이유는 아니었습니다.

설계대로 했을 뿐

이전에 설계를 하면서 도메인 모델을 아래와 같이 그렸고, 잘못 그렸다는 것을 인지하고 수정하는데 많은 시간을 보냈었습니다. 그래서 아래 그림과는 달리 구현 시에는 현황판 객체가 추가됐습니다.

초기 도메인 모델

배운대로라면 메시지에 적합한 객체를 선택해야 하는데, 첫 시작 객체를 사용자 객체로 점찍어두고, 객체에 어울릴만한 메시지를 만들어내는 잘못을 했습니다. 그래서 학습하라 라는 메시지는 임시방편으로 사용자 목록을 보여라 로 수정하고 새로만든 현황판 객체에 할당하였습니다. 그리고 Figma로 수정하는게 시간이 오래 걸리니 불편해서 그림 수정을 안했었습니다.

저는 당시에 도메인 모델에 있는 객체만 객체라 생각했고, View 클래스는 메뉴 표시에 도움을 줄 유틸리티 클래스 정도로 생각했던 것 같습니다. 저는 머릿속의 수정된 설계대로 현황판 객체에서 사용자 목록을 보이고, 보관함을 보이는 구현을 했던 것 입니다.

결국 MVC를 공부했냐 안했냐의 문제가 아니라 객체 지향을 아직 이해하지 못한 초보자의 잘못된 구현이었습니다.

이거 여기에서 처리해야되는거 맞아?

『오브젝트』 라는 책에 아래와 같은 문장이 있습니다.

… 객체지향 프로그래밍을 흔히 데이터와 프로세스를 하나의 단위로 통합해 놓은 방식으로 표현하기도 한다. 비록 이 관점이 객체지향을 구현 관점에서만 바라본 지극히 편협한 시각인 것은 맞지만 객체지향에 갓 입문한 사람들에게 어느 정도 도움이 되는 실용적인 조언인 것 또한 사실이다.

구현할 때는 이제 이거 여기에서 처리해야되는거 맞아? 하면서 스스로에게 항상 물어봐야겠습니다.

Outro

구현하면서 여러가지 잘못한게 많았지만, 글 까지 따로 적게되는 걸 보니 View 클래스를 잘못 구현했던게 스스로 가장 만족스럽지 못했나 봅니다. Front-end와 Back-end를 하나의 큰 객체로서 생각해보는 것도 좋지 않을까… 하는 초보자의 뇌피셜을 한번 적어봅니다.

다음번에는 조금이라도 더 만족스러운 결과물을 만들 수 있는 능력이 갖춰져있기를 스스로에게 기대해봅니다.

This post is licensed under CC BY 4.0 by the author.