Backend Dev/Spring Framework
-
[Spring] 객체 지향 설계의 적용Backend Dev/Spring Framework 2022. 3. 8. 03:14
객체 지향의 원리와 설계 원칙을 소스코드로 적용해보려 하고, 스프링을 사용하지 않는 순수 자바로만 코드를 작성하는 단계에서 생기는 문제점부터 짚어볼 것이다. 아래의 클라이언트 코드를 변경해야 하는데, 왜 변경이 필요한 것일까? public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } OrderServiceImpl이 DiscountPolicy라는 인터페이스에 의존하면서 구체 클래스에도 의존을 하기에 DI..
-
[Spring] 좋은 객체 지향 설계를 위한 5원칙, SOLIDBackend Dev/Spring Framework 2022. 3. 3. 16:07
이전 포스팅에서 스프링과 객체 지향 프로그래밍의 컨셉과 핵심에 대해 알아보았는데 이번에는 스프링 프레임워크가 객체 지향 설계를 하는 데 있어서 어떤 이점과 관계가 있는지 알아보려 한다. 스프링에서 지원하는 제어의 역전(IoC)이나 의존관계 주입(DI)과 같은 기술은 다형성과 함께 역할과 구현을 편리하게 다룰 수 있도록 지원한다. 역할과 구현의 분리에 대한 이해가 부족하다면 아래 글을 통해 내용을 숙지하고 보는 게 좋을 것 같다. [Spring] 스프링과 객체 지향 설계 Spring이란? 스프링을 나타내는 의미는 문맥에 따라 다양한데 스프링 DI 컨테이너 기술, 스프링 프레임워크, 스프링 생태계 자체를 의미하기도 한다. 스프링의 주 기술은 스프링 DI 컨테이너, AOP, 6ro-29.tistory.com ..
-
[Spring] 스프링과 객체 지향 설계Backend Dev/Spring Framework 2022. 3. 3. 05:24
Spring이란? 스프링을 나타내는 의미는 문맥에 따라 다양한데 스프링 DI 컨테이너 기술, 스프링 프레임워크, 스프링 생태계 자체를 의미하기도 한다. 스프링의 주 기술은 스프링 DI 컨테이너, AOP, 이벤트와 같은 것들이 있다. 핵심적인 건 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크라는 것이다. 객체 지향 언어인 자바 언어 기반의 프레임워크로써, 객체 지향 언어가 가진 강력한 특징을 살려낸다. 그렇다면 스프링 부트라는 것도 자바로 백엔드 개발 공부를 하다보면 들어봤을 법한 단어인데, 이는 스프링을 편리하게 사용할 수 있도록 지원해주며 스프링 프레임워크 사용 시 때에 따라 필요한 라이브러리들을 불러올 수 있게 해준다. 스프링 부트의 대표적인 특징은 다음과 같다. - 단독으로 실행..