안녕세계
안녕하세요. 본 포스팅에서는 SpringBoot 환경에서 MyBatis와 데이터베이스를 연동하는 방법에 대해 설명합니다. 🧐 예제 프로젝트에서는 H2 데이터베이스를 사용합니다. IntelliJ에서 제공해주는 Spring Initalizr를 사용하여 Gradle 기반 Java8 버전 프로젝트를 생성합니다. (다음 화면은 Ultimate 버전만 제공하는 기능이므로, CE 버전을 사용하고 계시면 여기에서 생성하시면 됩니다.) 프로젝트 의존성으로 다음 내용을 추가해주세요. - [선택] Lombok - [필수] Spring Web - [필수] MyBatis Framework - [선택] H2 Database (MySQL과 같은 다른 RDMBS를 사용하셔도 됩니다.) 프로젝트를 생성하고 의존성을 다운로드하는 동안에..
안녕하세요. 본 포스팅에서는 MacOS에서 iTerm2를 설치하고 사용하는 방법에 대해 알아봅니다. 또한, oh-my-zsh를 사용하여 iTerm2에 플러그인을 적용하여 예쁘게 꾸며봅시다! 😎 1. iTerm2 설치 iTerm2 설치 방법은 매우 간단합니다. 🍡 다음 링크로 이동하여 State Releases 버전을 설치합니다. 다운로드가 완료되면 iTerm2-3_3_12.zip 형식의 zip 파일이 받아지는데, 해당 zip 파일을 열여서 iTerm2를 응용 프로그램으로 이동 시켜줍니다. iTerm2를 실행해보면 우리가 기존에 사용하던 기본 Terminal과 별 다른게 없어보입니다. 다음 스텝에서 iTerm2에 예쁜 옷을 입혀봅시다! 😽 2. oh my zsh 설치 우선, oh-my-zsh를 설치를 위해..
지난 포스팅에 이어서 본 포스팅에서는 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 ..
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 파일은 개발환경과 운영환경의 셋팅을 달리하기 위함..