스프링

스프링/스프링 기본

롬복 라이브러리의 기능

롬복과 최신 트렌드 막상 개발을 해보면, 대부분이 다 불변이고, 그래서 다음과 같이 참조변수에 final을 붙이게 된다. 그런데 생성자도 만들어야 하고, 주입 받은 값을 대입하는 코드도 만들어야 하고... 필드 주입처럼 좀 편리하게 사용하는 방법은 없을까? 역시 개발자는 귀찮은 것을 못참는다! 다음 기본 코드를 최적화 해보자! @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; // final 키워드를 생략해야 한다. private final DiscountPolicy discountPolicy; @Autowired public OrderService..

스프링/스프링 기본

의존관계 자동 주입

보호되어 있는 글입니다.

스프링/스프링 기본

컴포넌트 스캔

보호되어 있는 글입니다.

스프링/스프링 기본

싱글톤 컨테이너

보호되어 있는 글입니다.

스프링/스프링 기본

스프링 컨테이너와 스프링 빈

보호되어 있는 글입니다.

스프링/스프링 기본

좋은 객체 지향 설계의 5가지 원칙

클린 코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정의 SOLID SRP : 단일 책임 원칙 OCP : 개방 폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP 의존관계 역전 원칙 SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하지만 이는 모호하다 왜냐하면 클래스마다, 책임의 크기가 다르고, 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 SRP를 잘 준수한 것. ex) UI 변경, 객체의 생성과 사용을 분리 OCP 개방-폐쇄 원칙 (중요 1) 소포트웨어 요소는 확장에는 열려 있으나, 변경에는 닫혀 있어야 한다. 다형성을 활용하여, 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 ..