우테코 프리코스 1주차 회고

0_0_yoon·2021년 11월 27일
0

객체지향 생활 체조 원칙 (feat. 숫자 야구 게임)


이번 미션을 통해서 배운점들과 느낀점들을 정리해봤다.

미션 요구사항중 코드 컨벤션 지키는 부분이 있었다. 나름 컨벤션은 잘 지키고 있다고 생각했는데 관련 문서에서 CheckStyle에 대한 설명을 보고 호기심에 설치해서 내 코드를 검사해봤다. 그 결과 생각보다 많은 부분을 지키지 못하고 있었다. 그래서 매번 커밋하기전 CheckStyle을 사용해 체크했다. 앞으로도 CheckStyle을 적극 활용하며 코드 컨벤션을 체화시켜야겠다.


미션의 요구사항에 따라 기능을 구현할때 마다 커밋을 했는데 이때 커밋 메세지를 최대한 자세히 적기 위해서 패키지이름.클래스이름을 적어봤다. 그런데 모든 구현을 마치고 커밋 목록을 보니 가독성이 매우 떨어졌다. 그래서 커밋 메세지의 역할과 중요성에 대해서 공부하고 다음 미션에서 사용할 커밋 메세지의 포맷을 구상해봤다.

참고자료 : 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속, 커밋 메시지 가이드

우테코 1차 코딩테스트가 끝나고 2주간의 시간 동안 객체지향 프로그래밍을 공부했다. 처음에는 SOLID 개념을 공부하며 내 코드에 녹아내려고 했지만, 개념들이 뜬구름 같이 잘 와 닿지 않았다. 그래서 상대적으로 뚜렷한 기준과 컨벤션이 있는 TDD와 객체지향 생활 체조의 원칙을 무작정 지켜보며 설계하고 코딩했다. 그와 중에 1주차 미션을 시작하게 됐는데 미션에서 주어진 요구사항을 지켜가며 추가로 내가 이해한 선에서 TDD 기반으로 객체지향 생활 체조의 원칙을 지키려고 노력했다. 기능별 단위테스트를 진행하고 통과할 때마다 원칙들을 되뇌며 리팩토링했다. 이 과정 중에 특히 getter 메서드 사용 지양하는 부분이 제일 어려웠다. 그 이유는 여태까지 도메인 핵심 기능들을 구현할 때 각 객체에서 필요한 상태 값을 꺼낸 뒤 밖에서 로직을 짜왔기 때문이다. 일단 이 원칙을 제외하고 나머지 원칙들을 지키며 구현했는데 신기하게도 일급 컬렉션을 사용하고 문자열, 원시값을 포장하고 그 안에서 기능들을 잘게 나누는 과정을 거치면서 굳이 객체에서 값을 꺼내 처리할 필요 없이 객체 내부에서 처리하면 된다는 점을 깨닫게 됐다. 그래서 객체의 상태 값 설정을 생성자를 통해 초기화하고 그 뒤에는 객체 자율적으로 상태 값을 처리하도록 설계할 수 있었다. 이번 미션을 하며 이 부분을 깨닫게 된 것이 가장 값진 성과라고 생각했다. 또한 객체지향 생활 체조의 원칙이 9가지가 있지만 대부분의 원칙이 객체들 스스로 로직을 처리하도록 설계를 유도한다는 것을 깨달았다. 2주차 미션 전까지 깨달은 점들을 다른 곳에 적용하며 더 검증해보고 보완해서 OOP에 한 발짝 다가가 보겠다.

profile
꾸준하게 쌓아가자

0개의 댓글