일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CI
- entity graph
- Spring Data JPA
- spring
- spring kafka
- transactionaleventlistener
- QueryDSL
- bean
- kafka
- offsetdatetime
- topic생성
- centos7
- producer
- git
- Entity
- consumer
- API
- mirror maker2
- Spring JPA
- ECS
- CodePipeline
- Kotlin
- AWS
- JPA
- cd
- PAGING
- K8s
- Streams
- mysql
- Kubernetes
- Today
- Total
목록전체 글 (101)
Yebali

Confluence는 많은 기업들에서 사용하고 있는 협업 소프트웨어이다. 사용자들은 Blog나 Page를 만들어 지식이나 정보를 공유하기에 좋은 소프트웨어이다. 회사에서 JmsListener 자동 문서화 작업 중, 문서화된 내용을 Confluence 게시글에 업데이트하는 작업을 하며 알게 된 Confluence API 사용법을 조금 적어보겠다. Confluence 자동 문서화 예제코드 참고로 confluence는 자신의 서버에 직접 설치하여 사용하거나 아틀라시안이 제공하는 서버에 월 요금을 내고 사용한다. 자신의 서버에 직접 운용하는 경우 'Server REST API'를 사용하고, 아틀라시안 서버를 사용하면 'Cloud REST API'를 사용한다. 이 글에서는 'Cloud REST API'를 사용하는..

다양한 디자인 패턴 중 Strategy Pattern에 대해 알아보고 Spring에서는 어떻게 사용할 수 있는지 알아보자. Strategy Pattern(전략 패턴)이란? 전략 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 소프트웨어 디자인 패턴이다. 전략 패턴은 - 특정한 계열의 알고리즘들을 정의하고 - 각 알고리즘을 캡슐화하며 - 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다. by Wiki 말이 어렵긴 한데 한마디로 정의하면 컨텍스트에서 알고리즘을 분리하는 설계이다. 즉, 특정 기능을 수행할 때 다양한 알고리즘이나 비즈니스 로직이 쓰일 수 있다면 알고리즘이나 로직만 분리하는 설계이다. Context : 전략 패턴을 실제로 사용하는 부분. Strategy : 인터페이스나 추상 클래..

데이터 베이스는 다양한 테이블에 데이터를 나누어 담는다. 우리는 필요에 따라 각 테이블에 있는 데이터를 조합하여 하나의 데이터 셋으로 만들어야 하는 경우가 빈번히 있다. Join의 종류와 해당 Join방법들을 QueryDsl을 이용해 구현하는 방법을 알아보자. Entity 예시 Entity는 'Team'과 'Member'를 사용할 것이며, 1:N 관계이다. @Entity class Team ( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long, val name: String, @OneToMany(mappedBy = "team") val members: MutableList = mutableListOf(), ) @Entity clas..

Data Class란? Kotlin에서 Data Class는 toString(), hashCode(), equals(), copy()를 자동으로 만들어주는 Class를 말한다. 사용법은 class 앞에 ‘data’라는 keyword를 붙여주면 된다. data class User( val name: String, val age: Int ) Data Class의 특징 상속 받을 수 없다. abstract, open, sealed, inner를 붙일 수 없다. 1개 이상의 프로퍼티를 가지고 있어야 한다. 이렇게 편리한 메서드를 자동으로 만들어주는 Data Class를 Entity Class를 만들 때 사용할 수 있을까? Entity에 Data Class를 적용 할 수 없는 이유. Entity Class를 Da..

QueryDSL이란? 기존 JPA Criterial는 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 IDE 자동완성 기느의 도움을 받을 수 있는 등 여러 가지 장점이 있다. 하지만 너무 복잡하고 어렵다. 쿼리를 문자가 아닌 코드로 작성해도 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발 할 수 있는 프로젝트가 바로 QueryDSL이다. QueryDSL 설정 build.gradle.kts에 아래 설정을 추가해준다. Version은 개발자가 원하는 버전을 선택한다. plugins { kotlin("kapt") version "1.4.32" } dependencies { val querydslVersion = "4.4.0" //== QueryDSL ==// implementation("..

Cache란? 일반적으로 Cache는 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소를 말한다. 흔히 우리가 사용하는 폰-노이만 구조의 PC에서 cache는 CPU 내부에 있는 수 KB, MB 내외의 작은 저장 공간이 Cache이다. (Register, L1/L2 Cache, RAM 등) Cache는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. Cache의 장점 다양한 장점이 있지만 가장 큰 장점은 빠르다는 것이다. 예를 들어 집에서 삼겹살을 먹으려고 할 때, 상추를 텃밭에서 뜯어오는 것과 마트에 가서 사 오는 것 중 어느 것이 빠르겠는가? → 당연히 텃밭에서 뜯어오는게 빠르다. CPU가 연산을 하기 위해서는 연산에 필요한 값들이 필요하다. 그렇다면 이 값들을 어딘가로부터 불러와야 하..