IntelliJ 5

새로운 할인 정책

🦹‍♂️요구사항🦹‍♂️ 기존 할인 정책 = 정액 할인 정책(고정 금액) : VIP 무조건 1000원 할인 정률 할인 정책(% 할인)으로 변경하고 싶음 10%할인 10000원 주문시 1000원 할인, 20000원 주문시 2000원 할인 1. 새로운 정책 구현하기 2. 새로운 정책 테스트 새로운 회원객체를 생성하여 할인금액을 return 받아 discount에 저장 Assertions를 사용하여 1000원인지 검증 @DisplayName은 Junit5부터 지원하는 애노테이션으로 테스트 명을 지정해줄 수 있다. 테스트 성공!(오타가 있네..디X 되O) 👯‍♂️테스트를 만들 때에는 성공 테스트 뿐아니라 실패 테스트도 꼭 만들어봐야한다.👯‍♂️ Expected (기대값) = 1000원 Actual (실제값) = ..

Spring/Spring Core 2021.03.04

회원 관리 예제 - 1. 비지니스 요구사항 정리

비지니스 요구사항 정리 데이터 회원ID, 이름 기능 회원 등록, 조회 아직 DB가 선정되지 않음. (가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비지니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비지니스 도메인 객체 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용

View 환경설정

Welcome Page static/index.html 을 올려두면 Welcome Page 기능을 제공한다. 컨트롤러에서 return 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다. 스프링 부트 템플릿엔진 기본 viewName 매핑 resource:template/ + {ViewName} + .html Controller에서 model에 담은 key와 value값이 hello.html로 리턴되고 (return "hello"를 통해 hello라는 이름을 가진 view로 반환된다.) 이를 view안의 data(model의 키값에다가 value를 넣어주는 형식)

라이브러리 살펴보기

우리가 처음에 프로젝트를 만들 때 spring web과 thymeleaf를 가져왔는데, 이것들이 의존하고 있던 다른 라이브러리까지 알아서 자동으로 가져온다. ==> 이클립스와는 차별되는 intelliJ의 장점이라고 함. 심각한 오류나 기록들을 남기기 위해 system.out.println이 아닌 log로 출력을 한다.(실무에서) 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat : 톰캣 (웹서버) spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View) spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅 spring-boot spr..

Spring 시작

1. 프로젝트 생성 start.spring.io/ ==> 스프링부트 기반으로 스프링관련 프로젝트를 만들어주는 사이트. 여기서 프로젝트를 만든 후에 intelliJ로 열 것이 다. Maven VS Gradle ?? 필요한 라이브러리를 가져와주고, Life Cycle까지 관리해주는 빌드 툴. 최근은 거의다 Gradle을 사용하는 추세(예전에는 Maven이었지만 다 넘어오는 추세) Project Metadata Group 기업명, 도메인명 Artifact 빌드되어 나올 때 결과물 Dependencies 어떤 라이브러리를 사용할 것인지 src main java 실제 패키지와 소스파일들 resources html, xml 등등(자바파일을 제외한 나머지) test 테스트코드와 관련된 소스 ==> main과 test..

반응형