Java

안녕하세요 이번 시간에는 메소드 레퍼런스에 대해서 알아 보도록 하겠습니다. 1. 메소드 레퍼런스란? 2. 람다식과 비교 3. 메소드 레퍼런스 구현해보기 메소드 레퍼런스란? 메소드 레퍼런스는 Java 8에서 제공하는 기능으로, 기존에 사용되던 람다식과 동일한 기능을 갖는 간결한 표현 방법을 제공한다. 기존에는 람다식을 사용하여 기능을 구현하였지만, 메소드 레퍼런스를 사용하면 간결하게 표현할 수 있다. - Chat Gpt- 여기서 중요한 점은 기존에 사용되던 람다식과 동일한 기능을 갖는 간결한 표현 방법이며, 람다식으로을 좀 더 편하게 표현한다는 것이다. 메소드 레퍼런스 종류는 4가지가 있다. Kind Syntax Examples 정적 메소드 참조 ContainingClass::staticMethodName..
이번에는 람다에 대해서 알아보려고 합니다. 람다를 많이 사용하는 만큼! 열심히 알아보도록 하겠습니다. 1. 람다란? 2. 람다의 특징 람다란? 람다란 무엇일까요?? 그것은 바로 바로 더보기 람다 표현식은 Java에서 익명(이름 없는) 함수를 정의하는 간단한 방법입니다. 기능적 프로그래밍에서 표현적인 구문을 제공하여 코드를 더 간결하고 읽기 쉬운 방식으로 작성할 수 있는 방법입니다. - Chat Gpt- 여기서 중요한 점은 람다는 자바 이름이 없는 함수를 정의하는 간단한 방법입니다. 람다 표현식은 (인자 리스트) -> { 바디 }로 표현할 수 있습니다. 람다의 인자 리스트는 0개 이상 가질 수 있으며 타입은 생략 가능하며, 컴파일러가 추론 또는 명시할 수 있습니다. 인자가 없을 경우 - () 인자가 하나일..
이번에는 Java 8을 공부해보려고 합니다. 첫 번째로 함수형 인터페이스를 공부해 보도록 하겠습니다. 1. 함수형 인터페이스란? 2. 함수형 인터페이스 구현해 보기 3. Java가 제공하는 함수형 인터페이스 사용해 보기 함수형 인터페이스란? 더보기 함수형 인터페이스는 Java에서 오직 하나의 추상 메서드만 가지는 인터페이스입니다. 이러한 인터페이스는 Java의 람다 표현식과 메서드 참조의 기초로 사용됩니다. 함수형 인터페이스는 어떤 수의 기본 메서드와 정적 메서드를 가질 수 있지만, 오직 하나의 추상 메서드만이 가질 수 있습니다. 추상 메서드는 하나의 메서드 시그니처만을 가져야 하며 값을 반환할 수도 있고 안할 수도 있습니다. 함수형 인터페이스는 개발자들에게 동작을 메소드 인자로 전달하는 것, 동적으로 ..
예전부터 궁금했던 것이 롬복은 어떻게 동작할까? 였습니다. 왜냐하면 롬복 자체는 많이 쓰는데 어떤 원리로 작동 되는지는 잘 알지 못했기 때문에 이번시간에 알아보려고 합니다. 롬복을 사용한 Book이라는 작성하고 이 클래스에 @Data하고 @AllArgsConstructor 애노테이션을 붙여주고 @Data @AllArgsConstructor public class Book { private String bookName; private String bookWriter; } 컴파일 한 다음 클래스 파일을 보면 public class Book { private String bookName; private String bookWriter; public String getBookName() { return this..
이전 시간에는 프록시 패턴에 대해서 알아보았다. 프록시 패턴을 이용할 시 서브젝트,리얼 서브젝트,프록시 등 서비스를 구현할 때마다 많은 클래스와 인터페이스를 만들어야하고 컴파일 시에만 구현할 수 있다는 단점이 있었다. 오늘은 이걸 보완한 다이나믹 프록시에 대해서 알아보려고 한다. 먼저, 다이나믹 프록시란 무엇일까? 다이나믹 프록시란 런타임에 특정 인터페이들을 구현하는 클래스 또는 인스턴스를 만드는 기술이다. 여기서 중요한 점은 런타임이라는 말과 클래스 또는 인스턴스를 만드는 기술이라는 것이 다이나믹 프록시의 핵심인것 같다 다이나믹 프록시는 우리가 배웠던 리플렉션 구현 되었고 그것을 이용해 다이나믹 프록시 패턴은 만들어 보려고 한다. 먼저 인스턴스를 만드는 방법이다. DynamicProxyTest.clas..
이번에 알아볼 것은 프록시 Proxy패턴이다. 프록시 패턴이란 뭘까? 먼저 위키백과를 살펴보자 위키 백과에서는 프록시를 일반적으로 프록시는 다른 무언가와 이어지는 인터페이스의 역할을 하는 클래스이다. 라고 정의하고 있다. 프록시 패턴은 다른 무언가(리얼 서브젝트)와 서브젝트를 연결하기 위한 연결다리가 되는 클래스가 있는 패턴인데 사진을 보면 조금 더 이해하기가 쉽다. 해당 사진을 보면 프록시와 리얼 서브젝트가 공유하는 인터페이스(Subject)가 있고 클라이언트는 해당 인터페이스 타입으로 프록시를 사용하게 된다. 클라이언트는 프록시를 거쳐서 리얼 서브젝트를 사용하기 때문에 부가적인 기능을 사용할 수 있고 리턴값도 변경 할 수 있다. 프록시 패턴을 통해서 리얼 서브젝트는 진짜 자신이 해야 할 일만 하는 하..
더보기 오늘은 리플렉션에 대해서 써보려고 합니다. 오늘의 목표는 리플렉션과 리플렉션을 통해 스프링의 의존성 주입이 어떻게 이루어져 가는지에 대한 학습입니다. 스프링을 사용하다보면 아래와 같은 코드를 많이 보게 됩니다. @Service class TestService{ @Autowired UserRepository userRepository; } 위에 코드를 보면서 예전에는 Spring이 @Autowired로 쓰여진 놈들을 찾아 넣어준다 정도의 개념으로만 알고 있었습니다. 이번 학습을 통해 TestService 인스턴스에 어떻게 UserRepository 인스턴스를 학습하게 되었습니다. 리플렉션이란? 런타임 시점에 사용되는 자신의 구조와 행위를 관리(type introspection)하고 수정할 수 있는 ..
백기선 개발자님의 더 자바, "코드를 조작하는 다양한 방법"을 스터디 해보려고 합니다. 첫번째는 JVM을 이해하기 입니다. 1. 자바, JVM, JDK, JRE Java를 실행하기 위해선 JVM(Java Virtual Machine) 자바 가상 머신이 필요합니다. JVM은 바이트코드를 인터프리터 및 JIT 컴파일러로 OS에 따라 특화된 코드로 변환하여 실행하게 됩니다. 인터프리터 및 JIT 컴파일러는 추후 설명하도록 하겠습니다. JVM을 통해 바이트코드를 읽어 변환 하기 때문에 꼭 자바 언어가 아니더라도 바이트코드를 사용하는 언어는 모두 변환이 가능합니다 EX) Kotlin, Scala, JRuby, ... 등등 여기서 OS의 따라 내부 해석 방식이 달라져서 JVM은 특정 플랫폼(OS)에 종속적입니다. ..
bongveloper
'Java' 카테고리의 글 목록 (2 Page)