작성
·
80
·
수정됨
0
현재 진행중인 프로젝트에 Aop 구현은 힘들어서 facade를 통해 Redisson lock을 적용해보려고 합니다.
facade 패턴을 처음 접해서 그런지 프로젝트에 어떻게 적용해야 할지 고민입니다.
service 로직을 건들지 않고, facade 패턴을 사용해서 역할분리 한 거에 대해서는 이해했습니다만,
mvc 패턴에서, controller가 결국 동시성 제어가 적용된 서비스를 이용하려면 service(createReservation)가 아니라 facade(createReservation)를 사용해야 하는데,
controller가 service로도 동시성 제어가 적용되지 않은(사용해서는 안될) 메서드(createReservation)에 접근이 가능하다는 점에서 문제가 될수도 있다고 생각했습니다.
(비슷한 상황으로 컨트롤러가 reposiotry를 가끔 참조하기도 하는데, 이때의 경우는 service에 굳이 해당 로직을 만들지 않을때인데, 지금 같은 경우는 비슷한 로직이 service에도 있고, facade 에도 있는 경우라.. )
협업에서 어떤 개발자의 실수로 service 계층의 createReservation(사용해서는 안될)가져다 쓸 수 있다는 것이 신경쓸 문제가 아닌지, 아니면 컨트롤러가 그 서비스의 메서드에 접근을 못하게 한다던지, 실제로 어떻게 적용하시는지 궁금합니다.
답변 2
0
donkey 님 안녕하세요.
일단 AOP 의 구현이 힘든 이유를 잘 모르겠습니다.
Spring 의 Aop 를 활용하신다면 구현이 가능할것이라고 생각됩니다.
facade 를 활용할 것이고, 그곳에서 service 를 이용하고 service 를 외부에서 이용 못하게 하고싶다면 접근제어자를 활용하여 같은 패키지 안에서만 사용가능하도록 하면 되지 않을까 생각합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. donkey님의 질문과 관련하여, facade 패턴 적용으로 인해 발생하는 동시성 제어 및 설계상의 고민에 대해 도움이 될만한 기존 답변을 찾았습니다. 아래 내용들은 질문자님이 직면한 문제에 대한 이해를 깊게 하고, facade 패턴 적용 시 고려해야 할 점들을 안내합니다.
facade 패턴 적용 및 service 에서 락 재흭득 처리 후 문제 질문:
redisson lock을 AOP로 변경하는 경우 실무 사용 방법 문의드립니다!:
이러한 질문들은 donkey님의 경우와 직접적으로 동일하지 않을 수 있지만, Facade 패턴을 통한 동시성 제어와 MVC 패턴 내에서의 역할 구분, 그리고 설계상 고려사항에 대한 통찰을 제공합니다. 특히, controller가 잘못된 service 계층의 메서드를 사용하지 않도록 하는 설계 방법에 대해 더 넓은 관점을 제공할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.