본문 바로가기

전체 글

(121)
Kotlin 랜덤 숫자 000000~999999 입맛에 맞게 커스텀하게 바꿔서 사용하시면 됩니다. 요런 랜덤 숫자는 보통 휴대폰 인증번호에 많이 사용하지요. 숫자 0부터 999999까지 랜덤하게 숫자를 추출한 후 문자로 변환 n자리가 아닌 숫자인 경우 0으로 채움 fun generateCertificationNumber(number: Int = 999999) = (0..number).random() .toString() .padStart(number.toString().length, '0') 4자리 랜덤 숫자 위의 function 그대로 사용하시면 되구, 요렇게 보내면 0000부터 9999까지 랜덤으로 만들어질거에요. generateCertificationNumber(9999)
GitHub Private Repository 잔디밭 GitHub Private Repository 잔디 안 심어질 때 (안 보일 때) Contribution settings - Private contributions 선택
Docker Kafka 설치 (confluentinc) Docker로 Kafka를 설치하고 실행해볼게요. 주키퍼 하나에 브로커 세개입니다. docker-compose -f up -d docker-compose.yml --- version: '3.8' services: zookeeper-1: container_name: zookeeper-1 image: confluentinc/cp-zookeeper:7.0.1 ports: - '2181:2181' environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka-1: container_name: kafka-1 image: confluentinc/cp-kafka:7.0.1 ports: - '9092:9092' depends_on: - zookeepe..
Spring Boot Reactive Redis Transaction Spring Boot Reactive Redis를 사용할 때 Transaction 동작시키는 코드에요. RedisConfiguration.java @Configuration @RequiredArgsConstructor public class CouponRedisConfiguration { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Bean public RedisClient redisClient() { return RedisClient.create(RedisURI.builder() .withHost(this.host) .withPort(this.port) .build(..
Gradle 서브프로젝트 Dependencies 복사 모든 디펜던시를 복사하기 때문에 거의 무조건 버전 충돌이 일어나요. 이 점 주의하고 적용하도록 합시다. dependencies { implementation fileTree(dir: "${buildDir}/libraries", include: '*.jar') dependenciesToCopy project(':sample-domain') } configurations { dependenciesToCopy } task copyDependencies(type: Copy) { from configurations.dependenciesToCopy into "${buildDir}/libraries" }
Spring Boot Gradle Multi Modules 초간단 Spring Initializr에서 프로젝트를 생성합니다. 그리고 저는 주로 사용하지 않을 src 폴더를 삭제합니다. build.gradle을 먼저 작성해볼게요. build.gradle buildscript { ext { springBootVersion = '2.6.3' dependencyManagementVersion = '1.0.11.RELEASE' } repositories { mavenCentral() } dependencies { dependencies { classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}" classpath "io.spring.gradle:dependency-management-p..
Ktor Ktorm DB 연동 (매우 간단) Ktor Framework에서 DB 연동해볼게요. 이런 저런 샘플 예제들이 있는데 복잡하더라구요. 아래 코드가 기반이며 이를 바탕으로 확장한 된 것이라 보시면 되요. DatabaseConnection.kt DB 설정 부분이에요. import org.ktorm.database.Database object DatabaseConnection { val database: Database = Database.connect( url = "jdbc:mysql://localhost:3306/demo", driver = "com.mysql.cj.jdbc.Driver", user = "root", password = "1234", ) } Member.kt 스키마를 작성해줍니다. import org.ktorm.entity...
Ktor Install Gson Ktor Framework에서 개발한 API에서 Json을 응답하고 싶어요. 기본적으로 세팅이 되어있지 않아 Gson을 설치해줘야 하더라구요. 해결 방법은 간단해요. 설정되어 있지 않을 경우 routing 안의 API에서 List나 Object를 리턴하면 아래와 같은 오류를 접하실거에요. Response pipeline couldn't transform 'class java.util.ArrayList' to the OutgoingContent java.lang.IllegalArgumentException: Response pipeline couldn't transform 'class java.util.ArrayList' to the OutgoingContent at io.ktor.server.engine..