메서드
-
람다와 스트림 - 메소드 참조(method reference)백엔드/자바 2021. 9. 14. 22:35
이전에 여러 파트에서 언급했듯이 위와 같이 람다식을 사용하면 메서드를 간단하게 표현이 가능하다. 물론 사용에 제한이 있긴하지만 그럼에도 불구하고 람다식은 그 효율성이 높다. 하지만 그럼에도 불구하고 이 람다식을 더 줄일 수 있는 방법이 있으니 바로 메소드 참조다. 위 코드는 문자열을 매개변수로 받아 정수형으로 반환하는 Function 참조변수를 표현하고 있다. Function 참조 변수는 람다식으로 이뤄져 굉장히 간략하게 식을 표현하고 있다. 하지만 이런 경우 메소드 참조를 이용하면 람다식을 더욱 간략하게 표현이 가능하다. 메서드 참조를 적용하면 첫번째 코드를 위와 같이 변경이 가능하다. 람다식이 단 하나의 메소드만 호출할 경우에 해당 람다식에서 불필요한 매개변수를 없앤다. 그리고 '클래스명::메서드명'..
-
람다와 스트림 - 함수형 인터페이스백엔드/자바 2021. 8. 24. 13:25
람다와 익명 객체() 람다와 스트림 - 람다식의 정의 람다식(Lambda Expression)이란? 자바 관련 예제를 보다보면 위와 같은 식을 코드를 볼 수 있다. 메서드들을 체이닝으로 이어준 것인데, 그 중에서도 filter() 메서드 안을 보면 특이한 코드를 볼 수 있 sgcomputer.tistory.com 이전 파트에서 말해듯 람다식의 가장 큰 특징이라하면 이름이 없다는 것을 꼽을 수 있다. 그리고 이름이 없으므로 람다식은 익명 함수라고 한 바 있다. 하지만 엄밀히 말하면 자바에서 람다는 익명 함수가 아닌 익명 객체라 할 수 있다. 왜냐면 자바에서 함수(메서드)는 단독으로 존재할 수 없기 때문이다. 코드로 보면서 설명을 보면 더 이해하기 쉬울 것이다. 왼쪽과 같이 이름이 없는 람다식이 있다고 가정..
-
람다와 스트림 - 람다식의 정의백엔드/자바 2021. 8. 24. 09:00
람다식(Lambda Expression)이란? 자바 관련 예제를 보다보면 위와 같은 식을 코드를 볼 수 있다. 메서드들을 체이닝으로 이어준 것인데, 그 중에서도 filter() 메서드 안을 보면 특이한 코드를 볼 수 있다. 화살표 기호로 무언가 표시해주고, 무언가 많이 생략된 것인데 이것을 람다식이라 부른다. 람다식은 익명함수의 하나로 메서드를 간단하게 하나의 식으로 나타낸 것이다. 참고로 첫번째 체이닝된 메서드들을 풀어서 쓰면 다음과 같다. 붉은 박스 안의 코드가 위에서 붉은 줄로 표시해준 람다식과 동일한 역할을 한다. 이처럼 복잡한 메서드를 만들거나 컬렉션 자료를 다룰 때 람다식을 쓰면 깔끔한 코드 작성이 가능하다. 물론 이러한 람다식도 단점은 있다. 람다는 많은 부분이 생략되어 표현되므로 작업 효율..
-
지네릭스(Generics) - 지네릭 메서드백엔드/자바 2021. 5. 22. 17:19
이전 지네릭스 관련 포스트에서 타입 매개변수는 사용 제한이 있다고 했다. static 멤버와 같이 쓰여질 때고 또 하나는 일반 클래스에서 사용될 때라고 했다. 이렇게 일반 클래스의 경우 타입 매개변수는 사용할 수 없어 컴파일 에러가 나는 것을 볼 수 있다. 지네릭 클래스라하더라도 static 메서드에선 타입 매개변수도 컴파일 에러가 나는 것을 볼 수 있다. 그럼 위처럼 타입 매개변수를 써준 것은 무엇일까? 이렇게 메서드의 선언부에 지네릭 타입이 선언된 메서드를 지네릭메서드라 한다. 하지만 지네릭 메서드의 는 우리가 아는 타입 매개변수 와는 다르다. 지네릭 메서드 우선 위와 같은 클래스들이 있다고 가정해보자. 이중에서 genericsMethod 클래스를 위와 같이 지네릭 클래스로 변경해보자. 이때 첫번째는..
-
자바스크립트 고차함수 - find(), findindex()프론트엔드/JavaScript 2020. 10. 6. 15:59
find 메서드 자바스크립트 고차 함수 중에서 filter를 통해서 검색 기능을 구현할 수 있다고 했다. 그리고 배열 메서드 중 filter를 이용한 검색 기능과 비슷한 기능을 하는 메서드가 있다. find 메서드를 이용하면 배열에서 조건에 해당하는 첫번째 값을 반환한다. 사용법은 다음과 같다. 다른 배열 메서드와 마찬가지로 호출한 배열의 요소, 인덱스, 배열을 콜백함수를 통해 전달받을 수 있다. findindex 메서드 findindex는 find와 기능이 같다. 다만 배열의 value가 아닌 인덱스 값을 넘겨준다. 다른 배열 메서드와 마찬가지로 호출한 배열의 요소, 인덱스, 배열을 콜백함수를 통해 전달받을 수 있다.
-
자바스크립트 고차함수 - reduce()프론트엔드/JavaScript 2020. 10. 3. 09:38
reduce함수란? 지금까지 배열을 다루는 메서드들의 대부분은 콜백함수를 인자로 가졌다. 그리고 콜백함수는 인자로 메서드를 호출한 배열의 요소, 인덱스, 배열을 제공받았다. 그런데 reduce 메서드는 조금 다르다. 우선 reduce의 간단한 사용법을 보자. reduce의 간단 사용법 위 코드는 reduce 함수를 통해 num 배열의 모든 요소를 더해서 반환하는 코드다. reduce 메서드는 다른 배열 메서드와 달리 배열의 각 요소들에 대해 reduce 함수를 실행한다. 그리고 이 요소들을 합쳐서 하나의 결과값을 반환한다. 다른 메서드들이 새로운 배열을 만들어 반환한 것과 다른 모습이다. reduce 메서드의 인자로 주어진 콜백함수는 인자로 총 4가지 요소를 갖는다. ● 누적 계산 요소 ● 배열 요소 ●..
-
자바스크립트 고차함수 - filter()프론트엔드/JavaScript 2020. 10. 3. 09:08
filter 메서드란? filter메서드란 해당 메서드를 호출한 배열에서 특정 조건을 제외한 나머지로 새 배열을 만든다. Map 메서드는 원래 있던 배열을 그대로 복사하거나 요소들의 값만 살짝 바꿔서 새 배열을 만든다. 하지만 filter 메서드는 if문을 쓰는 것과 같다. 복사 대상이 되는 배열에서 조건에 맞는 요소만 추려서 새로운 배열을 만드는 것이다. 코드를 보면 다음과 같다. 위에서 보면 알겠지만 return을 할 때 조건을 정해주면 해당 조건에 true값을 걸러 그 값으로 새로 배열을 만든다. 즉 조건의 값이 true, 1인 경우 그 값이 새로운 배열의 대상 값이 되는 것이다. filter 메서드 또한 forEach와 Map과 마찬가지로 filter의 인자로 제공되는 함수는 filter 메서드를..
-
자바 스크립트의 객체(Object)프론트엔드/JavaScript 2020. 9. 11. 06:57
자바 스크립트의 객체(Object)란? 보통 자바(java)를 생각하면 객체는 클래스와 함께 짝지어 다닌다고 생각할 수 있다. 하지만 자바스크립트의 클래스는 최근 도입된 개념이다. 그래서 그 전에는 클래스 없이 객체를 클래스처럼 이용했다. 자바 스크립트 객체는 'key'와 'value'로 이뤄진 프로퍼티(property) 그리고 메서드의 집합이다. 일반적으로 한 개의 변수는 한 개의 값만 저장이 가능하다. 이럴 경우 변수가 가진 데이터를 명확히 알 수 있으나 여러 면에서 불편함이 생긴다. 또한 필요에 따라 변수 한개에도 여러 자료를 담아야할 경우가 생긴다. 그래서 생겨난 것이 객체(Object)다. 아래 예시를 보면 더 쉽게 이해할 수 있다. 객체(Object)의 구성 자바 스크립트 객체는 크게 둘로 나..