분명, JDBC를 사용할 때에는, TinyInt를 Integer로 매핑을 했던 기억이 있는데, 에러가 발생하여 찾아보니 TinyInt(1)의 경우에만 Boolean으로 매핑이 되는 걸 알 수 있었다.(당연하겠지만...) R2dbc에서는 다른 매핑으로 작동될 까 걱정했지만, 우선 tinyInt를 boolean으로 매핑하는 점은 jdbc와 동일 한 것 같다. https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-type-conversions.html MySQL :: MySQL Connector/J 8.0 Developer Guide :: 6.5 Java, JDBC, and MySQL Types 6.5 Java, JDBC, and MySQL T..
전체 글
Spring의 핵심 기능 DI(Dependency Injection), IoC(Inversion of Control). 오늘은 그 중 Spring에서 DI를 하는 3가지 방법에 대해 알아보고자 합니다. 그리고 마지막으로 생성자 주입 방식이 왜 가장 추천되는지 코드를 통해 살펴 보며 마무리 하겠습니다. 목차 DI 란? DI의 3가지 방법 필드 주입 Setter 주입 생성자 주입 BEST 방법 -> 생성자 주입 방식 생성자 주입을 사용해야 하는 이유로 넘어 가고 싶다면 바로 밑으로 쭉 내리시면 됩니다. DI 란? 구체적인 DI방식에 대해 알아보기 전에, 간단히 DI의 정의에 대해 알아 봅시다. DI(dependency injection), 의존성 주입은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉을 ..
프로젝트를 진행하다 아래와 같은 에러메시지를 만나, 어떻게 해결하는지 정리하고자 합니다. Implicit super constructor Cat() is undefined. Must explicitly invoke another constructor 원인 이 문제가 발생한 이유는 자식 클래스와 부모 클래스가 있을 때, lombok의 어노테이션으로는 super를 호출 할 수 없기 때문입니다. 무슨 말인지 아래 코드를 통해 살펴 보겠습니다. //lombok + 생성자 DI 방식 @Component @RequiredArgsConstructor public class Animal{ public String state; private final TestService service; } //lombok에서 제공하는..
DDL vs DML vs DCL 이란? 명령어 종류 명령어 비고 DDL(Data Definition Language) 데이터 정의 언어 CREATE TABLE database 구조나 스키마를 생성, 변경, 삭제 할 때 사용되는 명령어들을 의미 ALTER TABLE DROP TABLE RENAME TABLE TRUNCATE TABLE DML(Data Manipulation Language) 데이터 조작 언어 SELECT 데이터 베이스 안에 있는 실제 데이터들을 조작하는데 사용되는 명령어들을 의미 INSERT UPDATE DELETE DCL(Data Control Language) 데이터 제어 언어 GRANT 데이터 베이스에 관한 권한을 부여하고, 회수하는데 사용되는 명령어들을 의미 REVOKE DENY *..
스프링을 사용하다보면, 아래의 에러코드를 한 번쯤은 만나 봤을 겁니다. 해당 에러는 보통 DI를 하려고 할 때, 그 해당 컴포넌트가 Bean으로 등록 되지 않아서 생기는 메시지 입니다. 오늘 포스트에서는 Spring Container에 Bean으로 등록하는 2가지 방법에 대해 정리해보고자 합니다. Parameter 0 of constructor in hi.hispring.controller.MemberController required a bean of type 'hi.hispring.service.MemberService' that could not be found. Action: Consider defining a bean of type 'hi.hispring.service.MemberService..
제네릭(Generic) 제네릭은 Java, TypeScript 등의 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징입니다. 특히, 한가지 타입보다 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용됩니다. 제네릭의 사전적 정의는 위와 같고, 실질적으로 어떻게 사용 할 수 있는지 바로 아래에서 알아보도록 합시다. 아래 포스트에서는 java, typeScript 두개의 언어로 예시를 들고, 각각 무엇을 의미하는지 정리해보고자 합니다. 제네릭 함수 제네릭(Generic) 함수는 제네릭 형식의 매개변수를 사용하여 선언된 함수입니다. 제네릭 함수를 호출하면, 실제로 넘겨진 argument의 형식이 사용되게 됩니다. 참고로, 제네릭타입으로 T, E, K 등 여러가지 대문자를 사용하는데, 이는 특..