Free Lines Arrow
본문 바로가기
728x90

전체 글380

[Spring] AppConfig AppConfig를 왜 사용해야 될까? 문제점 찾기 다음과 같은 예제 코드가 있다고 하자 //예제코드 public class OrderServiceImpl implements OrderService { private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); } 위코드는 문제가 있다! 어디가 문제가 있을까 바로 OrderServiceImpl이 DiscountPolicy 객체를 의존하다는 것이다. 객체를 의존하고 있다? OrderServiceImpl 클래스안에서 FixDiscountPolicy 객체를 생성하고 있다 자세히 보면 다형성을 사용하여 DiscountPolicy 인터페이스에 FixDiscountPolicy를 생성하여 넣어준다. .. 2021. 4. 20.
[Spring] DI 란? 예제로 보는 DI DI란? DI, Dependency Injection 의존성 주입이라고 한다. 의존성 주입이라는 것은 왜 생겼을까? 프로그래밍에서 의존성이 강해지면 변경이 어렵다. 라고 다들 배웠을 것이다. 의존성이란 무엇일까? 멤버서비스가 있다고 생각해보자. 1. MemberService: 서비스 로직 연산과 객체를 저장하는 기능을 담당. 2. MemberRepository: 실제 객체의 데이터를 저장하는 역할. 3. 여기서 중요한건 MemberRepository 가 인터페이스 라는 점이다. 4. MemberRepository를 상속 받아 MemberMemoryRepository 를 만들었다. 5. 멤버서비스 안에서 직접 MemberMemoryRepository 생성자 만들었다. 그렇다면 나중에 다른.. 2021. 4. 17.
[Spring] 스프링 프로젝트 시작하기 스프링 프로젝트 쉽게 만들기 환경셋팅 및 아래 툴사용 1. Intellij 2. gradle 아래 사이트로 이동한다. start.spring.io/ 원하는 환경 셋팅 Generate 클릭 하여 다운로드 압축해제 IntellIJ 시작 File->open->.gradle 기본적인 환경 및 프로젝트 로드 완료 2021. 4. 14.
[Spring] 객체지향 설계의 5가지 원칙(SOLID) SOLID? 5개의 원칙의 앞글자를 따서 만든것이다. S => SRP(Single responsibility principle): 단일 책임 원칙 O => OCP(Open/Closed principle): 개방-폐쇄 원칙 L => LSP(Liskov substitution principle) 리스코프 치환원칙 I =>ISP(Interface segregation principle) 인터페이스 분리 원칙 D=>DIP(Dependency inversion principle) 의존관계 역전 원칙 SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다 ex) 악기 라는 클래스가 있다면 악기의 속성만 다뤄야 한다. 악기 클래스 안에서 악기의 이름과 속성을 DB에 저장하는 기능이 동시에 있으면 안된다. //.. 2021. 4. 14.
728x90
반응형