사다리 미션 회고

Jayson·2025년 6월 3일
0
post-thumbnail

https://github.com/next-step/java-ladder-func-playground/pull/51

미션 시작 전 목표

  1. 응집도 있는 코드 작성하기
  2. 요구사항에 맞는 구현 가져가기
  3. 근거 있는 분리하기

결과

지금까지 객체지향적인 구현을 한다는 명분하에 추상화를 과도하게 도입해왔던 것 같다. 그런데 그중 많은 부분이 의미 없었고, 내가 불필요한 분리를 참 많이 했다는 걸 이번에 느꼈다.

예를 들어, 사다리 게임이 다른 게임으로 바뀔 수 있다는 이유만으로 추상화를 도입한 적이 있는데, 지금 생각하면 좀 웃기기도 하다.

응집도 있는 코드를 작성하려고 해도, 기존에 분리하거나 추상화를 도입하던 습관 때문에 고민되는 지점들이 많았다. 그럴 때마다 요구사항을 다시 바라보며 근거를 찾으려 했다.

요구사항에 "변경될 수 있다"는 말이 없고, "구현해달라"는 요구가 명확하다면, 의미 없이 추상화를 도입할 필요는 없다고 판단했다. 그리고 이번 요구사항은 꽤 간결했기 때문에 더욱 그러했다.

또한 응집도 있게 구현을 해두면 확장하기도 편리하다는 걸 느꼈다. 하지만 한 번 확장된 코드를 다시 응집시키는 일은 정말 어렵다.

로또 미션에서 이런 부분에 대한 많은 배움을 얻었고, 그 피드백을 바탕으로 이번 사다리 미션에 적용해보았다.

나름 유의미한 변화를 만들어냈고, 스스로 성장한 것 같아 뿌듯함을 느낀다.

챙겨갈 것

  1. 응집도 있는 코드 작성하기
  2. 요구사항에 맞는 구현하기
  3. 근거 있는 분리하기
  4. 협업하기 좋은 코드 작성하기
    • 팀원이 읽기 쉬운 코드
    • 복잡도가 낮을수록 좋은 경향이 있음
    • 필요한 곳에만 복잡도를 부여하자. 그렇지 않으면 협업 난이도만 올라간다
  5. 의미 있는 변수, 메서드, 클래스 네이밍 작성하기
profile
Small Big Cycle

0개의 댓글