전체 글(72)
-
[Lombok] @Builder.default
@Builder Lombok에서 제공하는 이 어노테이션은 생성자 인자를 메서드 체인을 통해 명시적으로 대입하여 생성자를 호출할 수 있게 빌더 클래스를 생성 해준다. 빌더 클래스와 IDE의 자동 완성 기능을 같이 활용하면 생성자 작성 시 오기입 확률과 인자를 누락할 확률을 획기적으로 낮출 수 있다. doc을 보면 @Builder는 생성자, 메서드 또는 클래스 레벨에서 쓰일 수 있다고 설명되어 있다. 또한 클래스 레벨에서 쓰일 경우 기본적으로 전체 멤버를 생성자의 매개값으로 갖는 private 생성자를 만들어 준다. 이 생성자는 @XArgsConstructor(NoArgs, RequiredArgs) 또는 어떤 생성자도 클래스 내부에 선언하지 않았을 경우에만 생성된다. 반대로 위의 두 조건 중 하나를 했을 경..
2023.02.08 -
Implement Email Auth #01
RedisConfig.java package dev.aco.back.Utils.Redis; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframew..
2023.02.08 -
[SQL]Join
SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN) 하나의 테이블에 원하는 데이터가 모두 있다면 참 좋겠지만, 두 개의 테이블을 엮어야 원하는 결과가 나오는 경우도 많습니다. 조인을 쓰면 두 개의 테이블을 엮어서 원하는 데이터를 추출할 수 있습니다. 두 테이블의 조인을 위해서는 기본키(PRIMARY KEY, PK)와 외래키(FOREIGN KEY, FK) 관계로 맺어져야 하고, 이를 일대다 관계라고 합니다. INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN에 대해 간단히 알아보겠습니다. 📌JOIN 5줄 요약 조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때..
2023.02.03 -
[Querydsl] fetchResult() 가 deprecated 된 이유
QueryDsl로 페이징 쿼리를 작성하는데 .fetchResults()가 deprecated 되었다고 표시되었길래 찾아보았다. deprecated 된 이유 전문 fetchResults requires a count query to be computed. In querydsl-sql, this is done by wrapping the query in a subquery, like so: SELECT COUNT(*) FROM (). Unfortunately, JPQL - the query language of JPA - does not allow queries to project from subqueries. As a result there isn't a universal way to express cou..
2023.02.02 -
@RequestBody에 왜 기본생성자는 필요하고 Setter는 필요 없을까?
Springboot로 토이 프로젝트를 진행중 Request DTO(requestBody로 오는)에 @NoArgsConstructor를 빠뜨려서 에러가 났다. (습관적으로 적어오던 어노테이션...) 그런데 @RequestBody로 넘어오는 객체에는 기본 생성자가 왜 필요한지, Setter는 왜 불필요한지 이유를 정확히 모르고 있었다. 이번 기회에 해당 내용들을 구체적으로 알아보자. @RequestBody에 왜 기본생성자가 필요하고, Setter는 불필요한지 알아보기 위해선 Spring 내부에서 어떻게 처리하는지 확인해보면 됩니다.@RequestBody 까지 처리하는 flow를 보고싶다면 여기를 확인하면 좋을 것 같다. 그리고 이동욱님의 글에는 Setter가 왜 필요없는지에 대해 적혀있어서 도움을 받아 적습..
2023.01.29 -
Singleton Design Pattern 싱글톤 패턴
싱글톤 패턴이란? 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 싱글톤 패턴을 사용하는 이유나 주의할 점은 조금 후에 살펴보기로 하고, 어떻게 생겼는지 그 모습을 코드로 먼저 만나보자. 싱글톤 패턴을 구현하는 방법은 여러가지가 있지만, 여기서는 객체를 미리 생성해두고 가져오는 가장 단순하고 안전한 방법을 소개하겠다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { retu..
2023.01.19