본문 바로가기

728x90

SRP

(2)
[단위테스트] Unit Test 를 통해 함수를 Refactoring 해보자 Spring Boot 를 통해 앱을 개발하는 중에 기존 코드들을 단위테스트를 진행하면서 Refactoring 을 할 수 있었는데, 사실 Refactoring 을 하겠다고 생각하면서 굉장히 NAIVE 하게 짰던 기존 코드긴 하지만, Refactoring 에 큰 도움을 준다는 점을 다시 한 번 알게 되어 글을 작성해 보게 되었다. 바로 코드로 들어가보자. 우선 이 코드는 특정 Group 에 Member 가 가입하는 요청을 보내서, Group 에 가입을 시켜주는 흔한 로직이다. 다음과 같이 Controller 에서 Service 단으로 요청이 넘어온 상태부터 시작한다. public GroupMember joinGroup(RequestDto reqDto, Member member){ // 해당 그룹이 있는지 먼..
[Java] OOP, 객체 지향의 5대 원칙 (SOLID) Java 로 프로그램을 하게 될 경우, Java 의 언어적 특성인 객체지향 (OOP) 특성을 잘 반영하는 것이 중요합니다. 결국 모든 앱은 유지 보수 측면이 매우 중요한데, 이 OOP 측면을 잘 지키면, 유지 보수 및 관리에 큰 이점을 가져갈 수 있기 때문입니다. 이것이 어떻게 보면 Java 를 사용하는 이유라고 볼 수도 있을 것 같습니다.  객체 지향 설계에서 앱을 더욱 가독성 있고, 유연하고, 유지 보수 측면에서 유리하게 설계하기 위해서 제안되는 다섯가지 원칙을 SOLID 라고 합니다. Rober C. Martin 에 의해 제안된 이 다섯가지 원칙을 살펴보겠습니다.  굳이 다섯 포스트 만들면서 하나하나 까야할 내용은 아닌 것 같습니다. 차피 직접 설계해보시지 않으면 완전한 자신의 것이 되기는 힘들고,..