본문 바로가기
코딩 교육 기관/코드스쿼드 백엔드 레벨2

2018.10.29 (월)

by 성건희 2018. 11. 11.
반응형

코드스쿼드 15일차


stream

  • 스트림을 활용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다.
  • 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓음.
  • 데이터 소스를 추상화 한다는 의미는 데이터 소스가 무엇이든 간에 같은 방식으로 다룰 수 있게 되었다는 것, 코드의 재사용성이 높아진다는 것을 의미.
  • 스트림은 데이터 소스를 변경하지 않는다.
  • 스트림은 일회용이다.
  • 스트림은 작업을 내부 반복으로 처리한다.

 

람다 (lambda)

  • 람다는 익명 함수의 다른 표현이다. 즉, 함수는 함수인데 이름이 없는 경우를 의미한다.
  • 인터페이스의 메서드가 1개이면 모두 람다 표현식으로 표현이 가능하다.

  • @FunctionalInterface => 얘는 메서드를 하나만 가지겠다고 명시

  • iter 도 중복이라고 생각 (for 를 매번쓰므로)

    -> forEach() : for 문을 내부적으로 가지고 있어 (for를 쓰지않아도 되니 중복제거)

  • 함수형 인터페이스

    • Consumer 인터페이스

      • accept(T t) 메서드 하나만 존재

 

람다가 없던 시절

number.forEach(new Consumer<Integer>(){
	@Override
	public void accept(Integer integer){
		System.out.println(integer);
	}
}

 

람다 사용 후

number.forEach(Integer integer) -> {
	System.out.println(integer);
}

 

더 줄이면

number.forEach((integer -> System.out.println(integer));

 

optional

  • JDK1.8부터 추가된 것으로, 지네릭 클래스로 'T타입의 객체'를 감싸는 래퍼 클래스다.
  • 그래서 Optional 타입의 객체는 모든 타입의 참조변수를 담을 수 있다.
public final class Optional<T> {
    private final T value;
    ...
}
  • Optional 객체를 생성할 때는 of() 또는 ofNullable() 을 사용.

  • 참조변수의 값이 null일 가능성이 있으면 of() 대신 ofNullable() 을 사용해야함.

    null 이면 NullPointerException 을 발생하기 때문.

  • 참조변수를 기본값으로 초기화할 때는 empty() 를 사용.

  • OptionalInt, OptionalLong, OptionalDouble

 

짝 프로그래밍 실습

  • 'brad' 와 짝 프로그래밍 실습을 진행
  • 람다에 관한 주제
  • 달라지는 부분을 인터페이스로 만들기
  • 인터페이스와 람다를 이용하면 상 하 로직이 중복인데 가운데 코드만 다른경우에도 중복을 제거할 수 있다.


반응형

'코딩 교육 기관 > 코드스쿼드 백엔드 레벨2' 카테고리의 다른 글

2018.11.01 (목)  (2) 2018.11.11
2018.10.25 (목)  (0) 2018.11.11
2018.10.22 (월)  (0) 2018.11.11
2018.10.17 (수)  (0) 2018.11.11
2018.10.15 (월)  (0) 2018.11.11

댓글