전체 글 55

kotlin 문법 기초 - 4

kotlin 개발전 문법관련 기초내용 정리 포스트입니다인프런 - 코틀린 문법부터 실무까지 (자바 to 코틀린 실무) 강의를 보면서 예시 코드를 다르게 하여 포스팅합니다typescript, java 개발 경험이 있습니다다루는 내용- 생성자- 상속- data class- setter, getter생성자주 생성자 초기화 블록kotlin에는 클래스 선언시 함수파라미터처럼 넘길수 있는데 이걸 주 생성자라고 하고 한개 밖에 사용못합니다init block에서 클래스 객체 생성될 때 실행됌class Person2(val name: String, var age: Int) { init { println("Initializing a new Person instance") println("Nam..

kotlin/기초 2024.07.23

kotlin 문법 기초 - 3

kotlin 개발전 문법관련 기초내용 정리 포스트입니다인프런 - 코틀린 문법부터 실무까지 (자바 to 코틀린 실무) 강의를 보면서 예시 코드를 다르게 하여 포스팅합니다typescript, java 개발 경험이 있습니다다루는 내용인터페이스open키워드와 override가시성object인터페이스자바의 implement와 extends 를 ":"으로 대체합니다인터페이스 메서드 구현은 override를 반드시 명시해야합니다interface Clickable { fun click(): Unit}class Button: Clickable { override fun click() { println("Button clicked") }}open키워드와 overridekotlin은 클래스를 생..

kotlin/기초 2024.07.17

kotlin 문법 기초 - 2

kotlin 개발전 문법관련 기초내용 정리 포스트입니다인프런 - 코틀린 문법부터 실무까지 (자바 to 코틀린 실무) 강의를 보면서 예시 코드를 다르게 하여 포스팅합니다typescript, java 개발 경험이 있습니다다루는 내용함수이름 붙인 파라미터디폴트 파라미터확장함수가변인자중위호출구조 분해함수반환타입기본적으로 반환타입을 명시하되, 반환 타입 추론도 가능합니다그러나, 함수에서 {} 에서는 명시적으로 return이 없으면 Unit을 반환합니다반환타입을 명시안하는 경우에는 Unit입니다// single expression function (단일 표현식 함수)// 반환 타입 명시fun add(a: Int, b: Int): Int { return a + b}// 반환 타입 추론 (권장: 간단한 함수의 경..

kotlin/기초 2024.07.14

kotlin 문법 기초-1

kotlin 개발전 문법관련 기초내용 정리 포스트입니다인프런 - 코틀린 문법부터 실무까지 (자바 to 코틀린 실무) 강의를 보면서 예시 코드를 다르게 하여 포스팅합니다typescript, java 개발 경험이 있습니다다루는 주제변수when, enum반복문예외처리변수valvarval은 상수var는 변수를 저장하는데 사용합니다템플릿 문자열val i: Int = 123 val j = 123 var age = 36 fun sum(a:Int, b:Int, c:Int) = a + b + c fun sum(a:Int, b:Int): Int { return a + b } fun main() { age = 30 println("1+2 = " + sum(1,2)) printl..

kotlin/기초 2024.07.10

springbatch5 h2 database 특정 job 테스트하기

이번 포스트에서는 springbatch5에서 h2 database으로 테스트하겠습니다 환경springboot 3.3.0gradle 8.8java 17build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.3.0' id 'io.spring.dependency-management' version '1.1.5'}group = 'com.example'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}configurations { compileOnly { extendsF..

spring-kafka DelegatingByTopicDeserializer 역직렬화

이번 포스트에서는 topic명에 해당하는 타입으로 역직렬화를 다루겠습니다 환경springboot 3.1.10gradle 8.7java 17spring-kafkaspring-kafka를 통해 producer, consumer를 사용하게 되면header에 typeId가 들어가게되고 타입에 해당하는 패키지정보가 들어가있습니다kafka client가 java를 쓰지 않을 수도 있습니다 header에 아무런 값을 설정하지 않고 key, value만 가지고 publish할수 있습니다header의 typeId 정보가 없는상태에서 deserialize하게 되면 header가 없는 경우에는 다음과 같은 에러가 발생합니다Caused by: java.lang.IllegalStateException: No type infor..

springboot spring-kafka로 consumer 설정

이번 포스트에서는 springboot에서 kafka를 연동해서 consuming을 해보겠습니다 환경springboot 3.1.10gradle 8.7java 17spring-kafkakafka configuration을 설정하지 않아도 autoconfigure를 통해 application.yml으로만 설정이 가능합니다kafka configuration설정을 통해 커스텀하게 설정할 수 있습니다 ConsumerFactory, ConcurrentKafkaListenerContainerFactory 두 가지를 설정하게 되면 컨슈밍할 준비가 되었고KafkaListener로 consuming할수 있습니다kafka configurationConsumerFactorykafkaConsumer 인스턴스를 생성하는 팩토리 인..

파이썬 개발환경 세팅

환경- Apple M2 Pro- macOS Sonoma- PyCharm 2022.2.1 (Professional Edition)가상환경python 프로젝트마다 독립적인 패키지와 라이브러리를 설치하고 관리할 수 있도록 도와주는 격리된 환경입니다사실 개발해보면 다른 언어로 개발해도 프로젝트 단위로 개발하기 때문에 필수 과정입니다가상환경은 시스템 전체의 python 설치와 독립된 특정 디렉토리에 python 인터프리터와 필요한 패키지를 설치하고 관리할 수 있도록 격리된 논리적 공간입니다가상환경 내에서는 특정 프로젝트에 필요한 패키지와 라이브러리 버전을 설치하고 사용할 수 있습니다 왜 필요합니까?- 패키지 충돌 방지- 프로젝트마다 필요한 패키지와 버전이 다를 수 있음- 각 프로젝트마다 패키지를 다르게 관리하고 ..

파이썬 2024.06.24

springboot에 redisson cache 적용하기

이번 포스트에서는 springboot에 redisson으로 global 캐시를 구성합니다 환경springboot 3.1.10gradle 8.7java 17의존성을 추가해줍니다implementation 'org.redisson:redisson-spring-data-30:3.31.0' application.yml 에 설정값을 추가해줍니다redis: redisson: config: | clusterServersConfig: idleConnectionTimeout: 10000 connectTimeout: 10000 timeout: 3000 retryAttempts: 3 retryInterval: 1500 failedSla..

springboot에 CacheResolver로 MultipleCacheManager 구성하기

이번 포스트는 springboot로 로컬캐시로 ehCache를 구성한 상태에서 글로벌캐시로 redis를 구성하려고 합니다 환경springboot 3.1.10gradle 8.7java 17현재 로컬캐시로 ehCache 의존성을 추가해 cacheManager를 단독으로 사용중입니다. cacheManager를 여러개 등록하고 CacheResolver를 통해 cacheManager를 Resolve 하겠습니다. CachingConfigurerSupport를 상속하는 구조로 구성했으나 Spring Framework 6 버전부터 Deprecated 되었습니다@EnableCaching@Configurationpublic class MultipleCacheManagerConfig extends CachingConfigu..