(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 7. 애노테이션 직접 만들기 실무에서도 종종 애노테이션을 직접 만들어 사용한다. 저번 시간 @Qualifier 방식을 적용한 아래 코드를 보면, @Qualifier()안에 문자는 컴파일시 타입 체크가 안된다는 문제가 있다. 이러한 경우, 애노테이션을 만들어 다음과 같은 문제를 해결할 수 있다. @Component @Qualifier("mainDiscountPolicy")// () 안에 문자는 컴파일시 타입 체크X public class RateDiscountPolicy implements DiscountPolicy{...} 1. @MainDiscountPolicy 애노테이션 만들기 @Qualifier 애노테이션에 붙어있는 애노테이..
filter() 스트림 요소를 조건에 맞게 필터링 map() 스트림 요소를 특정 형태로 변환 mapToInt() 스트림 요소를 IntStream 형태로 변환 mapToLong() 스트림 요소를 LongStream 형태로 변환 sorted() 스트림 내 요소를 정렬 forEach() 스트림 요소를 순환하며 반복 처리(반환형이 void로 출력으로 많이 사용) count() 스트림 요소의 총 개수를 long 타입으로 반환 sum() 스트림 요소의 총합 반환 reduce() 스트림 요소를 소모해가며 누적 계산을 수행, 결과값 반환 1. 스트림이란? 스트림(Stream)이란 컬렉션, 배열 등의 여러 자료의 처리에 대한 기능을 구현해 놓은 클래스다. 스트림을 활용하면 배열, 컬렉션 등의 자료를 일관성있게 처리할 수..
Map 인터페이스는 자료를 쌍으로 관리하는데 필요한 메서드가 정의되어있다. key-value 쌍으로 이루어진 객체의 key값은 유일하고 value 값은 중복될 수 있다. Map인터페이스를 구현한 클래스는 내부적으로 해시 알고리즘에 의해 구현되어 있다. 1. HashMap 클래스 HashMap은 Map 인터페이스를 구현한 클래스 중 가장 많이 사용한다. HashMap에서 자료를 관리하는 방식은 해시 방식이다. 서로 다른 key 값에 같은 해시값이 반환되는 충돌이 발생할 경우를 고려해 해시 테이블에 데이터를 꽉 채우지 않고 적정 수준이 되면 테이블을 확장해 충돌 발생 확률을 낮춘다. Map 인터페이스에서 사용하는 key 값은 중복될 수 없으므로 equals()와 hashcode() 메서드를 재정의하여 사용하..
1. 컬렉션 프레임워크란? 자료 구조는 프로그램 실행 중 메모리에 자료를 유지/관리하기 위해 사용한다. 자바에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하는데 이를 컬렉션 프레임워크라고 한다. 자바 컬렉션 프레임워크는 여러 인터페이스가 정의되어있고 그 인터페이스를 구현한 클래스가 있다. 컬렉션 프레임워크의 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다. 2. Collection 인터페이스 Collection 인터페이스는 하나의 자료를 모아서 관리하는데 필요한 기능을 제공한다. Collection 인터페이스 하위에 List 인터페이스와 Set 인터페이스가 있다. 1) List 인터페이스(순서O, 중복O) List를 구현한 클래스는 순차적인 ..
1. Map 이란? Map은 Key-Value 쌍으로 이루어진 자료형이다. Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.(순서가 없음) 값(Value)은 중복될 수 있지만, Key는 고유한 값(Unique)을 가져야 한다. 2. HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. ▶ HashMap 변수명 = new HashMap(): HashMap 생성 // key: Integer, value: String..