백엔드38 [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. [Inflearn] 스프링 스프링 생태계 "필수"인 것은- 스프링 프레임워크- 스프링 부트 "선택"인 것은- 스프링 데이터- 스프링 세션- 스프링 시큐리티- 스프링 Rest Docs- 스프링 배치- 스프링 클라우드 스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 등 스프링 부트 - 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용- 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성- Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨- 손쉬운 빌드 구성을 위한 starter 종속성 제공- 스프링과 3rd party 라이브러리 자동 구성- 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공- 관례에 의한 간결한 설정 스프링 핵심 - 스프링은 자바 언어 .. 2025. 1. 25. 이전 1 ··· 5 6 7 8 9 10 다음