본문 바로가기

웹개발19

[Inflearn] 회원 도메인 설계 회원 도메인 요구사항- 회원을 가입하고 조회할 수 있다.- 회원은 일반과 VIP 두 가지 등급이 있다.- 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 회원 도메인 협력 관계 회원 저장소는 어떤 것을 사용할지 몰라 일단 구현체를 놔두기만 한 것이다.  회원 클래스 다이어그램 MemoryMemberRepository와 DbMemberRepository 중 어떤 것을 사용할지 모르므로역할만 둔 것이다. 회원 객체 다이어그램 2025. 1. 29.
[Inflearn] 비즈니스 요구사항과 설계 다음과 같은 비즈니스 요구사항이 있다고 하자. - 회원을 가입하고 조회할 수 있다.- 회원은 일반과 VIP 두 가지 등급이 있다.- 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정)- 회원은 상품을 주문할 수 있다.- 회원 등급에 따라 할인 정책을 적용할 수 있다.- 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.)- 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 요구사항을 보면 회원데이터, 할인정책 부분은 지금 결정이 어려운 상태다.그렇다고 해서 정책 결정까지 기다릴 수는 없다.그.. 2025. 1. 29.
[Inflearn] 객체 지향 설계의 5가지 원칙(SOLID) SRPOCP(중요)LSPISPDIP SRP 단일 책임 원칙  한 클래스는 하나의 책임만 가져야 함.ex. UI 변경, 객체생성과 객체사용을 분리 중요한 기준은 변경했을 때이다.변경했을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것.  OCP 개방-폐쇄 원칙 확장에는 열려 있고 변경에는 닫혀 있어야 한다.역할과 구현은 분리된다는 다형성을 생각해보자.새로운 클래스를 만드는 것과 기능을 바꾸는 것은 독립적이어야 한다는 것이다.  위의 코드는 OCP가 지켜지지 않은 코드이다.객체가 바뀌면 인터페이스에 들어오는 서버가 바뀌어 코드 수정이 필요하기 때문이다.  LSP 리스코프 치환 원칙 "리스코프 치환 원칙" 단순히 컴파일 성공을 넘어서는 이야기로,다형성을 위해 하위클래스는 인터페이스 규약을 다 지켜야 함... 2025. 1. 26.
[Inflearn] 좋은 객체 지향 프로그래밍이란? 객체지향프로그래밍은추상화, 캡슐화, 상속, 다형성 등등의 특징이 있다. 그중 스프링에서 중요하게 다뤄지는 특징은 다형성이다. 다형성 역할과 구현으로 세상을 구현  운전자는 자동차의 기본 기능을 다룰 수만 있다면차들의 구체적인 내부를 몰라도 어떤 차종이든 몰 수 있다. 즉, 역할과 구현을 분리함으로써 다음과 같이 유연하고 변경이 편리해진다. - 클라이언트는 대상의 역할(인터페이스)만 알면 된다.- 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.- 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. => 역할(인터페이스) > 구현(인터페이스를 구현한 클래스, 구현 객체) 자바 언어의 다형성 "오버라이딩"을 떠올리면 된다. 다.. 2025. 1. 26.