[Spring] 의존성과 결합도 제대로 알기
·
Spring/Spring에서 Java 활용하기
안녕하세요. 스프링 백엔드 개발자 stark입니다!백엔드 업무를 하면서 개발자들끼리 코드 구조에 대한 대화를 하다 보면 의존성과 결합도라는 용어를 정말 많이 사용합니다. 개발에서 얘기하는 의존성 그리고 결합도는 뭘 의미하는 걸까요? 이 궁금증을 해소하기 위해 이번 포스팅에서는 의존성과 결합도에 대해 가볍게 알아보고 의존성 주입(DI: Dependency Injection)을 통해 어떻게  높은 의존성을 풀어나가는지 알아봅시다.  의존성이란 무엇인가?의존성은 쉽게 말해 한 클래스가 다른 클래스의 기능에 의존한다는 것을 의미합니다. 예를 들어, OrderService 클래스가 주문 처리를 위해 PaymentService의 기능(메서드)을 필요로 한다면, OrderService 클래스는 PaymentServi..
스프링에서 느슨한 결합 만들기: 이벤트 기반 아키텍처 적용
·
Spring/Spring 기초 지식
이벤트 기반 아키텍처를 적용해서 느슨한 결합(Coupling)을 만들어 보자 📖 서론 이번 포스트에서는 먼저 결합도가 높은 일반적인 시나리오를 살펴보고, 이를 개선하기 위해 결합도가 높은 코드에 스프링의 이벤트 기반 아키텍처를 적용시켜 보자. 코드를 쉽게 이해하기 위해 자주 사용되는 로그인 프로세스를 예로 들어, 어떻게 결합도를 낮추고 코드의 효율성을 높일 수 있는지 설명하도록 하겠다. 1. 결합도가 높은 login() 메서드 작성하기 결합도가 높은 login() 메서드 코드 분석하기 하단의 login() 메서드에서 처리하는 주관심사와 외부 관심사를 분리시켜 보자. 여기서 주관심사는 사용자의 로그인 과정이며, 외부 관심사(비관심사)는 로그인 후의 추가 작업들(예: 알림 보내기, 타 기기에서의 로그아웃 ..