본문 바로가기

분류 전체보기984

Hibernate Architecture 하이버네이트의 설계 목적은 SQL 및 JDBC를 사용하여 수작업으로 데이터를 처리할 필요가 없도록 함으로써 개발자가 일반적인 데이터 지속성 관련 프로그래밍 작업의 95%에서 벗어날 수 있도록 하는 것이다. 타 지속성 솔루션들과 달리 하이버네이트는 SQL에 대한 강력한 기술을 사용할 수 있게 하며, 관계형 기술에 대한 지식과 투자를 항상 가치 있도록 보장하려고 노력한다. 사실 하이버네이트는 비지니스비즈니스 로직을 구현하기 위해 stored-procedures만 사용하는 데이터 중심 애플리케이션에는 적합하지 않을 수 있습니다. 그러나 Java 기반의 middle-tier의 객체지향 도메인 모델 및 비즈니스 로직에 가장 유용하다고 할 수 있습니다. 여기서 Middle-tier는 소프트웨어 아키텍처에서 사용되는.. 2023. 7. 8.
@Converter, Enum Enum은 열거형이라고 불리는 데이터 유형입니다. 고정된 상수 집합을 하나의 클래스처럼 다룰 수 있기에 빈번하게 사용됩니다. JPA는 enum을 지원하며 데이터베이스에 열거형 상수를 저장하고 조회할 수 있도록 지원합니다. 일반적으로 JPA에서 enum을 매핑하기 위해 @Enumerated 애노테이션을 사용하여 매핑합니다. 혹은 @Converter를 활용합니다. Java @Entity public class Book { // ... @Enumerated(EnumType.STRING) private BookType type; // ... } Kotlin @Entity class Book constructor( ... @Convert(converter = BookTypeConvertor::class) val .. 2023. 7. 7.
회원가입 시 본인 인증 Vendor 특징 회원가입 이후 본인 인증을 진행하기 위해선 다양한 방법이 있다. 그중 휴대폰 인증과 실제 본인 확인 인증으로 나누어지는 것 같다. 각 목적에 따라 특정 벤더 사를 이용하게 되는데 고려대상의 vendor에 대해 조금 정리하였다. Vendor 종류 별 특징 Vonage 국제 서비스로 SMS, 음성 기반 문자 인증 서비스 등 다양한 서비스를 제공합니다. 두 가지 서비스를 고려할 수 있습니다. SMS API 휴대전화로 SMS를 전송합니다. 회원 가입 이후 인증 시 서버에서 인증번호 생성하여 SMS 템플릿에 맞춰 전송하는 형태입니다. 사용자는 특정 시간 안에 전달받은 인증번호를 입력하고 이를 검증하면 됩니다. 가격 : $0.0436 ( 07-06 기준 57.16원) 제한 사항: 한국 SMS 제한 사항 Verify.. 2023. 7. 7.
1620 문제 요약 포켓몬 마스터가 되기 위한 도감 완성. 입력 도감에 기록된 포켓몬의 개수 N개 맞춰야 하는 문제의 개수 M개. 1 m; for (int i = 1; i > name; names[i] = name; numbers[name] = i; } string problem; for (int i = 0; i > problem; if (atoi(problem.c_str()) == 0) { cout m; for (int i = 1; i > name; names[i] = name; numbers[name] = i; } for (int i = 0; i > problem; if (atoi(problem.c_str()) == 0) { cout 2023. 7. 6.
2559 문제 요약 특정 기간 동안 온도를 측정했다, n일 동안 온도의 합이 가장 큰 값을 알아보고자 한다. 수열 : 숫자나 기호의 나열을 의미한다. 수열은 일정한 패턴이나 규칙에 따라 순서대로 배열된 원소들로 구성된다. 각 원소는 항이라고도 불린다. 입력 두 개의 정수 N과 K가 한 개의 공백을 두고 주어진다. N은 온도를 측정한 전체 날짜의 수이며 온도는 정수이다 (2 n >> k; for (int i = 1; i > tmp; sum[i] = sum[i - 1] + tmp; } for(int j = k; j 2023. 7. 6.
to Kotlin 자바 기반의 스프링 부트 애플리케이션을 코틀린으로 변경하는 과정을 담았다. https://github.com/sungil-yu/toKotlin/commits/main GitHub - sungil-yu/toKotlin Contribute to sungil-yu/toKotlin development by creating an account on GitHub. github.com 이는 CRUD 이외 큰 기능은 없지만 초기 시작을 위한 설정이나 Spring MVC, Spring Data Jpa를 사용하기 전 잠깐의 복습에는 많은 도움이 될 것이다. 2023. 7. 6.
왜 reflect.jar 파일이 별도로 존재하지? 리플렉션은 런타임에 프로그램의 구조를 파악할 수 있게 해주는 언어 및 라이브러리 features의 집합이다. 코틀린에서 함수와 속성은 일급 시민이다. 이를 검사하는 기능은 기능적 또는 반응형 스타일을 사용할 때 필수적이다. 일급 시민과 리플렉션은 직접적인 관계는 없습니다. 코틀린의 언어적 특성에 함수와 속성 등은 일급 시민이라는 것입니다. 다만 리플렉션을 통해 메타데이터(클래스, 함수, 프로퍼티 등)를 동적으로 액세스 하고 조작할 수 있다는 것입니다. 그리고 이러한 기능을 사용하는 경우 우리는 별도의 라이브러리인 kotlin-reflect.jar를 사용해야 한다는 것입니다. 이를 분리한 이유는 공식문서에서 설명한 것과 같이 다음과 같습니다. JVM 플랫폼에서 Kotlin 컴파일러 배포에는 리플렉션 기능을.. 2023. 7. 6.
Using JPA with Kotlin in a Spring Boot Application 보호되어 있는 글 입니다. 2023. 7. 5.
9996 문제요약 패턴은 알파벳 소문자 여러 개와 별표(* : 아스키값 42) 하나로 이루어진 문자열이다. *는 정규표현식의 *와 동일하게 동작한다. 0개 혹은 하나 이상이다. 주어진 패턴에 파일 이름의 일치 여부를 판단해라. 입력 문자열 길이는 100을 넘지 않는다. 별표는 문자열의 시작과 끝에 있지 않는다. 출력 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 풀이 정규표현식의 특정 표현을 만들어보는 유익한 경험이라 생각하자. 1차 시도 Failed (이 왜 틀?) #include using namespace std; int n; string pattern; vector result; int main() { cin >> n; cin >> pattern; ch.. 2023. 7. 4.
spring boot, gradle 설정에 kotlin 환경 설정하기. 우선 다음과 같이 build.gradle 파일에 코틀린 플러그인을 설정해주어야 한다. https://plugins.gradle.org/plugin/org.jetbrains.kotlin.jvm 2023. 7. 4.