리뷰&후기/개발자가되고싶다면

[책 후기] 내 코드가 그렇게 이상한가요? - 센바 다이야

반나무 2023. 9. 13. 21:54
 

내 코드가 그렇게 이상한가요? | 센바 다이야 - 교보문고

내 코드가 그렇게 이상한가요? |

product.kyobobook.co.kr

책을 읽기 위해서 필요한 기술

  • 자바 입문(문법 기초)
  • 내가 사용할 언어에 대한 초급 이상(자바를 내 언어로 생각해봐야 합니다.)
  • 한 번이라도 프로그램을 만들어본 적 있거나 구조에 대해 고민을 해본 적이 있는 사람

 

책을 읽고 난 뒤

 

묻지 말고 명령하기

 

이 책은 요즘 재밌게 보고 있는 .Net Dev 커뮤니티에서 한 분이 추천해 주셔서 읽어보았습니다.

https://forum.dotnetdev.kr/t/topic/7322

 

제목을 보고 웃긴 점도 있었지만 리팩토링과 프로그램 설계 부분에서

초보자도 쉽게 읽을 수 있다는 점에 마음이 끌렸습니다.

 

올해 들어 다양한 리팩토링, 설계, 디자인 패턴 책을 봤지만 다들 인기 있고 좋은 책이었지,

쉽다고 느낀 적은 없었거든요.. 다른 책을은 2~3번 더 읽고 나서야 조금씩 이해되는 부분이 있었습니다.

이 책은 리팩토링, 설계 부분에서 제가 읽었던 어떤 책 보다 쉬운 느낌이었습니다.

 

프로그래밍 실력보다는 프로그램을 만들고 난 뒤, 만들면서 구조적으로 고민을 한 번이라도 해본 적 있다면

다른 책 보다 우선적으로 읽고 키워드와 팁을 알아가면 좋겠다는 생각이 들었습니다.

 

아래는 제가 이 책을 읽으며 중요하다고 생각된 부분을 조금 정리해 보았습니다.


횡단 관심사(Cross-cutting con-cern)

로그 출력과 오류 확인은 App의 모든 동작에 필요한 기능이다.

이 처럼 다양한 상황에서 넓게 활용되는 기능을 횡단 관심사라고 한다.

  • 로그 출력
  • 오류 확인
  • 디버깅
  • 예외 처리
  • 캐시
  • 동기화
  • 분산 처리

 

묻지 말고 명령하기

멤버변수를 직접 제어하는 것이 아니라, 메서드를 통해 명령해서 값을 얻어내는 것이 좋다.

 

가드 절, 조기 리턴을 사용

메서드가 무거워지고 로직이 정신없어지는 것을 막아준다.

 

커맨드, 쿼리 분리(CQS : Command-Query Separation)

메서드는 커맨드 또는 쿼리 중 하나만 하도록 설계해야 한다.

메서드 종류 구분 설명
커맨드 상태를 변경하는 것
쿼리 상태를 반환하는 것
모디파이어 상태를 변경하고 반환하는 것

모디파이어를 쓸 수밖에 없을 때도 있지만 최대한 커맨드와 쿼리로 분리해서 작업한다.

 

응집도, 결합도

  • 응집도 : 클래스에서 기능에 대한 관심사라고 생각하면 되며(데이터와 행위가 같이 있다거나 등), 높아야 좋다.
  • 결합도 : 클래스에서 다른 클래스를 참조하는 수준이며, 낮아야 좋다(느슨한 결합)

 

TDD(테스트 주도 개발)

테스트 주도 개발을 하게 되면 테스트 코드를 만드느라 생산이 저하될 것이라고 생각하지만, 사실은 이슈 및 리팩토링에 도움이 많이 되기 때문에 생산성이 올라간다.

기회가 된다면 나도 해보고 싶은 개발 방법이다.

반응형