일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- java
- jpa repository
- JPA
- 스프링
- kotlin
- 객체지향
- @embededid
- 자바
- 스프링 부트
- 복합 키
- 티스토리챌린지
- mutablemap
- devpi
- string?
- map
- javamailsender
- ispresent
- 널 허용
- entity
- 이메일 본인인증
- Token
- 오블완
- string.repeat()
- email api 구현
- 코틀린
- embededid
- Spring Boot
- 토큰
- JPQL
- Spring
- Today
- Total
목록devpi (25)
DeveloPiano
Java의 Optional 클래스는 값이 있을 수도 있고 없을 수도 있는 상황을 처리하기 위해 설계된 클래스입니다. 특히, JPA와 같은 ORM 프레임워크에서 쿼리 결과를 다룰 때 Optional은 많이 사용됩니다. 이번 포스팅에서는 Optional>, Optional의 타입을 다룰 때 각 메서드인 isEmpty()와 isPresent()의 차이점과 그 상관관계에 대해 설명하겠습니다.1. Optional 개념 정리Optional은 Java 8에 도입된 클래스이며, 값이 존재할 수도 있고 존재하지 않을 수도 있는 객체를 표현하기 위해 사용됩니다. 이를 통해 null 값을 직접 처리하는 것을 피하고, 더 명확하고 안전한 코드를 작성할 수 있습니다. 2. Optional> 사용 시 동작1) Optional>란..
Java 8에서 도입된 Stream API는 데이터를 처리하고 변환하는 방식을 혁신적으로 개선했습니다. 컬렉션이나 배열의 데이터를 함수형 프로그래밍 스타일로 처리할 수 있도록 지원하며, 복잡한 데이터 처리 로직을 간결하고 직관적으로 구현할 수 있게 합니다. 이번 포스트에서는 Java Stream의 개념과 주요 기능을 살펴보고, 다양한 예시를 통해 어떻게 활용할 수 있는지 알아보겠습니다.Java Stream이란?Java Stream은 데이터 소스의 요소들을 추상화하여 일련의 연산(필터링, 매핑, 집계 등)을 처리할 수 있는 API입니다. 스트림을 사용하면 반복문 없이 선언적이고 함수형 프로그래밍 스타일로 데이터를 처리할 수 있습니다. 예를 들어, 리스트의 요소를 필터링하거나, 맵핑하여 변환하고, 집계하는 ..
이번 포스트에서는 스프링 부트를 활용하여 회원가입 시 이메일 인증을 요구하는 API를 구현하는 방법을 설명합니다. 사용자에게 인증 이메일을 전송하고, 이메일에 포함된 버튼을 클릭해야만 회원가입이 완료되는 구조입니다. 이 과정에서는 이메일 템플릿을 Thymeleaf로 구성하며, 인증 정보는 데이터베이스(DB)에 저장합니다.1. Gradle 설정이메일 인증 API를 구현하기 위해 먼저 필요한 의존성을 build.gradle 파일에 추가합니다. 아래 코드를 참고하여 의존성을 설정합니다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boo..
Kotlin은 Null Safety(널 안전성)을 제공하는 언어로, 개발자가 더 안전한 코드를 작성할 수 있도록 돕습니다. 특히, Kotlin에서는 null을 명시적으로 처리해야 하며, 이를 위한 기호가 바로 ? 입니다. 이번 포스팅에서는 Kotlin의 Nullable 타입과 이를 다루는 방법에 대해 알아보겠습니다.1. Nullable 타입: String?의 의미Kotlin에서 String?와 같은 표현은 null이 될 수 있는 타입을 의미합니다. 즉, String? 타입의 변수는 문자열 값을 가질 수도 있고, null을 가질 수도 있습니다. 반면, String 타입의 변수는 항상 문자열을 가져야 하며, null을 가질 수 없습니다. 기본 사용법var name: String = "Kotlin" // N..
Kotlin에서는 코드를 간결하고 직관적으로 작성할 수 있도록 여러 가지 편리한 기능을 제공합니다. 그중에서도 it 키워드는 람다 표현식에서 자주 사용되는 암시적 매개변수로, 코드를 깔끔하게 만들어주는 역할을 합니다. 이번 포스팅에서는 Kotlin의 it이 무엇인지, 어떻게 사용하는지, 그리고 사용할 때 주의해야 할 점에 대해 알아보겠습니다.1. it 이란 무엇인가?Kotlin에서 it은 단일 매개변수를 가진 람다 표현식에서 사용되는 암시적(implicit) 매개변수입니다. 즉, 람다 표현식이 하나의 인자만 필요로 할 때, 해당 인자를 명시적으로 선언하지 않아도 it이라는 이름으로 자동 참조할 수 있습니다. 이를 통해 코드를 더욱 간결하게 작성할 수 있습니다. 기본 사용법val numbers = list..
이 포스트에서는 스프링 부트를 사용하여 간단한 이메일 전송 API를 구현하는 방법을 설명합니다. 이메일 전송 기능은 여러 웹 애플리케이션에서 유용하게 사용되며, 스프링 부트와 JavaMailSender를 활용하면 간단히 구현할 수 있습니다.Gradle 설정이메일 전송 기능을 구현하기 위해 필요한 의존성을 build.gradle 파일에 추가합니다.plugins { id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java'}group = 'com.example'version = '0.0.1-SNAPSHOT'sourceCompatibility ..
Kotlin과 Java는 모두 JVM에서 실행되는 언어로, 많은 공통점을 가지고 있지만, 코드 작성 방식에서는 차이가 존재합니다. 특히 어노테이션을 적용할 때 Kotlin에서는 Java와 다른 구문적 차이를 보입니다. 이번 포스팅에서는 Kotlin의 @field: 어노테이션을 Java와 비교하며 그 차이를 이해해보겠습니다.Kotlin의 프로퍼티와 어노테이션Kotlin에서는 프로퍼티가 field, getter, setter로 컴파일됩니다. 예를 들어, 다음과 같은 Kotlin 프로퍼티를 생각해 봅시다.var name: String = "Kotlin"이 프로퍼티는 컴파일되면서 다음과 같은 구성 요소로 나뉩니다:field: 실제 데이터를 저장하는 공간.getter: 프로퍼티의 값을 읽을 때 호출되는 메서드se..
Kotlin은 개발자가 데이터를 처리하는 데 있어 다양한 유틸리티 함수를 제공합니다. 그중에서도 flatten 함수는 중첩된 컬렉션을 단일 차원으로 평탄화할 때 매우 유용합니다. 이번 포스팅에서는 flatten 함수의 기본 개념과 사용법, 그리고 중복된 값을 처리하는 방법에 대해 알아보겠습니다.flatten 함수란?flatten 함수는 다차원(중첩) 컬렉션을 단일 차원의 컬렉션으로 평탄화하는 데 사용됩니다. 예를 들어, List>와 같이 중첩된 리스트를 List로 변환할 수 있습니다. 이 함수는 중첩된 구조에서 데이터를 단순화할 때 매우 유용합니다. 1. 간단한 예시다음은 flatten 함수를 사용한 간단한 예시입니다.val nestedList = listOf( listOf(1, 2, 3), ..
Kotlin은 간결한 문법과 강력한 기능으로 개발자들 사이에서 큰 인기를 끌고 있습니다. 그중에서도 data class는 데이터를 처리하는 데 있어 매우 유용한 도구입니다. 이 블로그 포스팅에서는 Kotlin의 data class가 무엇인지, 왜 유용한지, 그리고 어떻게 사용할 수 있는지를 살펴보겠습니다.1. Data Class란?data class는 이름 그대로 데이터를 담기 위해 설계된 클래스입니다. Kotlin에서는 data class를 사용하여 데이터를 다루는 객체를 매우 간단하게 정의할 수 있습니다. 이 클래스는 데이터를 다루는 데 필수적인 메서드들을 자동으로 생성해주기 때문에, 반복적인 코드를 작성할 필요 없이 간결한 클래스를 정의할 수 있습니다. 2. Data Class의 주요 특징Kotli..
오늘은 Spring Boot 기반 애플리케이션에서 사용자 인증과 토큰 발급 과정, 그리고 시크릿 키 관리 절차를 UI, Back End, DB 구조를 중심으로 살펴보겠습니다. 이 글에서는 실제로 애플리케이션이 어떻게 사용자 인증을 처리하고, 안전하게 토큰과 시크릿 키를 발급 및 관리하는지에 대해 다룹니다.1. 사용자 인증 요청 (UI -> Back End)먼저, 사용자는 애플리케이션의 UI에서 로그인 시도합니다. 이 과정은 주로 로그인 페이지에서 사용자 이름과 비밀번호를 입력하는 것으로 시작됩니다. 클라이언트 측에서의 요청사용자가 로그인 폼에 정보를 입력하고 "로그인" 버튼을 클릭하면, 이 정보가 백엔드 서버로 전송됩니다. 일반적으로 이 과정은 HTTPS를 통해 보안이 유지되며, REST API의 PO..