[Spring] 의존성과 결합도 제대로 알기
·
Spring/Spring에서 Java 활용하기
안녕하세요. 스프링 백엔드 개발자 stark입니다!백엔드 업무를 하면서 개발자들끼리 코드 구조에 대한 대화를 하다 보면 의존성과 결합도라는 용어를 정말 많이 사용합니다. 개발에서 얘기하는 의존성 그리고 결합도는 뭘 의미하는 걸까요? 이 궁금증을 해소하기 위해 이번 포스팅에서는 의존성과 결합도에 대해 가볍게 알아보고 의존성 주입(DI: Dependency Injection)을 통해 어떻게  높은 의존성을 풀어나가는지 알아봅시다.  의존성이란 무엇인가?의존성은 쉽게 말해 한 클래스가 다른 클래스의 기능에 의존한다는 것을 의미합니다. 예를 들어, OrderService 클래스가 주문 처리를 위해 PaymentService의 기능(메서드)을 필요로 한다면, OrderService 클래스는 PaymentServi..
[Spring] 의존성 주입(DI - Dependency Injection)과 결합도 낮추기
·
Spring/Spring 기초 지식
안녕하세요. 개발자 Stark입니다.이번 포스팅은 의존성 주입에 대한 설명입니다. 기존에 작성했던 내용을 개선하여 리팩터링 하였습니다.특히 기존에는 없던 설명들을 조금 부각했으며 이해하기 쉽도록 구성해 보았습니다. 중간중간 객체 간의 결합에 대한 설명 같은 것들이 있으니 많은 도움이 되었으면 좋겠습니다.  의존성과 의존성 주입이란?의존성이란?객체 지향 프로그래밍에서 의존성은 클래스나 모듈 간의 관계를 의미합니다. 한 클래스가 다른 클래스에 의존한다는 것은 해당 클래스가 다른 클래스의 인스턴스나 메서드를 사용한다는 뜻입니다. 의존성은 클래스 간의 결합도를 나타내며, 결합도가 높으면 변경에 취약한 코드가 될 가능성이 높아집니다. 의존성 주입이란?의존성 주입(Dependency Injection)은 객체가 필..
[@Configuration과 @Bean] 스프링 컨테이너의 동작 원리 톺아보기
·
Spring/Spring 기초 지식
안녕하세요. 개발자 stark입니다.블로그를 시작하며 제가 과거에 공부하며 작성했던 내용들을 전부 리팩터링 하고 있습니다. ㅎㅎㅎㅎ 개발했던 코드도 리팩토링을 하는데 이제는 블로그 글도 이렇게 수정해야 할 필요성을 느낍니다. 자 그럼 이제 스프링 컨테이너에 대해서 알아봅시다!  스프링 컨테이너가 뭔가요?스프링 컨테이너는 스프링 프레임워크의 핵심 구성 요소로, 애플리케이션의 객체(빈)를 관리하고 조정하는 역할을 합니다. 컨테이너는 스프링의 의존성 주입(Dependency Injection) 원칙을 구현하며, 애플리케이션의 모든 빈을 생성, 관리, 설정, 삭제하는 기능을 제공합니다. 스프링에서 사용하는 주요 컨테이너의 종류는 2가지가 있습니다.BeanFactory: 가장 기본적인 형태의 스프링 컨테이너로서,..
왜 스프링인가? 프레임워크의 철학 가볍게 살펴보기
·
Spring/Spring 기초 지식
스프링 프레임워크란?스프링 프레임워크는 자바 엔터프라이즈 애플리케이션 개발의 복잡성을 줄이기 위해 설계된 강력한 오픈소스 프레임워크입니다. 주요 목표는 객체 지향 원칙을 준수하며 유연하고 테스트 가능한 코드를 작성하도록 돕는 것입니다. 스프링 프레임워크의 대표적인 특징으로는 POJO(Plain Old Java Object) 기반의 경량화 설계와 유연한 아키텍처가 있습니다. 이를 통해 기존 자바 기술(JDBC, JPA 등)과의 높은 호환성을 제공하며, 대규모 애플리케이션부터 소규모 프로젝트까지 다양한 범위에서 활용됩니다. 스프링의 탄생과 철학을 알아봅시다. 자바 엔터프라이즈 애플리케이션 개발은 2000년대 초반까지 매우 복잡하고 어려운 일이었습니다. EJB(Enterprise JavaBeans)라는 무거운..