검증1 - Validation
·
Java
검증 요구사항1. 타입 검증- 가격, 수량에 문자가 들어가면 검증 오류 처리2. 필드 검증- 상품명: 필수, 공백X- 가격: 1000원 이상, 100만원 이하- 수량: 최대 9999개3. 특정 필드의 범위를 넘어서는 검증- 가격 * 수량의 합은 10,000원 이상 현재까지 폼 입력시 검증하는 로직은 없다. 클라이언트가 항상 옳은 방식으로 이용할리도 없다. 따라서 검증을 해줘야 한다.검증을 하지 않으면 클라이언트는 어떤 부분에서 잘못된 입력을 했는지 알기 어렵기 때문에 고객이탈의 가능성이 높아진다.고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려줘야 한다. 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. - 클라이언트 검증은 조작할 수 있으므로 보안에 ..
컬렉션 프레임워크 - Map, Stack, Queue
·
Java
컬렉션 프레임워크 - Map (1) Map은 key, value의 쌍을 저장하는 자료 구조이다.key는 중복될 수 없지만 value는 중복이 가능하다.Map은 순서를 유지하지 않는다.  자바는 HashMap, TreeMap, LinkedHashMap등 다양한 구현체를 제공한다.Map 인터페이스의 주요 메서드는 다음과 같다. 위 구현체들 중 HashMap을 가장 많이 사용한다. Hash구조의 장점은 이전에 계속 언급했기 때문에 설명은 생략 package collection.map;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MapMain1 { public..
컬렉션 프레임워크 - Set
·
Java
자바가 제공하는 Set - HashSet, LinkedHashSetSet은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다. Set 인터페이스자바의 Set 인터페이스는 java.util 패키지의 컬렉션 프레임워크에 속하는 인터페이스 중 하나이다.Set 인터페이스는 중복을 허용하지 않는 유일한 요소의 집합을 나타낸다. 즉 어떤 요소도 Set 내에 두번 이상 나타날 수 없다.Set은 집합을 생각하면 이해하기 편하다. 순서를 보장하지 않으며 특정 요소가 집합에 있는지 여부를 확인하는데 최적화되어있다.Set 인터페이스는 HashSet, LinkedHashSet, TreeSet 등의 여러 구현 클래스를 가지고 있다.Set 인터페이스의 주요 메서드는 검색을 통해 확인하자. (거의 비슷하지만 다른 기능이 ..
컬렉션 프레임워크 - HashSet
·
Java
HashSet 직접 구현package collection.set;import java.util.Arrays;import java.util.LinkedList;public class MyHashSetV1 { static final int DEFAULT_INITIAL_CAPACITY = 16; LinkedList[] buckets; private int size = 0; private int capacity = DEFAULT_INITIAL_CAPACITY; public MyHashSetV1() { initBuckets(); } public MyHashSetV1(int capacity) { this.capacity = capacity; ..
컬렉션 프레임워크 - 해시(Hash)
·
Java
List vs Set List- 순서 유지 : 리스트에 추가된 요소는 특정한 순서를 유지한다.- 중복 허용 : 동일한 값이나 객체의 중복을 허용한다.- 인덱스 접근 : 각 요소는 인덱스를 통해 접근할 수 있다.순서가 중요하거나 중복된 요소를 허용해야할 경우에 사용한다. Set유일한 요소들의 컬렉션이다.- 유일성 : 중복을 허용하지 않는다. 이미 중복된 요소라면 무시된다.- 순서 미보장 : Set 구현에선 순서를 보장하지 않는다. 출력 시 입력 순서와 다를 수 있음- 빠른 검색 : 요소의 유무를 빠르게 확인할 수 있도록 최적화되어있다. 이는 데이터 중복을 방지, 빠른 조회 가능하게 한다.중복을 허용하지않고, 요소의 유무만 중요한 경우에 사용한다. Set 구현 Set을 구현하는 것은 단순하다. 인덱스가 없기..
컬렉션 프레임워크 - List
·
Java
리스트 추상화 - 인터페이스 도입다형성과 OCP 원칙을 가장 잘 활용할 수 있는 곳 중 하나가 자료구조 이다. List 자료구조 순서가 있고 중복을 허용하는 자료 구조를 List라고 한다. 우리가 이전에 만든 MyArrayList와 MylinkedList는 내부 구현만 다를 뿐 같은 기능을 제공하는 리스트이다.내부 구현이 다르기에 성능은 다를 수 있지만 핵심은 같은 기능을 제공하는 것이다.이 둘의 공통 기능을 인터페이스로 추상화 한다면 다형성을 활용한 다양한 이득을 얻을 수 있다. package collection.list;public interface MyList { int size(); void add(E e); void add(int index, E e); E get(int i..