반응형

질문 답변 게시판 리팩토링


이 과정은 결국 실제 상황에서 리팩토링을 하기 위한 연습을 하는 과정이다.
그렇기에 순수 자바로 했던 미션들 보다 더욱 중요한 과정이 질문 답변 레거시 리팩토링 미션이다.

무진장 기대를하고 리팩토링을 시작했다. 그런데 ?? 생각보다 너무 간단하게 해결이 되었다.
너무나 당연하다는 듯이 해결이 되었다. 리팩토링을 해야하는 코드는
서비스 코드에 모든 로직이 있었다. 이를 리팩토링하는게 미션이었다.
도메인 레벨로 옮기는 것이다. 조금 막막할 줄 알았는데 의외로 해결이 잘 되어서
확실히 성장 했다고 느꼈다. 물론 설계가 잘 되어있어서 그랬을 수도 있겠지만.. ㅋ.ㅋ
예전 같으면 “이걸 뭘 어떻게 서비스에서 빼라는거야? 당연히 서비스에 있는거 아니야?"
라고 생각했을 것 같다. 실제로 처음에 JPA를 공부하려 할 때 도메인 클래스라는 것 자체가
이해하기 어려웠다. 그 당시 내가 알던 모델은 VO였다. 그냥 값 매핑용..
하지만 지금은 너무나 당연히 도메인 클래스에서 로직을 처리해야 한다고 생각하고 있고,
그렇지 않으면 클린 코드 자체가 안된다. 객체를 분리를 할 수 없는 구조이기 때문이다.
내가 처음에 JPA를 접하고 더 혼란스러웠던 이유가 학원에서는 VO라도 봤지만
회사에서는 아예 도메인 레벨이 서비스 뿐이었다. 그리고 바로 컨트롤러 끝.
이게 가능했던 이유는 마이플랫폼이라는 프론트를 사용했고 이에 편하게 사용하기 위한
프레임워크를 사용했기 때문이다. 즉, 아예 도메인 클래스를 분리할 수 없는 구조였다.
그래서 더 혼란스러웠다. 그런데 이번 단계를 진행하는데 아주 잘 진행되어서
너무 재미있었다.

볼링 미션 및 교육 회고


완전히 헬이었다. 사다리부터 어렵긴 했는데 나한테는 볼링은 너무나 어려운 과정이었다.
그래서 선택한 것이 남의 코드를 한 줄 한 줄 모두 이해하면서 역으로 요구사항을 분리해보면서
개발을 했다. 오히려 이게 좋다고 생각했다. 남의 코드를 보는 능력도 기를 수 있고,
너무 오랜 고민은 시간 낭비가 될 것 같았다. 하지만 나는 이 교육의 본질을 잊었다.
이 교육은 좋든 나쁘든 스스로 설계하는 능력을 키우는 것이다. 그 과정에서 피드백을 받을 것도
많이 생길 수 있다. 그래야 코드를 리팩토링할 기회도 생긴다. 결국 나는 설계의 기회를 발탁 당한 것이다.

코드를 베껴서 했다고 PR를 했는데 피드백이 왔다.
스스로 하지 않았다면 느끼는 것이 스스로 하는 거에 비해 아주 적을 것이다. 지우고 다시 해보는 것을 추천한다.
라는 내용이었다. 이 과정에서 강조하는 것이다. 리팩토링이 안될 정도면 다 지우고 해봐라.
그러면 새로운 코드가 나올 것이다. 솔직히 알고 있었는데 너무 어려워서 완료를 하고 싶었다.
피드백을 받고 다시 정신을 차리고 모두 지우고 다시 볼링 1단계 부터 진행하게 되었다.

이번에는 목표를 반드시 달성하자 라는 마음으로 했다. 포기할 것 같으면 계속 생각했다.
바로 최대한 요구사항을 잘게 쪼개자. 당연한거지만 조금 더 다짐을 했다는 것이다.
쉽지는 않았지만, 이전 보다는 좋아졌다. 포기하고 싶었지만 계속 생각을 했다.
결국 70% 정도는 스스로 만들었고, 30%정도는 이전 코드를 보고 했다.
그래도 확실히 성장을 했다고 느꼈다. 정말 아쉬운건 이미 머리속에 코드가 어느정도 있어서
설계의 기회를 박탈 당했다는 것이다.

이 교육의 미션은 한 번하고 끝낼게 아니다.
again 채널이라는 것이 있는데 괜히 있는게 아니었다. 익숙한 도메인으로 클린코드를
적용하는 연습을 계속 해야만 하는 것이었다. 나는 한 번에 되기를 바라면 안되지만
나도 모르는 내면에서 바라고 있던 것 같다.

아쉽지만, 좋은 코드를 보고 했기 때문에 피드백도 받을게 없었다. 너무 아쉬운 부분이다.
좋은 코드를 보는 것만이 나쁜 것은 아니니 얻은 것이 없는 것은 아니다.
대단한 코드를 보는 것 자체도 좋은 것이니까.

이 교육의 again 채널에는 가끔씩 다시 진행하시는 분들이 계신데 나도 하게 될 것 같다.
실제로 나도 완료를 못해서 다시 처음부터 진행해서 완료한 케이스이다.
이번에는 완료를 했지만 다음에 다시 하게 될 것 같다.

이 교육은 단순히 코딩만 하는 것이 아니라 인생에 대한 이야기도 한다.
뭐라고 설명하긴 어렵지만 분명 무언가 생각을 많이 하게 해준 교육이다.
자바를 사용할 줄 알고, 고민이 많거나 무엇을 해야할지 모른다면 반드시 추천하는 교육이다.
몰두하지 않으면 수료할 수 없는 과정이기 때문에 실패해도 나중에 다시 완료해도
그 완료하는 과정에서 정말 많은 것들이 바뀔 것이다. 나는 실제로 삶을 변화 시키는데
정말 큰 영향이 있었다. 퇴사도 그렇고, 방향성, 몰두, 환경 바꾸기, 어떻게 살아가야 하는가 등

아무튼 정말 나의 인생 교육이었고, 앞으로도 인생 교육으로 남을 것 같다.

반응형

'TDD 클린코드 java 10기 교육 과정' 카테고리의 다른 글

3단계 사다리  (0) 2022.01.09
2단계 로또  (0) 2022.01.09
1단계 자동차 경주 회고  (0) 2022.01.09
복사했습니다!