java 55

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

Java 깊은 복사(Deep Copy) 와 얕은 복사( Shallow Copy)

깊은 복사와 얕은 복사의 의미 깊은 복사와 얕은 복사를 단순하고 명료하게 정리해 보면 얕은 복사(shallow copy)는 복사한 배열이 원래 배열의 '주소값'을 가져오고 깊은 복사(deep copy)는 복사한 배열이 원래 배열을 '그대로 가져온다 정도로 정리해 볼 수 있습니다. 얕은 복사는 복사하려는 배열의 주소값을 가져오며, 단순한 변수 선언을 통한 복사의 형태이고, 그래서 복사한 배열을 수정할 경우, 원래 배열도 같이 수정되게 됩니다. (예를 들어 자물쇠의 열쇠를 복사하는 것과 같아, 복사한 열쇠를 통해 자물쇠를 열어 그 안의 내용을 바꾸면 기존의 열쇠를 통해 열어도 그 안의 내용물이 변화되는 것과 같습니다.) 반면에 깊은 복사는 새로운 배열에 원래 배열을 복사하는 겁니다. 따라서 복사한 배열을 수..

Java/Java 2023.02.01

Java _ 래퍼 클래스(Wrapper Class)

Wrapper Class는 무엇일까요? 래퍼 클래스는 하나 이상의 기본 타입(primitive type)을 wrap 하는 클래스입니다. 기본타입인 boolean, byte, char, int, float, double, long, short을 객체로 사용하는 클래스들을 말하는 거죠 그런 래퍼 클래스에는 Integer,Boolean,Double 등이 있습니다 그런데, 방금 위에서 하나 이상의 기본 타입이라 했는데 왜 하나 이상이라는 표현을 썼을까요? Primitive(기본타입) Wrapper Class(래퍼 클래스) Constructor Argument (생성 인자) boolean Boolean byte or String char Character char int Integer int or String f..

Java/Java 2023.01.29

Java Lambda(람다)

람다식은 함수형 프로그래밍 기법을 지원하는 자바의 문법요소이다. Lambda 식을 이용하기 위해서는 interface 가 필요하며 매개변수와 리턴값의 유무에 따라 3가지의 람다식 유형이 존재한다. 1. 매개변수 o 리턴값 o 2. 매개변수 x 리턴값 x 3. 매개변수 o 리턴값 x 아래의 코드 내용은 유형 1,2,3에 맞게 각각 나타내었다. ex) LambdaJg1.play1 은 매개변수 o 리턴값 o의 유형 interface LambdaJg3{ void play3(String x); } interface LambdaJg2 { void play2(); } interface LambdaJg1 { int play1(int x, int y); } public class CordJgLambda1 { public..

Java/Simple code 2023.01.27

Java 소수점 자릿수 표현하기 3가지 방법

1. System.out.printf("%. 3f") %.(num)f -> num 숫자에 따라 소수점 num까지 표현 즉, 3이면 소수점 4번째 자리에서 반올림하여 3번째 자리까지 나타낸다. public class CordJgwow { public static void main(String[] args) { double n1 = 6.2; double n2 = 3.4; double result = n1/n2; System.out.printf("%.3f",result); } } //출력 1.824 2. String.format() 대략적인 구조는 1번과 비슷하지만 String 타입의 참조변수에 담아줘서 출력하는 방식이다. public class CordJgwow { public static void main..

Java/Simple code 2023.01.27