Spring 44

[Spring] 싱글톤 패턴, 싱글톤 컨테이너

- 싱글톤 패턴? 싱글톤 패턴이란, 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 인스턴스를 2개 이상 생성하지 못하도록 막아야한다. private 생성자를 사용해서 외부에서 new 키워드를 사용하지 못하도록 막으면 된다. 예제 코드를 보자. public class SingletonService { private static final SingletonService instance = new SingletonService(); public static SingletonService getInstance() { return instance; } private SingletonService() { } public void logic() { System.out.println("싱글톤 ..

Spring 2023.06.26

[Spring] 순수 자바 DI컨테이너에서 스프링 컨테이너로 전환하기

- 스프링으로 전환 이전 포스팅에서 순수 자바코드로 DI 컨테이너(AppConfig)를 만들어봤다. 이제 본격적으로 AppConfig를 스프링 환경으로 바꿔보자. 스프링 환경으로 구성했을 때의 이점은 하나씩 추가될 것이다. * 이전포스팅 : https://dong-woo.tistory.com/63 [Spring] 순수 자바코드를 통해 회원관리, 주문서비스를 만들고 객체지향원리 적용하기 - 객체지향원리? 간단한 회원관리서비스, 주문서비스(할인정책)을 순수 자바코드로 만들어보며 좋은 객체지향 설계원칙 5가지(SOLID)를 지킬 수 있는지 단계별로 확인해보자. 본 포스팅을 이해하 dong-woo.tistory.com - 스프링 컨테이너? 스프링 빈? 스프링에서는 기존 AppConfig같은 설정정보 파일을 입력..

Spring 2023.06.26

[Spring] 순수 자바코드를 통해 회원관리, 주문서비스를 만들고 객체지향원리 적용하기

- 객체지향원리? 간단한 회원관리서비스, 주문서비스(할인정책)을 순수 자바코드로 만들어보며 좋은 객체지향 설계원칙 5가지(SOLID)를 지킬 수 있는지 단계별로 확인해보자. 본 포스팅을 이해하기 위해서는 서비스들의 동작 로직을 알고있으면 된다! 자세한 코드는 제외하고, 다이어그램을 통해 서비스 로직을 살펴보자. 첫 번째로 MemberService MemberRepository로 이어지는 회원저장, 회원조회가 가능한 회원관리 서비스이다. 다형성을 위해 '역할'을 인터페이스로, '구현체'를 인터페이스를 상속받은 클래스로 만들었다. 당연히 구현체들은 각자의 역할의 인터페이스를 상속받아 모든 기능을 사용할 수 있다! 저장소인 MemberRepository는 현재 로컬메모리를 사용할 지, 데이터베이스를 사용할 지..

Spring 2023.06.23

[Spring] 객체지향설계(SOLID)와 스프링

- 스프링? 스프링은 자바 언어 기반의 프레임워크이다. 자바의 가장 큰 특징이 뭘까? - 객체 지향성이다. 결국 스프링은 객체 지향 언어가 가진 강력한 특징들을 살려낼 수 있는 프레임워크이다. 그럼 살려내야 할 객체 지향 특징이 뭘까? - 객체 지향의 특징 객체 지향의 특징으로는 추상화, 캡슐화, 상속, 다형성 등이 있다. 각각의 특징들을 본 포스팅에서 서술하진 않겠다. 그래서 객체 지향적으로 프로그래밍을 하면 좋은 점이 뭘까? 추상화니, 다형성이니 어려운 말 쓰지말고 생각해보자. 결론부터 이야기 하자면, 객체 지향 언어의 가장 큰 장점은 "유연성" 이라고 생각한다. 객체 지향 프로그래밍은 코드 자체를 명령어들의 집합으로 보는 시선을 벗어나, 독립적인 단위로 구성할 수 있고 상호간의 교류가 가능한 "객체..

Spring 2023.06.19