2022년 정리9

조용휘·2023년 1월 22일
0

2022

목록 보기
9/10

소감문

오히려 답답한 느낌이었다.

이번 주차는 지난 주차들과 다르게 클래스들이 분리된 상태로 주어졌다. 처음 기능 구현 목록을 작성할 때는 이 내용들이 확실히 잘 와닿았다. 하지만 막상 구현을 하는 단계로 넘어가니 생각보다 이 클래스들이 많은 제약을 건다는 느낌을 받았다. 그 와중에 처음으로 등장한 인터페이스 클래스가 매우 눈에 띄었다. 기존에 알고 있는 인터페이스는 마치 Lay-out 역할을 하는 것이라고 이론적으로만 알고 있었는데 실제 사용을 하는 것을 보니 신기했다. 그래서 이번 과제에서 인터페이스를 한번 추출해내어 사용해보고 싶었다. 하지만 생각보다 쉽지 않았다. 계속 고민해본 결과 UI를 인터페이스로 해볼까 고민하였지만 output과 input간 공통 특성이 없어서 사용하지 못했고, 결국 일주일은 흘러버렸다.

Enum의 활용과 객체를 객체스럽게 하기 위해 노력했다.

함수의 길이가 10줄 이내, 예외 상황 최대한 많이, 비즈니스 로직과 UI로직을 나누는 것 등, 다양한 점들을 전부 반영하고자 노력했다. 결과적으로 enum 타입을 사용하니 코드가 눈에 띄게 줄어드는 것을 보았다. 실제로 처음 1차 완성을 했을 때와 다르게 계속 리펙토링을 하면서 enum 상수로 대체하였는데 그 과정에서 함수의 길이 10줄 이내를 전부 이뤄낼 수 있었다.

또한, 데이터베이스라는 것을 도입하였는데, 그동안 생각해온 것들은 데이터베이스는 그야말로 정보의 저장용이니 getter와 setter가 필수라고 생각했었다. 하지만 3주차 피드백을 받고 공부한 결과, 데이터베이스는 최대한 캡슐화해야 하며, 무엇보다 getter, setter가 아닌 그 객체가 직접 일하게 하자는 것을 느꼈고, 이를 최대한 구현해보았다.

테스트 코드는 나름 만족스럽지 못하였다.

처음 기능 구현 목록 단위로 테스트를 구현하다보니 실제 코드들을 커버하는 범위가 아마 부족했을 것이라고 생각했다. 시간이 조금 더 있었다면 테스트를 조금 더 만들어볼 수 있지 않을까 하는 생각이 들었다.

4주간의 과정을 마치며

자바의 ‘객체 지향’ 이라는 것에 어느 정도 감이 생겼고, 테스트 코드를 알게 되었으며, 각종 클린 코드를 실천하는 습관을 조금이나마 들일 수 있었다. 본인은 배구를 매우 좋아하는데, 이번 4주 과정을 통해 얻은 실력(?)으로 배구 전략 분석 프로그램을 한번 구현해보고자 한다. 팀별(객체) 데이터를 입력하면 해당 팀에 대한 파훼법을 출력해주는 식으로. 시간이 없어 이만 쓰겠습니다.

profile
Progress Gradually, Never Stop

0개의 댓글