회고/코드스쿼드 - Java 과정

[TIL] 코드스쿼드 2022 백엔드 30일차 + 주말 회고(6주차)

jwKim96 2022. 2. 19. 00:48

오늘은 무슨 일이?

코드스쿼드의 웹백엔드 Java 클래스 1 주차가 끝이 났습니다.
이번주 미션부터는 구현 내용을 PR 하면, 코드 리뷰를 받을 수 있었습니다.
본격적으로 리뷰를 받기 시작하니, 스스로 어떤 부분이 부족했었고 개선해야 하는지 명확하게 알 수 있어서 좋았는데요.
이번주 리뷰를 받았던 내용 중에서 가장 신경써서 반영하려고 했던 부분이 있었습니다.

클래스를 필요할 때 분리하기


이때까지는 저는 초반부터 클래스를 최대한 한가지 역할만 하도록, 유현한 변경이 가능하도록 쪼개면서 미션을 구현해 나갔습니다.
이러한 저의 기존 방식은 장단점이 있었는데요.

  • 장점
    • 클래스가 한 가지 역할만 하고 있어서, 추후 리펙토링을 하기 쉬움
    • 변경에 유연한 구조로 만들었기 때문에, 미션 진행 중 요구사항이 변경될 경우 변경할 코드가 상대적으로 적음
  • 단점
    • 간단한 기능을 구현하는데도 클래스를 많이 만들게 되어 시간이 많이 걸림
    • 클래스가 여러개 다양하기 때문에 다른사람이 맨 처음 코드를 보면, 봐야할 부분이 많음

그래도 스스로 이 방법이 나쁘지 않다고 생각하고 있었고, 코드스쿼드 동료분들이 코드가 좋다고 칭찬을 많이들 칭찬해주셔서
자신감을 갖고 있었습니다.

하지만 코드리뷰와 동료들과의 그룹리뷰, 그리고 이전에 여러 강의를 보던 중 들었던 말이 자꾸 떠올랐습니다.

"앞으로 일어날 것 같은 일을 미리 생각해서 개발하지 마세요."
"그 일들을 왠만하면 일어나지 않습니다."


인프런에 있는 김영한님의 JPA 강의를 보던 중 듣게된 말인데요.
정확히 똑같이 말씀하신 건 아니지만, 위 문장과 맥락은 일치합니다.

그리고 호눅스의 리뷰, 동료들의 의견, 김영한님의 강의 중 조언에서 반복적으로 같은 말들이 나오는 것을 느끼게 되었는데요.
그래서 이번주에는 필요할 때 분리하기를 연습하기 위해, 앞으로 일어날 것 같은 일을 생각하지 않고 개발했습니다.

익숙하지 않아서 처음에는 약간 헤메는 시간이 있었지만, 미션을 진행하며 스스로 결론을 내리게 되었습니다.

앞으로 일어날 일들을 미리 걱정하지 말자!
대신에 객체의 역할과 책임, 협력에 대해 계속 고민하며 분리하자!


'필요할 때 분리하면 된다'라는 말을 저는, '처음에는 분리하지말고 나중에 필요할 때 분리하라'라고 이해했었는데요.
이번주 내내 미션을 진행하며 생각해보니, 그런 뜻이 아니었던것 같습니다.
미래에 대한 걱정이 아니라 객체의 역할, 책임, 협력에 포커스를 두고 객체를 분리하되 확장성 있는 구조가 필요하다면,
그때 확장성 있는 구조로 분리하면 된다고 생각이 정리되었습니다.

생각이 정리되고 나니, 일부러 나누지 않았던 클래스들을 객체의 역할, 책임, 협력을 고려하여 나누기 시작했고,
목요일~금요일쯤 되어 스스로 보기에 만족스러운 구조로 바뀌었던 것 같습니다.

그렇게 주말에 4단계 PR 리뷰를 받았는데, 리뷰어 roach에게 좋은 리뷰를 받아서 이번 일주일 동안 고민한 보람이 있었습니다:)

'칭찬은 나를 춤추게(?)한다'

인상깊었던 점은?

  • 주말에도 열심히 리뷰를 달아주시는 호눅스와 리뷰어 분들
  • 주말에 눈이 펑펑 왔네요(애기 서울사람이라, 아직은 눈 보면 반가워요😁)

아쉬웠던 것은?

  • 미션만 하느라, 다른 공부는 전혀 못한 것 같습니다.
    • 알고리즘과 CS공부할 시간을 할당해야겠습니다..!