스프링 핵심 원리 기본편(2) - 주문과 할인 도메인 설계 및 개발, 테스트 by 인프런 김영한
·
Back-End/Spring
1. 주문과 할인 도메인 설계 주문과 할인 정책 회원은 상품주문 가능 등급에 따른 할인 정책 적용 할인 정책은 모든 vip는 1000원을 할인해주는 고정 금액 할인(나중에 변경될수 있음) 할인 정책은 변경 가능성이 높아서 오픈 직전까지 고민을 미루고 싶으며, 할인을 적용하지 않을 수 도 있다. 주문 생성 : 클라이언트가 주문 서비스에 주문생성을 요청 회원 조회 : 등급에 따라 할인이 있기때문에, 주문 서비스는 회원 저장소에서 회원을 조회함 할인 적용 : 주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임 주문 결과 반환 : 주문 서비스는 할인 결과를 포함한 주문 결과를 반환 역할과 구현을 분리 해서 구현 객체를 조립할 수 있게 설계 회원을 메모리에서 조회하고, 정액 할인 정책을 할지 정률 할인..
[Spring] 스프링 핵심 원리 기본편(1) - 회원 도메인 설계 및 개발 by 인프런 김영한
·
Back-End/Spring
1. 비즈니스 요구사항과 설계 회원 회원 가입 및 조회 회원 등급 일반, vip 등급 회원 데이터는 자체 DB 구축, 외부 시스템과 연동가능(미확정) 주문과 할인 정책 회원은 상품주문 가능 등급에 따른 할인 정책 적용 할인 정책은 모든 vip는 1000원을 할인해주는 고정 금액 할인(나중에 변경될수 있음) 할인 정책은 변경 가능성이 높아서 오픈 직전까지 고민을 미루고 싶으며, 할인을 적용하지 않을 수 도 있다. → 인터페이스를 만들고 구현체를 언제든지 갈아 끼울수 있도록 설계 한다. 2. 회원 도메인 설계 회원 도메인 요구 사항 가입 및 조회 기능 일반과 vip 두가지 등급 회원 데이터는 자체 DB구축할수 있고, 외부 시스템과 연동 가능(미확정) → 어떤 DB를 사용할지 미확정이기 때문에 회원 저장소 인..
[JSP] 서버에서 클라이언트로 JSON 데이터 전송하기
·
Front-End/JSP
서버에서 클라이언트로 JSON 데이터 전송하기 파라미터로 member의 id값이 오는 경우 서버에서 해당 member 데이터 가져오는 방법 요청 url : http://localhost:8282/project4/**t4.jsp?id=aa 파라미터로 id=aa를 넘김 url에 있는 파라미터 값을 받아서 Member객체를 조회하는 쿼리문이 있는 메서드에 넘겨서 Member의 정보를 JSON형태로 받아서 출력 파라미터로 id값을 받아서 텍스트 박스에 멤버의 정보를 출력하는 방법(JSP문법에서 자바스크립트로 데이터를 넘기는 방법) 요청 url : http://localhost:8282/project4/t4.jsp?id=aa 파라미터로 id=aa를 넘김 ID : PW : ADDR : TEL : 자바스크립트 에서는..
JSON이란?
·
Front-End/JSP
JSON(JavaScript Object Notation)이란? 데이터를 저장, 전송할 때 사용되는 경량의 DATA 교환 형식 javascript에서 객체를 만들 때 사용하는 표현식 JSON은 데이터 포맷일 뿐, 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법 JSON의 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체표기법과 아주 유사하다. 자료형이 아닌 텍스트의 형식일 뿐이다. JSON형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있다. 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다. 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어어세 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공한다. JSON 문법 {..
[JSP] FILTER(필터)
·
Front-End/JSP
Filter(필터) 필터의 기본구조 필터는 클라이언트로 가는 응답과 최종 자원 사이에 위치 최종 자원의 요청 결과를 알맞게 변경하는 역할을 할 수 있다. init() 메서드 : 서버를 켰을때, 서블릿이 실행되기 전에 먼저 실행이 된다. 주로 필터 초기화 작업을 시작한다. doFilter() 메서드 : 필터 기능을 수행하는 메서드. destroy() 메서드 : 서버가 종료될때 호출된다. 필터 체인의 구성 필터 여러개가 모여서 하나의 필터 체인을 형성한다. 예시) 게시판 목록은 들어가진다. 회원목록은 로그인을 해야 볼 수 있도록 하기 위해서 로그인이 안되어 있는 경우 필터를 작동 시키는 예 p75 menu.jsp LoginFilter kr.co.seoulit.common.filter.LoginFilter L..
[JavaScript] 배열 생성, 배열 메서드, for in, for of, forEach
·
Front-End/JavaScript
배열 array(for in, for of, forEach), 구조분해 할당 배열 생성 literal로 배열생성 Array객체를 이용하여 배열생성 let a=[10,20,30]; // literal로 생성 let b=new Array(40,50,60); // Array객체로 생성 console.log(a[0]); console.log(b[0]); #배열요소 호출 const a=[10,20,30] document.write(a[2]) //30 배열의 크기 Array.length 를 사용 var a=[10,20,30]; console.log(a.length); // 3이 출력 let a=[10,20,30,40,50]; let size=a.length; for(let b=0; b
[Java] 컬렉션(Collection), 제네릭(Generic) - Set, List, Map
·
Language/Java
컬렉션, 제너릭 컬렉션 : 자료구조 데이터를 저장하는 방식 배열은 순차적으로 저장, 중복된 데이터를 저장할 수 있다. Set 컬렉션 클래스 : 순서가 없다. 중복된 데이터 허용X 1. HashSet 요소를 순서에 상관없이 저장, 중복된 값은 저장X HashSet hs01 = new HashSet(); HashSet hs02 = new HashSet(); 2. TreeSet 컬렉션 클래스 - 요소를 순서에 상관없이 저장, 중복된 값 저장 X, 작은값부터 순서대로 정렬함 TreeSet ts = new TreeSet(); ts.add(30); ts.add(40); Set 메소드 add() 메소드 : 객체에 요소를 저장 // add() 메소드를 이용한 요소의 저장 hs01.add("홍길동"); hs01.add(..
[JavaScript] 화살표 함수
·
Front-End/JavaScript
화살표 함수 💡 화살표 함수란? function키워드 대신 화살표(=>)를 사용하여 보다 간략한 방법으로 함수를 선언 모든 경우 화살표 함수를 사용할 수 있는 것은 아니다. // 매개변수 지정 방법 () => { ... } // 매개변수가 없을 경우 x => { ... } // 매개변수가 한 개인 경우, 소괄호를 생략할 수 있다. (x, y) => { ... } // 매개변수가 여러 개인 경우, 소괄호를 생략할 수 없다. // 함수 몸체 지정 방법 x => { return x * x } // single line block x => x * x // 함수 몸체가 한줄의 구문이라면 중괄호를 생략할 수 있으며 암묵적으로 return된다. 위 표현과 동일하다. () => { return { a: 1 }; } (..
[Java] Stream
·
Language/Java
Stream : 데이터 가공 *모든 예문에는 lombok이 사용되었습니다 Stream 스트림은 컬렉션의 저장요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자 중간처리 메서드 : Stream을 리턴 최종처리 메서드 : int형, String형 ...... 중간처리 메서드가 Stream을 리턴하기 때문에 메서드 체이닝을 통해 데이터 가공이 가능하다. 메서드 체이닝한 모습을 스트림의 파이프라인이라고 표현한다. 합계,평균값,카운팅,최대값,최소값 등의 최종처리를 파이프라인으로 해결 Stream 생성하기 컬렉션으로 부터 스트림 얻기 import java.util.stream.*; import java.util.*; import lombok.*; class Main{ public static void..
[JavaScript]구조분해할당(destructuring assignment), 전개연산자, toObject(배열을 객체로 전환)
·
Front-End/JavaScript
구조분해할당(destructuring assignment), 전개연산자, toObject(배열을 객체로 전환) 💡 구조 분해 할당이란? 객체나 배열의 요소를 변수로 분해 할 수 있게 해주는 문법 객체나 배열에 저장된 데이터 전체가 아닌 일부만 필요한 경우 사용하기 좋다. 배열 분해 하기 let [a, b] = [10, 20]; console.log(a); // 10 console.log(b); // 20 배열[10,20]이 분해 되어 각각 a와 b에 할당됨 let array = [1, 2, 3]; let [a, b, c] = array; console.log(a, b, c); // 1 2 3 array의 [1, 2, 3]을 선언후, 배열 [a, b, c]에 각각 할당함 만약 배열의 첫 번째 요소를 가져와..