스프링 공부/인프런 김영한 스프링 핵심 원리 - 기본편 노트정리

2-2. 비즈니스 요구사항과 설계

모항 2022. 8. 22. 01:50

시작하기 전에 잡담 하나 하자면... (접은글)

더보기

스프링 입문 강의에 수강평을 적었더니 김영한 강사님께 하트와 답글을 받았다.

와우

자기 분야에서 매우 뛰어난 사람에게 응원을 전한 뒤 그 사람이 응원을 확인했다는 증거를 보는 것은 언제나 행복한 일이다.

무엇보다도... 굉장히 많은 수강평들을 하나하나 주기적으로 읽으신다는 게 존경스럽다. 거의 모든 수강평에 하루 이틀 내로 답글을 다셨던데... 어떻게 그러실 수가 있는지... 대단하시다.

 

 

이제 수업 내용을 보자.

 

이 회차는 앞으로 만들 예제의 비즈니스 요구사항 및 설계를 쫙 살피는 회차이다.

어떤 기능이 들어갈지, 그 기능에서 지켜야 할 것은 무엇인지 등을 본다.

 

우리에게 사이트 개발을 의뢰한 클라이언트가 요구한 사항은 다음과 같다.

 

회원정보 관련 요구사항

1. 회원 가입, 회원 조회의 기능이 있다.

2. 회원은 일반과 VIP 두 가지 등급이 있다.

3. 자체 DB를 구축해서 회원 정보를 저장할 수도 있고, 외부 DB 시스템과 연동할 수도 있다. 이는 아직 미정인 상태이다.

 

주문과 할인 정책 관련 요구사항

1. 회원은 상품을 주문할 수 있다.

2. 회원 등급에 따라 할인 정책을 적용 할 수 있다.

3. 모든 VIP에게 1000원을 할인해주는 고정 금액 할인을 적용하는데, 이는 나중에 변경될 수 있다.

4. 할인 정책은 변경 가능성이 높다! 아직 회사의 기본 할인 정책을 못 정했고 오픈 직전까지 고민하다가 정할 것이다. 혹은 할인을 아예 적용하지 않을 수도 있다.

 

 

 

설계 방향 고민

미정인 사항이 많다는 점에 주목해야 한다.

어쩌라는 것인가? 그럼 우리는 모든 사항이 정해질 오픈 직전까지 손 놓고 기다리다가 막판에 개발을 해야 하는가?

그럴 수는 없다.

 

그러므로, 객체 지향 프로그래밍을 최대한 활용하여

인터페이스 중심으로 개발하면서

구현체는 언제든 갈아끼울 수 있도록 해주어야 한다.

 

 

 

순수 자바로 시작

프로젝트 생성에 스프링 부트를 사용했지만, 이는 단지 환경 설정을 편하게 하기 위해서였다.

우리는 스프링의 기능을 전혀 사용하지 않을 것이다.

 

순수 자바로만 개발을 진행하고, 스프링 이야기는 한참 뒤에 해볼 것이다.