220720 TIL 목적을 잊지 말자

오늘 목표로 했던 작업은 지금까지 작성한 코드들을 관심사에 따라 분리하는 게 1차적인 목표였다.

지금까지 관심사의 분리고 뭐고 아무것도 신경 안쓰고 일단 기능이 구현되도록 했기 때문에 코드들이 엉망진창이었다.

예를 들면 평점을 계산하는 메서드가 Panel클래스에 들어가 있고 랜덤으로 문장 나오게 하는 메서드도 첫 패널에 들어가있고 아무튼 엉망진창이다. 패널이나 프레임 클래스가 많아지다 보니까 발생하는 일이 분명 평점 계산하는 메서드를 작성했는데 어떤 패널에 넣어놨더라.. 하면서 뒤죽박죽 되어있는 내 클래스들에서 내가 작성했던 메서드가 어디 있는지 찾는데도 시간이 좀 걸렸다.

 

 

그래서 오늘은 마음먹고 각 기능의 역할에 따라 분리를 해주려고 했다. 이게 왜 마음먹고 해야 하는 일이냐면.. 

이전에 todolist 만들 때도 1차적으로 관심사의 분리 생각 안 하고 만들고 이후에 관심사의 분리를 하려고 클래스를 나누는 순간 프로그램이 작동하지 않아서 오류를 해결하느라 애를 먹었던 경험이 있어서 이번에도 똑같은 상황이 일어날까 봐 겁을 먹었다.

 

걱정과는 다르게 별 탈 없이 관심사의 분리를 성공했다. 하다가 중간중간 작은 오류들이 있었지만 다행히 금방 해결할 수 있었던 문제들이었다. 관심사에 따라 분리를 해놓으니까 내가 찾으려고 하는 메서드들이 어디 있는지 금방 찾을 수 있었고, 문제가 발생한 부분이 있으면 다른 코드는 건드리지 않고 딱 그 부분만 딱 신경 쓸 수 있어서 복잡성이 크게 줄었다는 것을 느낄 수가 있었다.

 

관심사의 분리를 다 해놓고 오늘의 2차 목표인 보관함 기능을 시작했다.

첫 페이지에서 랜덤으로 나오는 글귀 중 마음에 드는 글귀가 있으면 저장하여 따로 모아서 볼 수 있는 기능이다.

평점 기능을 구현하는데 고생을 해서 그런지 상대적으로 오늘 기능을 구현하는데 큰 어려움을 느낀 부분이 없었다.

 

근데 책 추천 서비스가 내 본 서비스의 목적과 방향이 좀 다른 것 같다는 피드백을 받았다. 이 전에는 생각 못하고 있었는데 다시 생각해보니까 연관성이 별로 없는 것 같다.

내 서비스의 목적은 매일 랜덤을 제공되는 글귀를 보고 힘을 얻는 게 목적인데 갑자기 뜬금없이 책 추천하는 서비스라니.. 정말 뜬금없다..

그래도 어떻게 만든 기능인데 버릴 수는 없고 최대한 이 기능을 활용해서 내 본 서비스의 목적에 맞게 연결하려고 했다. 책 추천을 연관성 없이 아무거나 추천하지 말고 책 속에서 인상 깊게 봤던 구절이 있으면 그 책을 추천하도록 책 추천 서비스를 좀 더 구체화했다.

 

본 서비스의 목적을 계속 생각하고 그에 맞는 기능을 구현하려고 했어야 했는데, 아무 생각 없이 기능을 구현하려고 하니까 발생한 문제였다.

1주 차 과제인 컴퓨터 견적 짤 때 느꼈던 건데, 무엇을 하든지 항상 본질을 생각하고 하려는 게 무엇인지 계속 떠올리면서, 내가 하고 있는 방향이 맞는지 계속 체크하면서 하는 게 중요하다는 것을 다시 한번 깨닫게 되었다. 

 

 

앞으로는 뽀모도로 할때 1뽀모 끝나면 짧게 지금 내가 뭘 하고 있는지, 원래 하려던 목적과 맞는지 다시 한번 생각하자.