Hibernate의 엔티티의 기본 생성자를 활용하는 반면, Kotlin은 별도로 기본 생성자를 만들지 않기 때문이라고 한다. 이러한 불편함은 Kotlin 측에서 누구보다 잘 알것이기에 아래와 같은 플러그인을 제공한다. plugins { id("org.springframework.boot") version "3.2.3" id("io.spring.dependency-management") version "1.1.4" kotlin("jvm") version "1.9.22" kotlin("plugin.spring") version "1.9.22" kotlin("plugin.jpa") version "1.9.22" // 요 친구임! } 참고 JPA error in kotlin : Class 'Student' sh..
문제 작업 중에 임의의 리소스에 할당된 리액션들을 이모지 형태로 관리할 필요가 있어서 아래와 같은 테이블을 설계했다. CREATE TABLE `Reactions` ( `Id` INT(11) NOT NULL AUTO_INCREMENT, `ResourceId` INT(11) NOT NULL, `Value` VARCHAR(20) NOT NULL, `CreatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `CreatedById` VARCHAR(255) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`Id`), UNIQUE `Reactions_uq_1` (`ResourceId` ASC, `Value` ASC, `CreatedById` AS..
내 주변에서 가장 JS를 잘 아시는 분께 여쭤봤더니 아래와 같은 답변을 주셨다. [~] npx prettier --write [대상_폴더경로] [~] # npx prettier --write . 와 같이 상대 경로로 사용도 가능하다. [~] 덧붙여 저장될 때마다 자동으로 prettier를 적용하도록 설정해두면 되는데, 왜 굳이 수동으로 쓰는지 도무지 이해가 안된다는 일침도 주셨다. 그 말에는 나도 동의했지만, 현실은 녹록치 않았다. 겨울이었다.
Spring Boot 2에서 3으로 마이그레이션하는 경우, RestTemplate을 사용하기 위한 Apache HttpClient를 4 버전대신 5로 수정해주어야 하는 이슈로 인해 발생한다. build.gradle 등에 아래와 같은 implementation 구문을 추가하자. dependencies { implementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") } 참고 Spring Boot 3.0 Migration Guide Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub. github.com https://w..
Scope Function이란? 코틀린의 stlib은 let과 run, with, apply, also라는 다섯 개의 scope function을 제공한다. 이러한 함수들은 모두 1. 주어진 객체와 함께 2. 블록의 코드를 실행하여 3. 결과를 반환한다는 공통점을 갖는다. scope function은 모두 코드를 간결하게 하고 가독성을 향상시키는 데에 의의가 있다. function obj ref returns let it lambda result run(Any.run 형태로 실행) this lambda result run(수신 객체 없이 실행) - lambda result with this lambda result apply this ctx obj also it ctx obj 선택 기준 상술한 Scope..
낙관적 락 동시성 문제가 일반적으로 발생하지 않을 것으로 보고(=낙관적), 락을 걸지 않고 시작한다. 별도의 Version 컬럼을 두고, 트랜잭션을 커밋할 시점에 동시성 문제가 발생했는지 검증한다. 트랜잭션을 커밋할 때까지 동시성 문제가 발생함을 알 수 없으며, 발생한 경우 애플리케이션 로직으로 처리한다. 비관적 락 동시성 문제가 빈번히 발생할 것으로 보고(=비관적), 트랜잭션을 시작할 때 락을 걸고 시작한다. select for update와 같은 쿼리를 활용하며, 데이터베이스가 제공하는 락을 활용한다. 낙관 vs 비관 두 개념은 각각 다음과 같은 장단점을 가지므로, 상황에 맞게 무엇을 사용할지 결정해야 한다. 낙관적 락은 일반적인 상황에서 성능이 더 좋으나, 충돌 발생시 이를 처리하기 번거롭다. 비관..
- Total
- Today
- Yesterday
- Git
- etc
- IntelliJ
- hashicorp
- Vault
- AWS
- mysql
- spring boot
- RancherDesktop
- Docker
- kotlin
- Database
- Linux
- javascript
- shell
- JPA
- Node.js
- Puppeteer
- postgresql
- terraform
- 코딩테스트
- jQuery
- JEST
- eureka
- pgloader
- Java
- Gradle
- AWS IoT
- react
- Spring Cloud Config
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |