Kotlin-jdsl과 Querydls의 차이점과 선택 과정
·
서버 개발(생각과 구현)
Kotlin으로 서버 개발을 하다 보면 생각보다 많은 ORM 선택지와 Query 빌더들을 접할 수 있다.ORM으로는 JPA, Ktorm, Exposed, JOOQ 등이 있다. 오늘 글의 주제는 바로 Query 빌더에 대한 내용이다.Query 빌더 중 가장 많이 접한 것은 바로 kotlin-jdsl과 Querydsl이다.먼저 kotlin-jdsl이란?Kotlin JDSL | Kotlin JDSL Kotlin JDSL | Kotlin JDSLLatest stable version: 3.5.4kotlin-jdsl.gitbook.io Kotlin JDSL은 메타모델 없이 쿼리를 쉽게 만들 수 있게 도와주는 Kotlin 라이브러리이다.Kotlin JDSL의 패러다임과 추구하는 방향은 아래와 같다.APT를 이용하면..
코틀린을 활용한 JPA 엔티티 전략 고민 과정
·
서버 개발(생각과 구현)
Kotlin 및 ULID를 통해 Entity ID를 관리하는 방법에 대한 고민의 과정 및 결론해당 글은 Kotlin, JPA 환경에서 ID 생성 전략을 어떻게 가져갈지 고민하고, 그 고민의 과정을 정리한 글입니다.🤔 1. 가지고 있던 고민사내에 처음 도입되는 JPA사내에서 사용중인 Id 전략과 다르게 가져갈건지다르게 가져간다면 어떤 전략을 가져갈건지이렇게 크게 3가지 고민이 있었다. 그래서 더욱 어떤 전략을 가져가야 효율적으로 개발할 수 있을지 고민했다.🫠 2. 고민의 해결?!JPA에서 일반적으로 PK로 @Id를 사용해서 정의한다. 이에 따른 타입은 보통 Long Type과 UUID Type이 시장에서 많이 사용되고 있었다.Long Type: Auto Increment를 사용해서 DB에서 관리하는 전..
Spring Eureka를 사용해서 MSA 체험기 (2)
·
서버 개발(생각과 구현)
앞서 Spring Eureka가 뭐고 각각의 구성요소를 러프하게 살펴봤다면 이번에는 직접 구현하며 이를 알아볼 것이다. 이전 글https://jaejune0625.tistory.com/58 Spring Eureka를 사용해서 MSA 체험기 (1)먼저 Spring Eureka란? 아래 공식문서를 살펴보자! https://cloud.spring.io/spring-cloud-netflix/reference/html/ Spring Cloud Netflix This project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to thejjlee0625.tistory.com 먼저 Server A..
Spring Eureka를 사용해서 MSA 체험기 (1)
·
서버 개발(생각과 구현)
먼저 Spring Eureka란?아래 공식문서를 살펴보자!https://cloud.spring.io/spring-cloud-netflix/reference/html/ Spring Cloud NetflixThis project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few simple annotations you can quickly enable and configure the common patcloud.spring.io 대략적으로 설명을 읽어보..
AI를 이용해 코로나 확진자를 예측 해보자! (1)
·
머신러닝/AI 프로젝트
요즘 코로나 바이러스가 엄청나게 유행이다. 파이썬을 이용해서 코로나 바이러스 확진자를 예측해보자. 1. Technology Python3 google colab pandas plotly facebook Prophet Data 1-1. google colab 코딩의 가상 환경을 코랩으로 잡았다. 그 이유는 크게 3가지다. 첫 번째는 개인적으로 편해서이다. 개발은 파이참(Pycharm), 연구는 코랩, 주피터 노트북을 많이 사용한다. 그렇기 때문에 딥러닝은 물론 전반적인 파이썬 프로그래밍에 가장 많이 사용되는 코랩을 가상환경으로 잡았다. 두 번째는 GPU가 약한 PC에서도 무료로 GPU, TPU를 사용할 수 있기 때문이다. 다만, 내 컴퓨터가 아니므로 새로 설치한 패키지가 저장되지 않는다는 점과 사용한 예제..
벡터의 내적
·
수학/기초 선형대수학
● 벡터의 내적 (벡터)X(벡터)를 시작 할 것이다. 과일 문제에 비유하여 시작할 것이다. 복숭아, 파인애플, 오렌지의 오늘의 판매량이 (2, 4, 3)이라고 하고. 그리고 각각 의 가격이 (50, 80, 60) 이라고 한다. 그럼 복숭아는 50원, 파인애플은 80원, 오렌지는 60원이라는 것을 알 수 있다. 그렇다면 오늘의 매출은 얼마일까? 내 생각엔 600원 일 것 같다. (2, 4, 3) X (50, 80, 60) = (2 X 50) + (4 X 80) + (3 X 60) = 100 + 320+ 180 = 600 한가지 예를 더 들어보면 민희의 1학기 중간고사, 기말고사, 수행평가의 성적이 (80, 90. 70)이고 각각의 성적의 반영 비율이 (40%, 40%, 20%) 일 때, 민희의 1학기 성적..
벡터의 실수배
·
수학/기초 선형대수학
●벡터의 실수배 어제의 판매량이 (3, 4, 2)이고 오늘은 어제의 두 배를 팔았을 때 오늘의 판매량은 얼마일까? 아마 (6, 8, 4)라고 생각했을 것이다. 2 X (3, 4, 2) = (2 X 3, 2 X 4, 2 X 2) = (6, 8, 4)와 같이 계산했기 때문이다. 벡터의 실수배는 아래 식으로 정의한다. 앞에서 배운 덧셈과 마찬가지로 보통 '곱하기' 라는 똑같은 단어를 사용하지만 우리가 알고 있는 '수X수'와 방금 얘기한 '수X벡터'는 비슷하지만 다른 연산이기때문이다. 수와 벡터의 곱은 위 표현처럼 많이 사용한다. 벡터의 실수배 예시를 보자. 벡터가 덧셈 가능할 때 벡터의 실수배에는 다음과 같은 성질들이 있다. 이제 벡터의 실수배에대한 증명을 해볼 것이다. 위 역시 3차원 벡터에 한해서 증명한 ..
벡터의 덧셈
·
수학/기초 선형대수학
● 벡터의 덧셈 어제의 판매량이 (3, 4, 2) 이고, 오늘의 판매량이 (6, 7, 5) 이었다면 이틀 동안의 판매량은 얼마일까? 바로 (9, 11, 7)일 것이다. 내가 계산한 방식은 (3, 4, 2) + (6, 7, 5)=(3+6, 4+7 ,2+5) = (9, 11, 7)이다. 이것이 바로 벡터의 덧셈이며 벡터의 뺄셈도 덧셈과 비슷하게 한다. 벡터의 덧셈은 차원이 같은 벡터끼리만 가능하다. 2차원 벡터와 3차원 벡터는 덧셈을 할 수 없다. 방금 한 것은 바로 3차원 벡터끼리의 덧셈이였다. 2차원이나 4차원도 위 방식과 동일하다. 매우 쉬운 방법으로 같은 n차원끼리 덧셈과 뺄셈을 할 수 있다. 위와 같은 방식으로 덧셈과 뺄셈이 진행되는 것을 알 수 있다. 한번 벡터의 덧셈과 뺄셈의 예시를 보자. 같은..
유리함수의 그래프
·
수학/기초수학
두 다항식이 위와 같은 조건을 성립 하였을 때 우리는 그것을 유리식이라고 부른다. 특히 B가 상수이면 위 분수식은 다항식이므로 다항식도 유리식이다. 위 4가지은 모두 유리식이고, 이중에서 3번째와 4번째는 다항식이다. 유리식의 덧셈과 뺄셈은 유리수의 경우와 마찬가지로 분모가 서로 다를 때는 분모를 통분하여 계산한다. 유리식의 곱셈도 유리수의 경우와 마찬가지로 분모는 분모끼리, 분자는 분자끼리 곱하여 계산하고, 유리식의 나눗셈은 나누는 식의 분모와 분자를 서로 바꾸어 곱하여 계산한다. 즉, 다항식 A, B, C, D에 대하여 유리식의 덧셈, 뺄셈, 곱셈, 나눗셈은 다음과 같이 계산한다. 그렇다면 유리함수란 무엇일까? 함수 y = F(x)에서 F(x)가 x에 대한 유리식일 때, 이 함수를 유리함수라고 한다...
벡터(Vector)의 기초와 상등
·
수학/기초 선형대수학
벡터의 기초(Introduction to Vector) ● 벡터 : 수의 순서쌍 보통 벡터(Vector)를 '크기와 방향을 가진 양' 으로 정의하고 크기만 갖고 방향은 없는 양을 스칼라라고 정의하는데, 단순하게 수의 순서쌍이라고 표현해도 된다. 올바른 정의는 아니지만 이것이 이해하기에 더 쉬웠다. 벡터는 순서를 생각해야하는 반면에 집합은 순서를 생각하지 않는다. 집합 A = {1, a, 3}와 집합 B = {1, 3, a}를 비교해 보면 순서에 상관없이 들어 있는 원소는 모두 같으므로 두 집합 A, B는 같은 집합이다. 반면에 벡터(Vector)는 순서쌍이기 때문에 순서가 매우 중요하다. 집합을 A, B, X같이 표현 한다면 벡터는 이처럼 문자 위에 화살표를 그려서 표기한다. 그러면 예시를 한번 보자 순..