아래 코드를 한번 보자. Cotroller 에서 Service 계층을 바로 참조하고 있다. 이건 보통 일반적인 비즈니스 로직을 작성할때 많이 작성되는 코드이다. @RestController class UserJoinController( private val userJoinService: UserJoinService ) { @GetMapping("/users") fun hello() { userJoinService.join() } } 이건 보통 일반적인 코드인데 한가지 문제점이라면 문제점이 있을 수 있다. 만약 User 가 회원가입하는 부분이 MSA 환경으로 분리된다면 어떻게 대응할 수 있을까? 아마도, 기존의 UserService 를 지워야 하거나 수정하는 현상이 발생할 것이다. 우리가 클린코드 / 클린..