분류 전체보기 343

[이해2 - 객체 지향 원리 적용] 새로운 할인 정책 도입 (+ 문제점)

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 새로운 할인 정책 확장하기 : 정률 할인 정책 1. DiscountPolicy 구현체 Class 생성 : RateDiscountPolicy · int discountPercent = 10 · discount : return price * discountPercent / 100 2. test/java/hello.core/discount/RateDiscountPolicyTest Class 생성 후 테스트 class RateDiscountPolicyTest ..

[이해1 - 예제 만들기] 주문과 할인 도메인 설계 → 개발 → 테스트

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 주문과 할인 도메인 설계하기 · 주문과 할인 도메인 요구사항 》상품 주문 기능 》회원 등급에 따른 할인 정책 적용 : VIP 등급 1000원 할인 (고정 금액 할인) 》(미확정) 할인 정책은 변경 가능성 높음, 최악의 경우 할인 적용 안함 · 주문과 할인 도메인 협력, 역할, 책임 관계 1. 주문 생성 : 클라이언트가 주문 서비스에 주문 생성 요청 2. 회원 조회 : 주문 서비스가 회원 저장소에서 회원 조회 (할인을 위한 회원 등급 조회) 3. 할인 적..

[이해1 - 예제 만들기] 회원 도메인 설계 → 개발 → 테스트

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 회원 도메인 설계하기 · 회원 도메인 요구사항 》회원 가입 & 조회 》회원 등급 : 일반, VIP 》(미확정) 회원 데이터 자체 DB 구축 가능, 외부 시스템 연동 가능성 · 회원 도메인 협력 관계 · 회원 클래스 다이어그램 ➡️ 인터페이스 : MemberService ➡️ 구현체 : MemberServiceImpl ➡️ MemberRepository = 회원 저장소 · 회원 객체 다이어그램 (객체 간 메모리 참조) ➡️ 회원 서비스 : MemberSe..

[이해1 - 예제 만들기] 비즈니스 요구사항과 설계 - 회원, 주문과 할인 정책

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 😳 회원 회원 가입 & 조회 회원 등급 : 일반, VIP (미확정) 회원 데이터 자체 DB 구축 가능, 외부 시스템과 연동 가능성 📃 주문과 할인 정책 상품 주문 기능 회원 등급에 따른 할인 정책 고정 금액 할인 : 모든 VIP 등급 1000원 할인 (추후 변경 가능) (미확정) 할인 정책은 변경 가능성이 높음, 최악의 경우 적용하지 않을 가능성 ✔️ 정리 · 현재 결정하기 어려운 부분 → 객체 지향 설계 필요 · 인터페이스 구현 후 언제든지 갈아끼울 수 ..

[이해1 - 예제 만들기] 프로젝트 생성 & 실행

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 없이 순수 자바로 구현 시작 ☑️ 사전 준비물 》Oracle JDK 의 Java 11 설치 》IDE : IntelliJ 또는 Eclipse 설치 1️⃣ 스프링 부트 스타터 사이트에서 프로젝트 생성하기 → Dependencies 선택 안함 : core library 만 가지고 간단하게 생성 2️⃣ 프로젝트 시작하기 · 다운로드된 폴더 압축 해제 후 build.gradle 실행 plugins { id 'java' id 'org.springframewor..

[객체 지향 설계와 스프링] 정리

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 스프링에서의 객체 지향 설계 · 스프링 지원 기술 → 다형성 + OCP, DIP 가능 》DI (Dependency Injection) : 의존 관계, 의존성 주입 》DI 컨테이너 제공 · 클라이언트 코드의 변경 없이 기능 확장 가능 · 모든 설계에 역할과 구현 분리하기 ✨ 실무 고민 · 인터페이스 도입 시 추상화 비용 발생 ➡️ 기능을 확장할 가능성이 없다면, 구체 클래스 사용 ➡️ 필요 시 리팩터링으로 인터페이스 도입하기

[객체 지향 설계와 스프링] SOLID

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard SOLID : 클린 코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP - 단일 책임 원칙 ⭐OCP - 개방·폐쇄 원칙 LSP - 리스코프 치환 원칙 ISP - 인터페이스 분리 원칙 ⭐DIP - 의존 관계 역전 원칙 ✨ SRP 단일 책임 원칙 · Single Responsibility Principle 》 한 클래스는 하나의 책임만 가져야 함 》 중요한 기준 : 변경 → 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따..

[Spring] Failed to initialize JPA EntityManagerFactory

2023-10-26T18:19:24.602+09:00 ERROR 26372 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpabook.jpashop.Member] 인프런의 김영한 강사님 JPA 실전 수업을 듣는데 이런 에러가 났어요.. 강사님이랑 똑같이 쳤는데!! 흥 엔티..

ERROR 2023.10.26

[객체 지향 설계와 스프링] 좋은 객체 지향 프로그래밍 & 다형성

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 객체 지향 프로그래밍 · 객체 지향 특징 》 추상화 》 캡슐화 》 상속 》 다형성 · 객체 지향 프로그래밍 》 협력 : 컴퓨터 프로그램 = 객체(여러 개의 독립된 단위)들의 모임 각각의 객체 : 메세지 송수신 & 데이터 처리 》 유연, 변경이 용이 : = 레고 블럭 조립하듯이 ➡️ 다형성 (Polymorphism) ✨ 다형성 · 다형성 실세계 비유 》 실세계와 객체 지향 1:1 매칭 불가 → 이해를 위한 예시 》 역할과 구현으로 세상을 구분 》 예시 1..

[객체 지향 설계와 스프링] 스프링이란?

🧐강의🧐 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard ✨ 스프링이란? · 스프링 : 여러 가지 기술들의 모음 (문맥에 따라 다른 해석) 》 스프링 DI 컨테이너 기술 》 스프링 프레임워크 》 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 · 스프링 프레임워크 : 스프링 부트를 이용하여 기술들을 편리하게 사용 》 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 》 웹 기술 : 스프링 MVC, 스프링 WebFlux 》 데이터 접근 기술 : 트랜잭션, JDBC, ORM, XML 》 기..

728x90