최근 인프런 기술 과제 및 면접을 준비하면서(후기 남길 예정) SQL의 중요성과 함수형 프로그래밍의 기초를 몸소 느꼈다. 인프런이라면 내가 준비하던 기술 스택을 전환할 의지가 만땅이였지만 아쉽게도 1차 면접 탈락했기 때문에 Typescript로의 전환은 하지 않을 것이
함수형 프로그래밍은 외부 상태를 갖지 않는 함수들의 연속으로 프로그래밍을 하는 패러다임여기서 함수는 "Input을 통해 Output을 만들어내는 일련의 코드 묶음"이라 표현할 수 있다.함수형 프로그래밍은 이 함수들 위주로 구성된 프로그래밍 기법인데 여기서 중요한 것은
함수형 프로그래밍에서는 함수를 객체처럼 다룹니다. 그러나 자바에서는 객체를 무조건 클래스 단위로 구현해야해서 이 함수도 결국 클래스와 유사하게 구현해야합니다.따라서 자바의 함수 구현은 class로 구현해야하며 Function<T, R>를 상속받아야 합니다.우선 파
Supplier는 직역하면 제공자라는 뜻으로 타 함수와 다르게 매개변수를 받지 않고 특정 값을 반환하는 get이라는 추상메서드가 존재한다.사용 예시는 간단하다.위 처럼 Supplier로 구현하면 get() 추상메소드를 통해 return 값을 받아올 수 있다.단순히 보면
Consumer는 accept라는 추상 메소드를 가지고 있다.accept는 별도의 return 값을 가지고 있지 않다. 즉 함수 내부에서 모든 동작을 마무리 한다.예를 들면 다음과 같다.Consumer와 제네릭 타입을 조합하면 ForEach를 구현할 수 있다.ForEa
Predicate는 해당 값이 참인지 거짓인지 구분해주는 함수다.test라는 추상 메소드를 가지고 있으며 하나의 파라미터를 받을 수 있다.예를 들어 Integer를 받아와서 해당 값이 0보다 큰 지 구분하는 기능은 아래와 같다.이전에 구현했던 ForEach와 Predi
Comparator Comparator는 두 개의 파라미터를 받는 함수다. 내부에는 compare라는 추상 함수를 가지고 있으며 이 추상 함수는 건네받은 값들을 비교해서 더 작으면 음수, 같으면 0, 크면 양수를 출력하도록 구현해야한다. Comparator 함수는
Method Reference 자바는 오랜 기간 OOP 프로그래밍으로 개발되어 왔다. 따라서 기존 라이브러리들도 모두 Class(Object) 기반이다. FP 방식으로 프로그래밍하면 기존의 Class 기반의 메소드를 사용할 수 없을까?? Java에서는 Method
팩토리 패턴은 객체 생성을 추상화하여 한 군데서 관리하는 패턴으로 상속 관계에 있는 두 객체에서 상위 객체가 추상화된 생성화 부분을, 하위 객체과 구체적인 구현을 담당한다.상위 객체는 세부 구현 내용을 몰라도 되고 하위 객체에서 코드 수정이 생기면 그 부분만 수정하면