분류 전체보기 149

Java Spring_@Builder

@Builder @Builder는 주석으로 Lombok에서 제공하는 어노테이션으로, 해당 클래스에 대해 빌더 패턴을 생성합니다. 빌더 패턴은 객체 지향 프로그래밍에서 많은 선택적 매개변수를 가진 객체를 생성하기 위해 사용되는 생성 패턴입니다. 빌더 패턴을 사용하면 많은 속성을 가진 객체를 긴 매개변수를 사용하지 않고 생성할 수 있습니다. Java에서 클래스에 대한 빌더 패턴을 생성하는 것은 지루하고 반복적인 작업일 수 있습니다. 이때 @Builder 어노테이션을 사용하면 단 한 줄의 코드로 해당 클래스에 대해 빌더 패턴을 생성할 수 있습니다. @Builder 사용법 Java에서 @Builder 어노테이션을 사용하려면, 프로젝트에 Lombok 의존성을 추가해야 합니다. @Builder 애노테이션을 사용하기..

Spring 2023.03.05

Java Spring_ @Mapping

@Mapping 어노테이션은 MapStruct를 사용하여 자동으로 DTO와 Entity 객체를 매핑해 줄 때 사용되는 어노테이션 중 하나입니다. @Mapping은 각 매핑 대상에 대한 정보를 제공하여 매핑 프로세스를 구성하며 다음과 같은 속성을 갖습니다. source : 매핑되는 객체에서 가져올 속성 이름입니다. target : 매핑 대상 객체의 속성 이름입니다. dateFormat : 날짜 형식을 변경하는 데 사용됩니다. qualifiedByName : 매핑에 사용할 메소드 이름을 지정합니다. ignore : 매핑을 무시합니다. defaultValue : 매핑 대상 객체의 속성 값이 null일 때 기본값을 설정합니다. 예를 들어, 다음과 같은 객체가 있다고 가정해 봅시다. public class Sou..

Spring 2023.03.05

Java Spring JPA (Cascade vs EntityManager.persist())

Cascade JPA에서 Cascade란 부모 엔티티와 관련된 자식 엔티티의 상태 변화를 전파시키는 옵션입니다. 즉, 부모 엔티티의 상태가 변경되면, 자식 엔티티의 상태도 같이 변경되도록 자동으로 처리해 주는 기능입니다. Cascade의 장단점 Cascade를 사용하면 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있어서 코드를 간략화하고 편리하게 사용할 수 있습니다. 또한, 저장, 삭제, 수정 등을 한 번에 처리할 수 있기 때문에 효율적입니다. 하지만, Cascade를 사용하면 자식 엔티티를 저장할 때 부모 엔티티가 먼저 저장되어 있어야 하기 때문에 이를 고려하여 코드를 작성해야 합니다. 또한, 자식 엔티티를 일괄적으로 처리하기 때문에 필요하지 않은 자식 엔티티까지 저장되는 경우가 생길 수 있..

Spring 2023.03.05

Spring Framework_ApplicationEventPublisher,@EventListener

