SPRING(34)
-
빌드패턴, lombok의 @Builder
빌드패턴이란? 객체를 생성하고 필드에 값을 주입하는 방법에는 대표적으로 3가지 방법이 있다. (추가내용: 정적 팩토리 메서드 패턴도 존재하지만 이 포스트에서는 다루지 않음) 1. 생성자 주입 Member member = new Member("윤빙구", 33, "경기도"); 2. 객체 생성 후 setter로 주입 Member member = new Member(); member.setName("윤빙구"); member.setAge(33); member.setAddress("경기도"); 3. 빌드패턴으로 주입 Member member = Member.builder() .name("윤빙구") .age(33) .address("경기도") .build(); 빌드패턴은 이렇게 객체를 생성하면서 필드에 값을 주입하는..
2021.01.26 -
AOP란?
AOP 공통 관심 사항과 핵심 관심 사항을 분리하는 프로그래밍 법 스프링 AOP 구현예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Component @Aspect public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") public Object exec..
2021.01.12 -
IOC 제어의 역전
IOC(Inversion of Control)란? 개발자가 필요할때 필요한 모듈을 생성하고 호출하는것은 자연스러운 흐름. IOC는 개발자가 개발한 모듈을 프레임워크에서 호출하는 것. 개발자가 개발한 모듈은 어떤 객체로 실행될지 모른다.(제어의 흐름을 신경쓰지 않아도 된다.) 단지 자신의 로직만 실행하면 된다. 제어의 흐름은 프레임워크에서 가져가 개발자 모듈을 호출한다. 제어의 흐름이라는 것은 객체를 생성하고 호출하는 하여 전체적인 흐름을 정하는 일. 프레임워크: 제어권을 가져가 개발자가 개발한 모듈을 호출한다. 라이브러리: 개발자가 제어권이 있어 개발자가 라이브러리 모듈을 호출한다.
2021.01.12 -
좋은 객체 지향 설계의 5가지 원칙 (SOLID)
1. SRP: 단일 책임 원칙(single responsibility principle) 말 그대로 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임에 대한 기준은 모호하고 정의내릴 수 없다. 설계시 응집도는 높게, 결합도는 낮게 설계하면 단일 책임의 원칙을 따를 가능성이 높아진다. 한 클래스에서 다양한 책임을 가지게 되면 그만큼 다른 역할을 수행하는 클래스끼리의 결합될 가능성이 높아지게 되고 이는 곧, 한가지의 변경사항을 위해 여러가지 클래스들을 변경해야할 가능성이 높아져 유지보수에 취약하다. 2. OCP: 개방-폐쇄 원칙 (Open/closed principle) 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 즉, 기능 확장시 기존 소스의 변경없이 확장이 되야한다 이를 위해 인터페이스(역할)와 ..
2021.01.12