Spring 33

좋은 객체 지향 설계의 5가지 원칙의 적용

여기서는 SRP, DIP, OCP 적용되었다. 1. SRP 단일 책임 원칙 " 한 클래스는 하나의 책임만 가져야 한다. " SRP 단일 책임원칙을 따르면서 관심사를 분리했다. 구현 객체를 생성하고 연결하는 책임은 AppConfig가 담당 클라이언트 객체는 실행하는 책임만 담당. 2. DIP 의존관계 역전원칙 " 프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안된다." 의존성 주입은 이 원칙을 따르는 방법 중 하나다. 기존 클라이언트 코드가 추상화 인터페이스에 의존했지만, 구체화 구현 클래스에도 함께 의존하고 있었다. ->클라이언트 코드가 추상화 인터페이스에만 의존하도록 코드를 변경했다. 하지만, 클라이언트 코드는 인터페이스만으로는 아무것도 실행할 수 없었기 때문에 AppConfig가 객체 인스턴스..

2.요구사항 분석 설계

1. 도메인 모델과 테이블 설계 회원 엔티티 분석 회원 테이블 분석 * 연관관계의 매핑 분석 -> 참고: 외래 키가 있는 곳을 연관관계의 주인으로 정해라. 회원과 주문 : 일대다, 다대일의 양방향 관계 외래키가 있는 주문 을 연관관계의 주인으로 하는 것이 좋다. 그러므로 Order.member 를 ORDERS.MEMBER_ID 외래키와 매핑한다. 주문상품과 주문 : 다대일 양방향 관계다. 외래 키가 주문상품에 있으므로 주문상품이 연관관계의 주인이다. 그러므로 OrderItem.order를 ORDER_ITEM.ORDER_ID 외래키와 매핑한다. 주문상품과 상품: 다대일 양방향 관계다. OrderItem.item 을 ORDERITEM.ITEM_ID 외래 키와 매핑한다. 주문과 배송 : 일대일 양방향 관계다...

1. 프로젝트 환경설정

프로젝트 생성 1. spring 사이트를 들어가서 아래와 같이 Dependencies를 설정한다. https://start.spring.io Dependencies에서 추가해줘야 하는 것들 - Spring Web Services - Thymeleaf - JPA - H2 * Lombok 추가하는 법 ( getter 와 setter을 자동으로 만들어줘서 매우 편리 ) 1. References > Plugins 에서 Lombok 을 추가해주고, 2. enable annotiation processing을 체크해준다. 라이브러리 살펴보기 spring-boot-starter-web spring-boot-starter-tomcat: 톰캣 (웹서버) spring-webmvc: 스프링 웹 MVC spring-boot-..