본문 바로가기
728x90
반응형

전체 글202

[스프링 핵심 원리 이해1 - 예제 만들기] 주문과 할인 도메인 설계 주문과 할인 도메인 설계 * 주문과 할인 정책 - 회원은 상품 주문 가능 - 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) - 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 2022. 1. 31.
[스프링 핵심 원리 이해1 - 예제 만들기] 회원 도메인 실행과 테스트 회원 도메인 실행과 테스트 public class MemberApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(1L); System.out.println("member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); } } public class .. 2022. 1. 30.
[스프링 핵심 원리 이해1 - 예제 만들기] 회원 도메인 개발 회원 도메인 개발 Grade BASIC VIP Member Long id String name Grade grade MemberRepository void save(Member member) Member findById(Long memberId) MemoryMemberRepository Map Store = new HashMap() void save(Member member) Member findById(Long memberId) 참고 : HashMap 은 동시성 이슈가 발생할 수 있다. 이런 경우 ConcurrentHashMap 을 사용하자. MemberService void join(Member member) Member findMember(Long memberId) MemberSeriveImpl M.. 2022. 1. 30.
[스프링 핵심 원리 이해1 - 예제 만들기] 회원 도메인 설계 회원 도메인 설계 * 회원 - 회원 가입하고 조회 가능 - 회원은 일반과 VIP 두 가지 등급 존재 - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 2022. 1. 30.
[스프링 핵심 원리 이해1 - 예제 만들기] 비즈니스 요구사항과 설계 비즈니스 요구사항과 설계 * 회원 - 회원 가입하고 조회 가능 - 회원은 일반과 VIP 두 가지 등급 존재 - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) * 주문과 할인 정책 - 회원은 상품 주문 가능 - 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) - 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금 결정하기 어려운 부분이다. 인터페이스를 만들고 구현체를 언제든지 .. 2022. 1. 30.
[스프링 핵심 원리 이해1 - 예제 만들기] 프로젝트 생성 프로젝트 생성 https://start.spring.io/ File > Settings... "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술"에서 설정 했던 이유와 같이 IntelliJ버전은 Gradle을 통해서 실행하는 것이 기본 설정이나 실행속도가 느리다. 설정을 IntalliJ IDEA로 수정하여 자바로 바로 실행하도록 하면 실행속도가 더 빨라진다. 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 2022. 1. 29.
[객체 지향 설계와 스프링] 객체 지향 설계와 스프링 객체 지향 설계와 스프링 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 정리 모든 설계에 역할과 구현을 분리 이상적으로는 모든 설계에 인터페이스를 부여하자 실무 고민 인터페이스를 도입하면 추상화라는 비용이 발생 기능 확장 가능성 없다면 구체 클래스 직접 사용, 향후 꼭 필요할 때 리펙터링해서 인터페이스를 도입하는 것도 방법 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질.. 2022. 1. 29.
[객체 지향 설계와 스프링] 좋은 객체 지향 설계의 5가지 원칙(SOLID) 좋은 객체 지향 설계의 5가지 원칙(SOLID) 1. SRP : 단일 책임 원칙 - 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임? 클 수 있고, 작을 수 있다. - 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으로 단일 책임 원칙을 잘 따른 것 2. OCP : 개방-폐쇄 원칙(중요) - 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다. - 다형성 활용 - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 - 구현 객체를 변경하려면 클라이언트 코드를 변경해야 한다. - 위와 같이 다형성을 사용했지만 OCP를 지킬 수 없다. MemberService 클라이언트가 구현 클래스를 직접 선택 - 해결 방법 : 객체를 생성하고, 연관 관계를 맺어주는 별도의 조.. 2022. 1. 29.
728x90
반응형