안녕세계

지난 포스팅에 이어서 본 포스팅에서는 Java8에서 컬렉션 프레임워크에 추가된 함수형 인터페이스에 대해 알아봅니다. 인터페이스 메서드 설명 Collection boolean removeIf(Predicate filter) filter 조건의 element 제거 List void replaceAll(UnaryOperator operator) 모든 element를 operator 수행 결과로 반환 Iterable void forEach(Consumer action) 모든 element에 대해 action 수행 Map V compute(K key, BiFunction f) 특정 key에 대해 f 수행 V computeIfAbsent(K key, Function f) 특정 key가 없을 경우 f 수행 후 추가 ..

MySQL 8.x 버전을 사용할 때면 항상 고통 받습니다.. 오랜만에 MySQL 관련한 오류 해결방법에 대해 포스팅하네요. 본 포스팅에서는 DBeaver에서 MySQL DB를 연결하려고 할 때 발생한 에러와 해결방법을 알아봅니다. 발생한 MySQL 8.x 에러 😢 해결 방법 다양한 해결 방법이 있지만 가장 쉽게 해결할 수 있는방법은 Driver properties 설정을 바꾸는 것입니다. Driver properties > serverTimezone > UTC로 변경합니다. 이제 다시 Test Connection을 하면 정상적으로 접속되는 것을 확인할 수 있습니다. 단, 한 가지 단점은 새로운 DB 연결 설정시마다 같은 작업을 해줘야합니다. 위 작업을 반복하지 않기 위해서는 MySQL Timezone d..

지난 포스팅에 이어서 본 포스팅에서는 Java8에 이미 정의된 함수형 인터페이스에 대해 알아봅니다. 함수형 인터페이스를 개발자가 직접 만들어서 사용할 수 있지만 항상 새로운 함수형 인터페이스를 정의하기보다는, 자주 쓰이는 형식의 인터페이스는 java.util.function 패키지에 이미 정의된 인터페이스를 사용하는 것을 권장합니다. 1. 기본 함수형 인터페이스 기본 함수형 인터페이스는 매개변수와 반환값에 유무에 따라 함수형 인터페이스 존재합니다. (T: 데이터 타입, R: 리턴 타입) 함수형 인터페이스 메서드 매개변수 반환값 java.lang.Runnable void run() X X Supplier T get() X O Consumer void accept(T t) O X Function R appl..

Java8에 추가된 람다식과 함수형 프로그래밍에대해 알아봅니다. Java8부터 람다식이 추가되면서 Java는 객체지향언어인 동시에 함수형 언어의 기능까지 갖추게 되었습니다. 함수형 언어라고 하면 처음엔 낯설고 어렵게 느껴질 수 있지만 조금만 살펴보면 금방 이해하실 수 있습니다 :) 그럼, 지금부터 람다와 함수형 인터페이스란 무엇인지 알아보겠습니다. ☺️ 1. 람다식이란? 람다식이란 이름이 어려워 보이지만 메서드를 하나의 식(expression)으로 표현한 것을 뜻합니다. 메서드를 람다식으로 표현하면 메서드 이름과 반환값이 없어서 익명 함수라고도 합니다. 람다식은 (1)메서드의 매개변수로 전달될 수 있으며 (2)메서드의 결과로 반환될 수 있습니다. 이러한 람다식 특징 덕분에 메서드를 변수처럼 다루는 것이 ..

이번 포스팅에서는 MacOS에서 H2 데이터베이스를 설치하고,H2 데이터베이스에서 에러 없이 실행하는 방법에 대해 알아보겠습니다! 🧐 H2 데이터베이스는 brew를 통해 쉽게 설치할 수 있습니다. (설치 끝!! 😊)$ brew install h2 h2 명령어로 데이터베이스를 실행할 수 있습니다.$ h2 h2 명령어를 실행하면 자동으로 브라우저에 :8082로 접속됩니다.로딩만 되고 접속이 안되는 경우 localhost:8082로 접속하면 정상적으로 접속되는 것을 확인할 수 있습니다.jsessionid 파라미터는 유지해주세요! 여기서 연결 또는 연결 시험 버튼을 누르면 다음과 같은 에러가 발생할 수 있습니다.Database "~/test" not found, either pre-create it or a..

SpringBoot 앱을 개발환경(Development/Production)을 나누어 배포하는 방법에 대해 알아봅니다 🤩 (본 포스팅에서는 SpringBoot + Gradle + Docker를 사용합니다.) 1. Spring Initializr에서 dependency로 Spring Web만 추가하여 Gradle Project를 생성합니다. 2. application.properties를 application.yaml 파일로 변경후 application-{profile}.yaml 형식의 파일을 생성합니다. (properties 파일을 선호하는 경우 변경하지 않아도 됩니다.) 3. application-dev.yaml과 application-prod.yaml 파일은 개발환경과 운영환경의 셋팅을 달리하기 위함..

Intellij를 사용할 때 내가 원하는 JDK를 바라보고 있지 않거나 찾을 수 없다고 나올 때가 있습니다. 이 경우 어떻게 Intellij에 내가 설치한 특정 JDK를 적용할 수 있는지 알아봅니다. 우선 Intellij를 실행하고 ⌘ + ; 를 눌러서 새로운 JDK 경로를 설정합니다. JDK home path가 알맞게 설정되었는지 확인하고 해당 JDK를 구별할 Name을 설정합니다. JDK 설정을 완료한 뒤 위에서 설정한 JDK로 Project SDK를 변경합니다. ✔︎ Note Intellij 프로젝트에서 JDK가 바뀌지 않으면 프로젝트에서 .idea 파일(Intellij 설정 파일)을 삭제합니다. 해당 파일을 삭제한 뒤 프로젝트를 다시 열면 JDK를 설정이 필요하다고 알림이 뜨면 원하는 JDK를 지..

OpenJDK는 다양한 Vendor에서 제공을 하고 있는데 이번 포스팅에서는 AdoptOpenJDK를 설치합니다. (homebrew를 사용하여 AdoptOpenJDK를 설치하는 방법은 다음 포스팅을 확인해주세요.) OpenJDK 설치를 위해 AdoptOpenJDK 사이트로 접속합니다. → https://adoptopenjdk.net/ AdoptOpenJDK AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX. adoptopen..