ApplicationEventPublisher Interface Spring Framework는 이벤트 기반 프로그래밍(Event-driven programming)을 지원합니다. 이벤트 기반 프로그래밍은 특정 이벤트 발생 시 해당 이벤트를 처리하는 동작을 하는 방식입니다. Spring Framework에서는 이벤트 발생 시 특정 작업을 수행하는 기능을 ApplicationEventPublisher와 @EventListener를 통해 제공합니다. @FunctionalInterface public interface ApplicationEventPublisher { /** * Notify all matching listeners registered with this * application of an app..

Spring 2023.03.03

Spring을 이용해 이메일 보내는 방법

javax.mail 라이브러리 자바에서 구글 이메일을 보내는 방법에는 여러 가지가 있지만, 그중에서 가장 간단하게 구현할 수 있는 방법은 javax.mail 라이브러리를 사용하는 것입니다. 이 라이브러리를 사용하기 위해서는 우선 메일 서버의 호스트 이름과 포트 번호, 계정 정보 등을 설정해야 합니다. 이후에는 메일을 보낼 때 필요한 정보를 설정한 후, 메일을 보내는 코드를 작성하면 됩니다. 아래는 javax.mail 라이브러리를 사용하여 구글 이메일을 보내는 코드입니다. import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class EmailSender { public static void main(S..

Spring 2023.03.02

Spring Data JPA _ 페이징처리

Spring Data JPA에서 페이징 처리하기 Spring Data JPA는 DB 쿼리를 작성하기 위해 간편하게 사용할 수 있는 API를 제공합니다. 이 중 페이징 처리를 도와주는 클래스와 메서드들을 사용하면 간단하게 페이징 기능을 구현할 수 있습니다. Page 클래스 Spring Data JPA에서 페이징 처리를 위해 사용하는 클래스는 Page 클래스입니다. Page 클래스는 페이지 출력을 도와주는 클래스로 여러가지 메서드들이 존재합니다. Page 클래스를 도와주는 메서드 중 PageRequest.of() 는 page와 size를 기본인자로 사용하며 추가적으로 정렬을 어떤 방식으로 할 것인지를 정할 수 있는 메서드입니다. page와 size는 출력하고자 하는 페이지가 총 몇 페이지이며, 하나의 페이지..

Spring 2023.02.22

Java_ Optional Class

Optional Class란? 자바에서 null 값은 런타임에서 예외를 발생시킬 수 있는 원인 중 하나입니다. 이를 해결하기 위해 Java 8에서는 Optional 클래스가 도입되었습니다. Optional 클래스는 null 값을 감싸고 있는 래퍼 클래스로, null 값을 명시적으로 다룰 수 있게 합니다. 이를 통해 코드의 가독성과 안정성을 높일 수 있습니다. Optional 메서드 우선, Optional 객체를 생성할 때는 of(), ofNullable() 또는 empty() 메서드를 활용합니다. of() 메서드는 null이 아닌 값을 감싸는 Optional 객체를 생성하며, ofNullable() 메서드는 null 값을 감싸는 Optional 객체를 생성합니다. empty() 메서드는 비어있는 Opti..

Java/Java 2023.02.21

[백준] 1676번 팩토리얼 0의 개수 (실버5)

팩토리얼 값에서 0의 개수 구하기 주어진 숫자 n에 대한 팩토리얼 값에서 처음 0이 아닌 숫자가 나왔을 때 그전까지의 0의 개수를 구하는 문제입니다. 내가 생각한 방법 n에 대한 팩토리얼 값을 계산한 뒤, 이를 문자열로 변환하여 맨 뒤에서부터 0이 아닌 숫자가 처음 나오는 인덱스를 찾고, 이를 전체 문자열 길이에서 빼주면 0의 개수를 구할 수 있을 것이라 생각했습니다. 따라서 다음과 같이 코드를 작성해 보았습니다. static int getFactorialNum(int num) { int result = 1; for(int i=2; i= 0; i--) { if(strFactNum.charAt(i) != '0') { n1 = i; break; } } result = (strFactNum.length() -..

Algorithm 2023.02.20

Regex (정규 표현식) #Java로 regex 이용하기

정규표현식 기본 개념 정규표현식은 패턴이나 규칙을 나타내는 문자열입니다. 이 문자열은 검색하거나 치환하려는 대상 문자열과 함께 사용됩니다. 정규표현식에서 사용되는 특수문자는 일반적인 문자열과는 다르며, 이러한 특수문자를 메타문자라고 합니다. 정규표현식에서 사용되는 일반적인 메타문자는 다음과 같습니다. . : 임의의 한 문자를 의미합니다. * : 앞의 문자가 0개 이상 나타남을 의미합니다. + : 앞의 문자가 1개 이상 나타남을 의미합니다. ? : 앞의 문자가 0개 또는 1개 나타남을 의미합니다. \d : 숫자를 의미합니다. \w : 알파벳, 숫자, 밑줄 문자를 의미합니다. [] : 대괄호 안의 문자 중 하나와 일치합니다. () : 괄호 안의 문자열을 그룹화합니다. 정규표현식 사용 예제 1. 전화번호 추출..

Spring 2023.02.19

트랜잭션(transaction)

트랜잭션이란 트랜잭션이란 데이터베이스의 상태를 변화시키게 해서 수행하는 작업의 '단위'를 뜻합니다. SELECT,INSERT,DELETE와 같이 SQL 을 통해 데이터베이스의 접근을 하여 상태를 변화시킬 수 있는데 SELECT 와 같이 명령어 하나가 트랜잭션이 아닌 개발자가 원하는 명령들의 총 과정 , 그 작업 단위가 하나의 트랜잭션이라 불리웁니다. 따라서 개발자의 역량에 따라 트랜잭션의 설계를 얼마나 적절하게 하는지가 결정될 수 있습니다. 트랜잭션 특징 이러한 트랜잭션의 특징에는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability) 이렇게 4가지 존재합니다 트랜잭션은 단순한 하나의 행위,명령이 아닌 작업의 묶음, 단위라고 했는데 원자성(A..

기술면접 2023.02.11