전체 글 869

@ConfigurationProperties (Spring Boot)

kafka: topic: {topic name} producer-config: bootstrap.servers: {server info} key.serializer: org.apache.kafka.common.serialization.StringDeserializer value.serializer: org.apache.kafka.common.serialization.StringDeserializer acks: all batch.size: 16384 linger.ms: 1000 위와 같은 정보를 클래스 형태로 가져오고 싶다면 어떻게 해야 할까? 이럴때 쓸 수 있는 것이 @ConfigurationProperties 이다. kotlin에서 특히나 불변 값으로 가져오고 싶다면, @ConstructorBindin..

이펙티브 코틀린 1장 안정성

1장 안정성 아이템 1: 가변성을 제한하라 코틀린은 모듈로 프로그램을 설계 한다. 모듈은 클래스, 객체 ,함수, 타입 별칭, Top-level property 등 다양한 요소로 구성 된다. 아래의 코드를 살펴 봅니다. class NumberSum { suspend fun sumNumber() { var num = 0 coroutineScope { for (i in 1..1000) { launch { delay(10) num += 1 } } } println(num) // 실행 마다 다른 값이 나온다. } } 코루틴은 경량 쓰레드라고 생각하면 되고, 위의 코드에서는 쓰레드 간의 동기화가 되어 있지 않기 때문에, 값을 마음 대로 변경 하게 되는 이슈가 있고, 우선 num 변수 자체가 가변적인 변수라 이를 불..

vite build 오류

최근에 이직한 곳의 플랫폼은 admin 환경이 spring boot + vite(vue3)를 쓰고 있었는데, 빌드가 안되는 케이스가 발견 됐다. 로컬 머신이 m1이라서 이슈가 되는 것 같기도 한데, 아래처럼 하면 이슈가 해결 된다. The package "esbuild-darwin-arm64" could not be found, and is needed by esbuild가 발생한다. 이상해서 찾아보니, 아무래 모듈들을 설치해도 동작을 하지 않는다. npm install -g esbuild-darwin-arm64 npm install -g esbuild 해도 안되는데, 특정 링크를 보고 아래 명령어를 실행하니 수정 되었다. npm i -D esbuild ref. https://github.com/evan..

“Fake it till you make it”의 함정

원본은 아래 트위터에서 남긴 글입니다. 혼자만의 생각이라, 문체가 불편할 수 있는 점 사전에 사과 드립니다. 아래의 내용은 모두 어쭙잖은 내용일 수 있습니다. 모든 분들에게 도움이 되지 않을 수 있는 내용임을 밝힙니다. “Fake it till you make it” 문구는 내 예전 jeykll blog 문구였는데 어느 순간 나는 이게 불가능하다는 것을 알게 되었다. 그래서 그냥 늘 “전 잘 모르는데”를 달고 살고, 상대에게 내가 알던게 잘못된 거면 배웠다고 말하고 몰랐던걸 알게 되면 많이 배웠다고 말한다. 결과적으로 나한테 “그 연차에 어쩌네 저쩌네 하는 사람”이 있다면, 어차피 같이 일 안하면 그만이다. 연차를 떠나서 꼭 상대방이 아는 걸 다 알아야 할 필요는 없다. 난 여기서 협업의 시너지가 생성 ..

승돌 쓰다 2022.09.07

Error computing cache key - CircleCi

Circle Ci상에서 아래와 같은 오류를 만날 수 있다. error computing cache key: template: cacheKey:1:30: executing "cacheKey" at 대충 package-lock.json이 없어서 발생하는데, 추가해주면 해당 오류를 수정 할 수 있다. ref. https://stackoverflow.com/questions/64311553/error-computing-cache-key-on-circle-cl-when-i-setup 혹은, circleCi 설정 파일에서 pkg-manager를 yarn으로 바꿔서 하면 될 것 같기도 한데, 테스트 해보진 않았다.

프로그래밍 2022.08.03

노력의 힘이란 (feat. 노력 가보자고 💪🏻)

LinkedIn에서 구글 UX 리드 디자이너이신 김은주님의 소식을 팔로우 하고 있는데, 좋은 글을 보게 되어 공유 합니다. 구글에 40번의 지원 끝에 합격하게 된 포스팅인데, 두 가지의 생각이 들었습니다. 1. 구글의 문턱은 높구나. 2. 노력 하면 안되는 것은 없구나. 결과적으로 안 된다는 나의 마음 가짐일뿐이지, 노력 하면 된다는 것을 알 수 있었습니다. 그런데, 어쨌거나 39번의 실패가 아닌 reject였다는 점이 좋았습니다. 면접에 떨어졌다고 해서 실패가 아니라는 사실. 최근에 생전 처음으로 몇번의 면접을 봤었는데, 정말 긴장하니까 횡설수설 내가 무슨 말을 하는지도 잘 모르겠고, 내가 뭘 했더라? 기억도 잘 나지 않았습니다. 준비가 덜 되었으니, 당연히 불합격들을 받았습니다. 대신 깨닫는 것들이 ..

승돌 쓰다 2022.08.02

Mybatis의 nested select, nested result (Spring Boot, H2, Kotlin|Java)

마지막 근무일 즈음에 팀원분이 궁금하다고 요청을 해주셔서, 보다가 사실 생소한 현재 팀에서 Kotlin 환경이다 보니, 이런 저런 이슈들이 좀 있었는데, Mybatis의 nested select 관련 질문으로 이상하게 잘 안된다고 해주셨다. 결과적으로 어렵진 않은 이슈였는데, 궁금해서 Java 버전으로도 동일하게 샘플 코드르 작성 해보았다. 그 이유는 코틀린 언어적인 이슈인지, 순수한 Java환경에서도 이슈가 되는지 궁금 했다. 그래서 두 프로젝트를 생성 해서 테스트 해봤다. 결과적으로 코틀린 환경에서는 data class에 대한 noarg 플러그인이 필요로 했다. 다만, 해당 플러그인을 쓰는게 맞을까? 고민스럽긴 하다. 그리고 이럴때 필요한 개념이 보통 Mybatis에서는 association/coll..

Spring 2022.07.19
반응형