개발/Spring

개발/Spring

스프링 핵심 원리 이해2 (Spring 프레임워크 사용)

이어서, 스프링으로 자바를 이용한 예제에서 이제는 스프링을 적용시켜보자 Appconfig에는 @Configuration을 붙여주면 되고, 나머지 객체를 생성하고 의존관계를 주입해주는 메서드에는 @Bean을 붙여준다. 이제 클라이언트는 AppConfig를 객체를 생성해서 메서드로 서비스 객체를 가지고 오지 않는다. 하지만 AppConfig의 스프링 컨테이너를 생성하고 스프링이 관리해주는 각 서비스객체와 매칭되는 스프링 빈들을 통해서 기존과 같은 기능을 구현할 수 있다! 코드로 보자! OrderApp.java public class OrderApp { public static void main(String[] args) { //AppConfig appConfig = new AppConfig(); //Memb..

개발/Spring

스프링 핵심 원리 이해1 - 예제 만들기 (순수 자바코드)

인터페이스에만 의존하는 클라이언트 public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); //하위 생략 } 위 코드의 인터페이스 OrderService를 구현하고 있는 OrderServiceImpl이라는 클라이언트는 DiscontPolicy, MemberRepository뿐만 아니라 FixDiscountPolicy, MemoryMemberRepository라는 구체 클래스에도 의존하는 코드이다...

개발/Spring

Spring Core Basic - 객체 지향 설계와 스프링

스프링의 핵심컨셉. 스프링이란? 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크. 객체 지향 언어인 자바가 가진 강력한 특징을 살려내주는 프레임워크이다. 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다. 좋은 객체 지향 프로그래밍 유연하고, 변경이 용이하게 코드를 작성하는 것. 다형성(Polymorphism)이란? 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 역할과 구현을 분리함으로써 우리는 다형성을 만족하는 코드를 작성할 수 있다. 쉽게 말하자면, 자동차를 운전하는 입장인 사용자는 자동차 조작법(역할)만 알고 있으면 되고 사실 자동차 엔진이 어떻게 돌아가는지, 자동차의 모델이 무엇인지, 가솔린 자동차인지, 전기자동차인지(구현) 알 필요가 없..