본문 바로가기

Spring40

[Spring] 주문과 할인 도메인 할인 정책 인터페이스package hello.core.discount;import hello.core.member.Member;public interface DiscountPolicy { // return: 할인 대상 금액 int discount(Member member, int price);} 정액 할인 정책 구현체package hello.core.discount;import hello.core.member.Grade;import hello.core.member.Member;public class FixDiscountPolicy implements DiscountPolicy{ private int discountFixAmount = 1000; @Override public.. 2025. 10. 27.
[Spring] 회원 도메인 회원 등급 package hello.core.member;public enum Grade { BASIC, VIP} 회원 엔티티 package hello.core.member; public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getN.. 2025. 10. 22.
[Spring] 객체 지향 프로그래밍 객체 지향의 특징- 추상화- 캡슐화- 상속- 다형성 다형성이란? 하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다.하나의 객체에 여러 가지 타입을 대입할 수 있다는 것을 의미한다. 역할과 구현으로 나눈다. 역할: 운전자, 자동차구현: 자동 운전자는 자동차 인터페이스에 대해서만 자동차 역할에 대해서만 의존한다.즉, 역할은 인터페이스이고 구현은 인트페이스를 구현한 클래스, 구현 객체를 말한다. 다형성을 사용하면 단순하고 유연하여 변경에 용이하다. 클라이언트는 역할(인터페이스)만 알면된다.구현대상의 내부 구조를 몰라도 된다.내부 구조가 변경되어도 영향을 받지 않는다,대상 자체를 변경해도 영향을 받지 않는다. 객체를 설계할때 역할과 구현을 명확히 분리해야 하고설계시 역할을 먼저 부여하고.. 2025. 10. 18.
[Spring] AOP AOP란 Aspect Oriented Programming 으로 관점 지향 프로그래밍이다. 어떤 로직을 기준으로 핵심적인 관점과 부가적인 괌점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것을 말한다. 위와 같이 흩어져있는 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하는 것이 AOP의 취지이다. AOP 적용 package hello.hello_spring.aop;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.stereoty.. 2025. 10. 8.